RoarCTF_2019_Easy Calc
[RoarCTF 2019]Easy Calc
0x00 过程
看见一个页面:
查看源代码,发现计算式会以num参数提交给calc.php
,并且设置了waf:
访问下calc.php
,可以看到高亮的源码:
1 |
|
很直接地告诉我们要利用eval
函数达成命令执行,但是在之前会有一个黑名单的过滤。也就是说除了设置了waf,程序本身还有一层过滤。如果是waf被触发,会返回403:
这里可以利用php的一个特性:
1 |
|
虽然我们将num参数前加了一个空格,但是在php解析过程中,会先把参数里的空格去掉,这样我们提交的参数值仍然可以走程序逻辑,这样就达到了一个绕waf的效果。
用chr字符拼接发现,system函数无法执行,这里使用var_dump
、scandir
、file_get_contents
来命令执行。
scandir()
函数返回指定目录中的文件和目录的数组。其中scandir(/)
相当于ls /
,var_dump()
相当于echo
。
var_dump(scandir(chr(47)))
扫描根目录发现flag。
使用file_get_contents()
拿到flag:
RoarCTF_2019_Easy Calc
https://k1nm0.com/2022/10/23/EasyCalc/