sql注入100種姿勢過waf(一):waf 了解


僅供學習交流如果你有更好的思路可以一起分享,想一起學習的進我主頁 

 

首先WAF(Web Application Firewall),俗稱Web應用防火牆,主要的目的實際上是用來過濾不正常或者惡意請求包,以及為服務器打上臨時補丁的作用。

 

1、雲waf:

在配置雲waf時(通常是CDN包含的waf),DNS需要解析到CDN的ip上去,在請求uri時,數據包就會先經過雲waf進行檢測,如果通過再將數據包流給主機。常見產品:阿里雲防護,騰訊雲防護,創宇雲之類等。

2、主機防護軟件:

在主機上預先安裝了這種防護軟件,和監聽web端口的流量是否有惡意的,所以這種從功能上講較為全面。這里再插一嘴,mod_security、ngx-lua-waf這類開源waf雖然看起來不錯,但是有個弱點就是升級的成本會高一些。常見產品:雲鎖,安全狗之類產品。

3、硬件WAF:

硬件WAF可以理解為流量代理,一般部署方式都需要流量經過它,針對數據包進行拆包->清洗->規則命中->放行/丟棄,當然現在更有甚者,給WAF上了一個頭腦,采用深度學習,語義分析等操作,來減少本身WAF因為單調的規則導致可能被繞過的問題。常見產品:各產品鐵盒子waf

為什么WAF可被繞過

  • 業務與安全存在一定的沖突。

  • WAF無法100%覆蓋語言,中間件,數據庫的特性。

  • WAF本身漏洞。

 

1、Web容器的特性

特殊的百分號

在 IIS+ASP 的環境中,對於URL請求的參數值中的%,如果和后面的字符構成的字符串在 URL編碼表 之外,ASP腳本處理時會將其忽略。

但是waf 拿在包后會對url  比如:id=1 union all se%lect 1,2,3,4 fro%m adm%in     此時waf因為 % 的分隔,無法檢測出關鍵字 select from 等。

但是因為IIS的特性,最后在服務器上解析的時候, id 獲取的實際參數就變為1 union all select 1,2,3,4 from admin,從而繞過了waf。

要記住的是這個asp+iis 特性只對 asp 有效

2、 Web應用層的問題

編碼繞過

通過一般WAF會針對傳來的數據包中帶有的編碼進行一次解碼工作,如果WAF不能進行有效解碼還原攻擊向量,可能導致繞過,常見編碼如URL編碼、unicode編碼(IIS)、寬字節編碼等。例如我們用 url 的二次編碼,而經過一次 url解碼的之后,WAF可能無法識別出它是惡意的數據,當把該惡意數據放行到Web服務器上時,Web服務器會再一次解碼,最后導致了WAF繞過的結果。

3、WAF自身的問題

白名單機制

WAF存在某些機制,不處理和攔截白名單中的請求數據:

1、指定IP或IP段的數據。

2、來自於搜索引擎爬蟲的訪問數據。

3、其他特征的數據。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM