思維導圖

網站部署waf時,采用進程抓包工具抓取webpathbrute數據包分析,一般有2種結果:
- 1.直接誤報或者無結果
- 2.掃描一段時間后突然誤報
掃描探針機制
- 數據包攔截
- 速度過快攔截
WebPathBrute-Web路徑暴力探測工具:https://github.com/7kbstorm/7kbscan-WebPathBrute
使用WebPathBrute掃描網站目錄,當網站服務器分別部署了以下waf時,對攔截機制進行測試分析,結果如下:
1.safedog-默認攔截機制-未開CC
- 掃描結果:出現誤報,全部200狀態碼
- 原因:瀏覽器采用get方法,工具掃描采用head方法。
- 繞過方法:更改提交方式(改為get方法)或模擬用戶
2.safedog-默認攔截機制-開啟CC
- 掃描結果:誤報
- 繞過方法:延時或代理池或爬蟲引擎。
- 2.1 延時
- 可開啟延時掃描,慢速掃描,缺點是速度過慢。
- 2.2 代理池
- 網上搜索代理池,寫python腳本,添加代理池。確定是WAF可能開啟了防代理,無法繞過。
- 2.3 爬蟲引擎
- 可在軟件中自定義添加爬蟲引擎頭部(但是掃描不出現結果)
- 各大搜索引擎的User-Agent:https://www.cnblogs.com/iack/p/3557371.html
3.Aliyun_os-默認攔截機制
- 掃描結果:對部署在阿里雲上的網站進行目錄掃描時,掃着掃着網站就打不開了,大約1個小時后才能重新打開,重啟服務器也不能使網站重新打開,只能等一個小時,猜測這是因為阿里雲自己有一套防護體系。
- 繞過方法:無法模擬搜索引擎爬蟲繞過,只能采用延時或代理池
4.BT(防火牆插件)-默認攔截機制
- 攔截機制舉例:
- 60秒內,請求同一URL超過120次,封鎖IP 100秒。
- 60秒內,惡意請求6次,封IP 600秒。
- 什么是惡意請求?比如寶塔檢測到用戶頻繁請求index.php.bak等備份文件,即判斷為惡意請求,攔截。對於這種攔截,繞過方法為字典重寫(參考於upload-labs做字典)
- 繞過方法:爬蟲未知,延時可以,代理池可以
5.阿里雲(免費)+ safedog + 寶塔(付費插件)
- 繞過方法:延時或代理池
6.python編寫繞過腳本,進行目錄掃描
- 自定義headers頭部,模擬用戶
- 休眠3秒,模擬延時(測試發現,阿里雲至少休眠3秒,否則攔截)
- 添加proxy,從網上爬取代理池,按需添加,比如一個代理發10個請求,接着換另一個代理。
- 腳本如下
import requests import time headers={ } for path in open('php_b.txt',encoding='utf-8'): url='http://test.com' paths=path.replace('\n','') urls=url+paths proxy={ 'http':'127.0.0.1:7777' } try: code=requests.get(urls,headers=hearders,proxies=proxy).status_code //用get請求,將headers替換為之前的headers #time.sleep(3) print(urls+'|'+str(code)) if code==200 or code==403: print(urls+'|'+str(code)) except Exception as err: print('connecting error') timr.sleep(3)
