Easy Calc 1//之脑残的waf使用

EASY calcc的学习

今天不碰到带了一个从来没有遇到的题型,特地在这里记录一下。

向往常一样打开,靶场竟然有输入框:

我的第一反应是这个是一道sql注入于是尝试输入字母测试一下看看能不能输入:

很好,不行(微笑微笑),肯定是没有这麽简单,那就看看源码吧:

以我匮乏的html代码知识依稀可以看出,他的想法是将输入框中获得的值传入这个calc.php中进行计算。那么就战术性的查看一下这个php文件里面都是啥:

以我菜鸡的php代码阅读能力来看,这个简(bian)单(tai)的php文件把能注释的特殊符号都注释了,也不让输入字母,这就解释了我们一看是的输入错误的原因,参数无法传入,但好就好在它是以GET方式传入的,可以简单地进行参数传入。

这里题主就陷入了瓶颈,又没有纯数字的参数传递,这让我怎莫办,但是向上翻我看到一句话:

hhhhhh,他这不就提醒了我吗,百度上无脑搜一下:

假如waf不允许num变量传递字母,可以在num前加个空格,这样waf就找不到num这个变量了,因为现在的变量叫“ num”,而不是“num”。但php在解析的时候,会先把空格给去掉,这样我们的代码还能正常运行,还上传了非法字符。

 

不错,这个waf真的是第一次见,网上说时web的一种防火墙,借用这个防火墙可以进行字符的过滤。我在网上找到了一些绕过的方法,链接就发在这里了:

深入理解SQL注入绕过WAF和过滤机制 - r00tgrok - 博客园 (cnblogs.com)

 

这次也真是长了姿势,原来还有这样简单的绕过过滤的机制,现在就来使用一番吧:

奥对了他把特殊符号都过滤了(😂)

这里我们借用了一个函数var_dump(),这个可以将php的命令直接执行。

接下来就是一些php的现成的函数使用scandir()扫描服务器上的所有文件但是他将特殊符号过滤了,我们只能将这个斜杠替换成ascii码在借用相应的函数进行解析了借用chr()实现对该ascii码的解析:

http://node3.buuoj.cn:28713/calc.php?%20num=var_dump(scandir(chr(47)))

看看得到的结果:

那么接下来就是扫描看看现成的flagg文件了:

node3.buuoj.cn:28713/calc.php? num=var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))

这里要把scandir修改为file_get_contents这样就能查看了。

总结

这道题还是从上学期开始刷题到现在,一直没有遇到过的一道题,这个里面涉及到了一个WAF的知识点,就是主要是对输入字符的过滤,能将需要的字符进行过滤,过滤获得字符,进行处理。但是嫩果饶过他的方法居然这么简单,那就是看来,还是要加强对php的基本知识的学习。

 

 

 

 

 

 

 

 

 

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值