免責聲明 本教程僅為合法的教學目的而準備,嚴禁用于任何形式的違法犯罪活動及其他商業行為,在使用本教程前,您應確保該行為符合當地的法律法規,繼續閱讀即表示您需自行承擔所有操作的后果,如有異議,請立即停止本文章讀。
目錄
一、Waf分類
軟件型WAF
硬件型WAF
基于云WAF
開源型WAF
二、常見WAF進程和服務
(1) D盾
(2) 云鎖
(3) 阿里云盾
(4) 騰訊云安全
(5) 360主機衛士
(6) 網站/服務器安全狗
(7) 護衛神·入侵防護系統
(8) 網防G01政府網站綜合防護系統(“云鎖”升級版)
三、WAF識別
(1) wafw00f/WhatWaf
(2) sqlmap -identify-waf
(3) 項目地址
四、WAF規則引擎原理
一、Waf分類
WAF分為非嵌入型WAF和嵌入型WAF,非嵌入型指的是硬WAF、云WAF、虛擬機WAF之類的;嵌入型指的是web容器模塊類型WAF、代碼層WAF。
WAF對于一些常規漏洞(如注入漏洞、XSS漏洞、命令執行漏洞、文件包含漏洞)的檢測大多是基于“正則表達式”和“AI+規則”的方法,因此會有一定的概率繞過其防御。繞過waf的測試中,有很多方法可以使用,以下常用方法:
大小寫繞過
注釋符繞過
編碼繞過
分塊傳輸繞過
使用空字節繞過
關鍵字替換繞過
http協議覆蓋繞過
白名單ip繞過
真實ip繞過
Pipline繞過
參數污染
溢出waf繞過
可以把WAF分為四類:
云WAF類
硬件WAF類
軟件WAF類
網站內置WAF類
云waf基于云端的檢測,安裝簡單,修改DNS解析或在服務器安裝云WAF的模塊即可。
硬件WAF串聯在內網的交換機上,防護范圍大。
軟件WAF安裝在服務器上根據網站流量決定占用的內存量。
網站內置WAF在系統后臺內置一項安全功能以便管理者使用。在這些類別內,硬件WAF防護能力較強。
軟件型WAF
D盾:http://www.d99net.net/
云鎖:https://yunsuo.qianxin.com/
網防:http://www.weishi110.cn/static/index.html
安全狗:https://www.safedog.cn/
護衛神:https://www.hws.com/
智創:https://www.zcnt.com/
懸鏡:https://www.xmirror.cn/
UPUPW:https://www.upupw.net/
WTS-WAF:https://www.west.cn/
安騎士:https://help.aliyun.com/product/28449.html
dotDefender:http://www.applicure.com/Products/
硬件型WAF
綠盟: https://www.nsfocus.com.cn/
安恒:https://www.dbappsecurity.com.cn/
銥(yi)迅:https://www.yxlink.com/
天融信
深信服
啟明星辰
知道創宇
F5 BIG-IP:https://www.f5.com/
基于云WAF
安全寶
創宇盾:https://defense.yunaq.com/cyd/
玄武盾
騰訊云
百度云
西部數碼
阿里云盾
奇安信網站衛士
開源型WAF
Naxsi:https://github.com/nbs-system/naxsi
OpenRASP:https://github.com/baidu/openrasp
ModSecurity:https://github.com/SpiderLabs/ModSecurity
https://github.com/SpiderLabs/owasp-modsecurity-crs
WAF比較常見的監測機制特點有以下幾種。
?(1)異常檢測協議:拒絕不符合HTTP標準的請求,也可以只允許符合HTTP協議的部分選項通過,也有一些web應用防火墻還可以限定http協議中那些過于松散或未被完全制定的選項。
(2)增強輸入驗證:增強輸入驗證,對惡意字符進行攔截。
?(3)及時補丁:及時屏蔽掉新型漏洞,避免攻擊者進行攻擊,主要依靠WAF廠商對新型漏洞的及時響應速度
?(4)基于規則的保護和基于異常的保護:基于規則的保護可以提供各種web應用的安全規則,waf生產商會維護這個規則庫,并及時為其更新。用戶可以按照這些規則對應用進行全方面檢測。還有的產品可以基于合法應用數據建立模型,并以此為依據判斷應用數據的異常。但這需要對用戶企業的應用具有十分透徹的了解才可能做到
?(5)狀態管理;能夠判斷用戶是否是第一次訪問,將請求重定向到默認登錄頁面并且記錄事件,或對暴力破解行為進行攔截。
?(6)其他防護技術:如隱藏表單域保護、抗入侵規避技術、響應監視和信息泄露保護。
(7)配置規則:可以自定義防護的規則,如是否允許“境外ip”的訪問
二、常見WAF進程和服務
(1) D盾
服務名:d_safe
進程名:D_Safe_Manage.exe、d_manage.exe
(2) 云鎖
服務端監聽端口:5555
服務名:YunSuoAgent/JtAgent(云鎖Windows平臺代理服務)、YunSuoDaemon/JtDaemon(云鎖Windows平臺守護服務)
進程名:yunsuo_agent_service.exe、yunsuo_agent_daemon.exe、PC.exe
(3) 阿里云盾
服務名:Alibaba?Security?Aegis?Detect?Service、Alibaba?Security?Aegis?Update?Service、AliyunService
進程名:AliYunDun.exe、AliYunDunUpdate.exe、aliyun_assist_service.exe
(4) 騰訊云安全
進程名:BaradAgent.exe、sgagent.exe、YDService.exe、YDLive.exe、YDEdr.exe
(5) 360主機衛士
服務名:QHWafUpdata
進程名:360WebSafe.exe、QHSrv.exe、QHWebshellGuard.exe
(6) 網站/服務器安全狗
服務名:SafeDogCloudHelper
、SafedogUpdateCenter
、SafeDogGuardCenter
(服務器安全狗守護中心)進程名:SafeDogSiteApache.exe、SafeDogSiteIIS.exe、SafeDogTray.exe、SafeDogServerUI.exe、SafeDogGuardCenter.exe、CloudHelper.exe、SafeDogUpdateCenter.exe
(7) 護衛神·入侵防護系統
服務名:hws、hwsd、HwsHostEx/HwsHostWebEx(護衛神主機大師服務)
進程名:hws.exe、hwsd.exe、hws_ui.exe、HwsPanel.exe、HwsHostPanel.exe/HwsHostMaster.exe(護衛神主機大師)
(8) 網防G01政府網站綜合防護系統(“云鎖”升級版)
服務端監聽端口:5555
服務名:YunSuoAgent、YunSuoDaemon(不知是否忘了替換了!)?
進程名:gov_defence_service.exe、gov_defence_daemon.exe
三、WAF識別
WAF繞過不僅要了解WAF檢查的原理,還需要識別是什么類型的WAF,不同類型,不同品牌的waf監測機制不一樣,繞過的方式也不同。
(1) wafw00f/WhatWaf
利用wafw00f識別WAF,可以在WAF指紋目錄下自行編寫腳本。這類WAF識別工具的原理基本都是根據HTTP頭部信息、狀態碼以及WAF攔截頁中的圖片、文字做為特征來進行檢測,如wafw00f工具中的yunsuo.py腳本就是根據cookie中的security_session_verify來檢測的。
/usr/lib/python3/dist-packages/wafw00f/plugins
#!/usr/bin/env python
NAME?=?"Yunsuo"
def?is_waf(self):
if?self.matchcookie("^security_session_verify"):
return?True
return?False
(2) sqlmap -identify-waf
利用sqlmap -identify-waf參數識別WAF,一樣可以在WAF指紋目錄下根據原有腳本和Awesome-WAF項目自行編寫WAF指紋識別腳本,但有時可能會因為sqlmap新老版本的原因而導致存放路徑不一樣。
更新前:/usr/share/sqlmap/waf
更新后:/usr/share/golismero/tools/sqlmap/waf
#!/usr/bin/env python
"""
?Copyright?(c)?2006-2013?sqlmap?developers?(http://sqlmap.org/)
See the file "doc/COPYING" for copying permission
"""
import re
from lib.core.enumsimport HTTP_HEADER
from lib.core.settingsimport WAF_ATTACK_VECTORS
?__product__?="ModSecurity:?Open?Source?Web?Application?Firewall?(Trustwave)"
defdetect(get_page):
retval =False
for vectorin WAF_ATTACK_VECTORS:
page, headers, code = get_page(get=vector)
??retval?=?code?==501and?re.search(r"Reference?#[0-9A-Fa-f.]+",?page,?re.I)isNone
??retval?|=?re.search(r"Mod_Security|NOYB",?headers.get(HTTP_HEADER.SERVER,""),?re.I)isnotNone
if retval:
break
return retval
(3) 項目地址
https://github.com/sqlmapproject/sqlmap
https://github.com/EnableSecurity/wafw00f
https://github.com/Ekultek/WhatWaf
https://github.com/0xInfection/Awesome-
Waf工作模式:
關閉模式:對某個站點使用關閉模式,到這個站點的流量就感受不到WAF的存在。一般的做法,是解綁域名,再到web服務上綁定該域名。
監聽模式:既過規則,也會直接傳遞給web服務。
防護模式:直接過規則,不會直接傳遞給web服務
四、WAF規則引擎原理
WAF無非就是攔截有害請求和偽裝響應,出于性能考慮,攔截有害請求又分為兩個層面,由網絡層攔截和由應用層攔截,且任何請求應該先在網絡層過濾再到應用層過濾。也就是說,規則引擎分為兩塊,對請求過濾和對響應過濾,而對請求過濾分為兩大步,網絡層過濾和應用層過濾。
原理圖大致如下:
詳情參考:
https://www.cnblogs.com/realjimmy/p/12937247.html#:~:text=WAF%E5%85%A8%E7%A7%B0%E5%8F%ABWeb,Application%20Firewall%EF%BC%8C%E5%92%8C%E4%BC%A0%E7%BB%9F%E9%98%B2%E7%81%AB%E5%A2%99%E7%9A%84%E5%8C%BA%E5%88%AB%E6%98%AF%EF%BC%8C%E5%AE%83%E6%98%AF%E5%B7%A5%E4%BD%9C%E5%9C%A8%E5%BA%94%E7%94%A8%E5%B1%82%E7%9A%84%E9%98%B2%E7%81%AB%E5%A2%99%EF%BC%8C%E4%B8%BB%E8%A6%81%E5%AF%B9web%E8%AF%B7%E6%B1%82%2F%E5%93%8D%E5%BA%94%E8%BF%9B%E8%A1%8C%E9%98%B2%E6%8A%A4%E3%80%82
Waf工作原理:
WAF工作方式是對接收到的數據包進行正則匹配過濾,如果正則匹配到與現有漏洞知識庫的攻擊代碼相同,則認為這個惡意代碼,從而對于進行阻斷。所以,對于基于規則匹配的WAF,需要每天都及時更新最新的漏洞庫。
Waf工作過程:
解析HTTP請求
對接收到數據請求流量時會先判斷是否為HTTP/HTTPS請求,之后會查看此URL請求是否在白名單之內,如果該URL請求在白名單列表里,直接交給后端Web服務器進行響應處理,對于不在白名單之內的對數據包解析后進入到規則檢測部分。
匹配規則
解析后的數據包會進入到檢測體系中進行規則匹配,檢查該數據請求是否符合規則,識別出惡意攻擊行為。
防御動作
如果符合規則則交給后端Web服務器進行響應處理,對于不符合規則的請求會執行相關的阻斷、記錄、告警處理。
不同的WAF產品會自定義不同的攔截警告頁面,在日常滲透中我們也可以根據不同的攔截頁面來辨別出網站使用了哪款WAF產品,從而有目的性的進行WAF繞過。
記錄日志
Waf繞過
Waf攔截會出現在安全測試的各個層面,掌握各個層面的分析和繞過技術最為關鍵。
信息搜集
繞過分析:抓包技術、waf說明、FUZZ測試
繞過手法:
數據包特征:請求方式、模擬用戶、爬蟲引擎、白名單機制
??請求速度:延時(阿里3秒)、代理池、爬蟲引擎、白名單機制
漏洞發現
工具:
綜合:awvs、xray、appscan
單點:tpscan、wpscan、st2can
觸發:
掃描速度:延時、代理池、白名單
工具指紋:特征修改、模擬用戶
漏洞payload:數據變異、冷門掃描
漏洞利用
Sql注入、文件上傳、xss跨站、文件包含、RCE執行
Sql注入:
如需sgImap注入 修改us頭及加入代理防cc攔截自寫tamper模塊
安全狗:參考之前payload
Aliyun:基本修改指紋即可
寶塔:匹配關鍵字外加/*等
aglmap?--proxy="http://127.0.0.1:8080"??--tamper="waf.py"???--.random-agent
#文件上傳
?php截斷參考前面上傳waf繞過payload
#xss跨站
利用xsstrike繞過 加上--timeout或--proxy繞過cc
https://www.freebuf.com/sectool/142044.html
其他集合
RCE:
加密加碼繞過?算法可逆?關鍵詞繞過?提交方法?各種測試!
ex=sy=ser_replace?('',?,,?'pahpxinxfo()?');?assert?(sy)?;?asubmit
32648F90E49BAA4
文件包含:沒什么好說的就這幾種
?.\?.../?..等
權限控制:
腳本:asp、php、jsp、aspx、py、war等
工具:菜刀、蟻見、冰蝎
代碼:加密混淆、變量覆蓋、異或生成
行為:指紋變異、自寫輪子
檢測:常規安全腳本工具使用