[CISCN2019 华东南赛区]Double Secret
[CISCN2019 华东南赛区]Double Secret
考点
Python代码审计
rc4加解密
flask debug
flask SSTI
wp
靶机只提示Welcome To Find Secret
尝试访问secret,提示
Tell me your secret.I will encrypt it so others can't see
那再去传参secret?secret=1,返回d
传参secret?secret=',返回r
我传/secret?secret=''''''直接报错了
可以看到一部分代码
传个中文secret?secret=啊也看到了一部分代码
第一段代码是对传入的secret参数加密,然后用render_template_string渲染返回,这里就是SSTI了
第二段就是加密算法的代码了
pycryptodome库已经实现了rc4,可以直接拿来用
可以看到结果是都符合的
但是问题是,用pycryptodome库的rc4加密的结果和wp是不一样的,就很奇怪
对于{{7*7}}用pycryptodome的库加密后的密文是.%14%0E%1F%FD%1A%16
wp的脚本加密结果是.%14%0E%1F%C3%BD%1A%16,可能是因为题目对RC4做了修改,从源码泄露可以看到有个rc4_Modified.py文件
看了一下wp,都是从网上找rc4的脚本,然后再按照SSTI的思路做就可以了。
对payload进行rc4加密
rc4加密脚本
题目rc4源码
最后更新于