[RoarCTF 2019]Easy Calc

目录

1.利用php的字符串解析特性,绕过waf

绕过思路:

2.绕过引号过滤

3.函数说明

4.实操

1.得到根目录的内容

2.发现一个可疑的f1agg文件。尝试读取里面的文件内容。


1.利用php的字符串解析特性,绕过waf

绕过思路:

简单来说就是当我们通过get、post方法传递参数的时候,参数当中包含的一些特殊字符,后端在把他们存储到相应的_\[POST\]、_GET数组当中的时候会把对应的变量名进行处理,会自动去除其中的一些空白符。利用这个特性来绕过waf的检测

经过测试,我们发现不能提交任何字母,只能是数字,否则会被waf拦截

然后尝试绕过waf。他这个waf估计就是检测了变量名称为num里面的值,而这里我把变量名称改了,改成空格+num,就可以绕过了针对num变量的检测。

这里注意:只能在变量名的前面加上空格才行,在变量里面和后面都不行。

2.绕过引号过滤

他这里过滤了引号,但是没有过滤/,路径分隔符。

我们可以使用chr()函数,传入指定字符的askill码值,就可以得到对应的字符。而且得到的不仅是单个符号,还是有引号的。比如/的askill值是47,但是我们直接使用scandir(/)是会报错的,因为字符要用引号包裹,但是我们通过chr函数,通过它的askill码值得到对应的字符,和'/'是等价的。

3.函数说明

chr() --- 返回指定的字符

scandir() --- 列出指定路径中的目录内容,返回的内容是数组,包括指定路径当中的所有文件(夹)名。输出的话要使用var_dump函数、print_r函数

var_dump() --- 打印数组的相关信息

file_get_contents() --- 读取文件内容

4.实操

1.得到根目录的内容

poc:

http://node5.buuoj.cn:29957/calc.php?%20num=0;var_dump(scandir(chr(47)));

2.发现一个可疑的f1agg文件。尝试读取里面的文件内容。

首先还是和上面一样,这个文件名是字符串,还是要绕过引号的限制,使用askill值转换为对应的字符。再使用点号拼接即可。

poc

var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103))) 等价 var_dump(file_get_contents("/flagg"))

相关推荐
LDZKKJ9 小时前
OpenAI模型“越狱“入侵Hugging Face——AI安全史上的至暗时刻
网络·人工智能·安全
zzq779710 小时前
别把大模型 API Key 写进 APK:移动 AI 应用接口防盗刷实践
android·人工智能·安全·app加固·御盾安全·安卓加固
山东科恩光电12 小时前
如何通过穆柯隐卫MZS-01确保生产安全与人员保护?
安全
吴声子夜歌13 小时前
MongoDB 4.2——安全介绍
数据库·安全·mongodb
海域云-罗鹏13 小时前
分支访问总部ERP卡顿?如何部署SD-WAN组网解决方案
服务器·网络·安全
老孙讲技术16 小时前
做过安防后端的人都懂:别把「云录像留证」和「告警外呼叫醒」拆成两套台账——分层搭重大事件触达
物联网·安全
Tom·Ge17 小时前
【AI前沿】20260728-Kimi K3全量开源破闭源壁垒,MCP无状态化定稿,AI Agent安全事故揭示提交权才是安全分界线
人工智能·安全·开源
zzq779717 小时前
Android 风险识别机制实测:从录屏悬浮窗到远程控制的边界评估
android·安全·安卓·app加固·御盾安全
IT小白杨18 小时前
指纹浏览器安全架构技术评测与API自动化能力对比
经验分享·安全·自动化·业界资讯·安全架构·指纹浏览器
hz5678919 小时前
应急管理部门跨部门会商用什么系统?指挥调度视频会议方案解析
网络·安全·音视频·实时音视频·信息与通信