找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 428|回复: 0
打印 上一主题 下一主题

WAF的正确bypass

[复制链接]

2536

主题

2536

帖子

7532

积分

论坛元老

Rank: 8Rank: 8

积分
7532
跳转到指定楼层
楼主
发表于 2018-2-14 05:29:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            本文属i春秋的原创奖励计划,未经许可禁止转载!
前言 半年前的我,手握各种WAF的bypass,半年之后的我。就把思路分享出来了。别问我什么!问了我也不会告诉你,我是没事闲的!是不是好多人遇见WAF,就一阵头大呢~今天我就开车啦~大家快上车!
正文 测试环境
php:我使用的是 phpStudy
WAF:各种WAF的官网
测试思路 php的本地环境是用来检测sql语句是否可以执行。
WAF官网用来测试语句是否被拦截。
重点 :
1.HTTP数据包的认识。
2.充分利用数据库的注释功能。
3.有对WAF的构造思路。
测试代码 本地PHP存在注入漏洞的代码:
";while($row = mysql_fetch_array($cun))
{  
echo "url:".$row['URL']."
";  
echo "password:".$row['password']."
";  
echo "";
}
mysql_close($conn);
echo "您当前执行的SQL语句:";
echo urldecode($sql);
?>
GET型注入测试 - 伪造HTTP数据包 GET型注入相对于POST注入来说,在某些方面是比POST注入bypass更轻松一些的。这是为什么呢?答案是因为POST数据包中也包含了GET包哦~我们可以通过伪造POST数据包的方式进行GET注入。
也就是说,GET的类型最少有三种,甚至更多的数据包类型可以进行注入。
如:POST、PUT、GET。
1.测试普通的GET型注入

可以发现,上面成功接收到了GET数据包提交的数据。这是理所当然的!
2.测试POST提交的GET型注入

从上面可以看出,POST数据包种,确实包含了GET的数据包。所以,在有些时候进行Bypass测试时,适当的改下数据包类型,也是可以的哦。
在360主机卫士的之前版本中,POST提交只拦截POST的数据,当你利用POST数据包进行GET注入时,它是不会进行拦截的哦~ GET型注入测试绕过云锁 - 伪造HTTP数据包 首先,我们去云锁的官网进行Bypass测试! 我们在云锁官网的URL后面加入 and 1=1 进行测试。
当然,正如所料 100% 被拦截


一般情况,大家都会扭头就走~ 那我们现在来伪造个POST数据包,进行测试把~


正如我们期待的那样,伪造数据包后,WAF就被一棍子打死了~ 有时,即使我们伪造数据包后,仍过不了WAF,不要灰心,因为这个时候WAF的规则绝对比GET包的规则少哦~ GET型注入测试 - 合理构造HTTP数据包 - 思路 在http数据包中每个参数中间都会用&符连接,那么我们可不可以利用这个&符号呢? 下面我们先来进行本地测试!

我们发现即使 &符后面的参数被 /* 包含住,这可以被接收到。并没有被注释掉! 那是因为, /* 被HTTP当成了参数a的值,而并不是当成了注释! 有时候,我们可以利用这个方法,加其他的方法来bypass。
后记 挖WAF的bypass时,一定要从多方面入手,编码,协议,语句等,甚至有时都会利用系统的截断!
推荐大家买一本关于 HTTP协议 方面的书籍进行阅读,因为,只有越接近底层,才能越了解它。最后从方方面面进行绕过。
有编程功底的,可以思考一下WAF的编写方式,哪里容易出现漏洞等~比如我们常常用来截断文件的%00,在安全狗中却能截断安全狗对HTTP协议的检测。比如菜刀过狗时,EVAL%00()是不会被杀的!不要只靠别人!思路是你自己的!你学到的知识也是属于你自己的!
            
            
您可能感兴趣的文章:
  • 阿里云盾网站安全防御(WAF)的使用方法(图文)
  • Linux下给nginx安装waf模块
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端