[RoarCTF 2019]Easy Calc 1

[RoarCTF 2019]Easy Calc 1

打开实例发现是个计算器

image-20241106181139103

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

image-20241106181329899

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

image-20241106181712682

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

image-20241106182153908

使用php自带的函数进行探测(这些函数是百度的)

scandir()函数:返回指定路径数组

var_dump():输出变量的信息

构造payload,num前面加空格的url编码%20,用来绕过正则的/m 表示多行匹配(用来绕过参数只能传数值的问题)

?%20num=1;var_dump(scandir('/'))

image-20241106183520568

发现'/'被过滤了,采用ASCII码, 47

?%20num=1;var_dump(scandir(chr(47)))

image-20241106183637000

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

image-20241106183814963

直接上file_get_contents()文件读取函数,payload

?%20num=1;var_dump(file_get_contents(chr(47).f1agg))

image-20241106185035893

直接获得flag

flag{58fb9b42-61c4-40a2-a216-0fbd25f29aed}

posted @ 2024-11-08 18:47  TazmiDev  阅读(336)  评论(0)    收藏  举报