python編寫WAF與Sqlmap結(jié)合實(shí)現(xiàn)指紋探測(cè)
使用Python編寫探測(cè)WAF指紋腳本,再結(jié)合到Sqlmap中,這樣以后再探測(cè)網(wǎng)站時(shí),如果識(shí)別到此WAF指紋,就會(huì)顯示出來。
編寫探測(cè)識(shí)別WAF腳本
00x1:WAF的特征
首先我們要了解WAF,尋找WAF的特征
比如安全狗,當(dāng)訪問不存在的頁(yè)面
尋找關(guān)鍵字:如safedog


00x2:測(cè)試
ok,分析完畢,我們來測(cè)試一下

沒毛病,我們?cè)偃フ乙粋€(gè)waf,加入進(jìn)去
以云鎖為例,還是首先分析

沒有發(fā)現(xiàn)特別明顯的特征
接著利用sql語句觸發(fā)Waf
https://www.yunsuo.com.cn/%20and%201=1

云鎖竟然沒用自己的產(chǎn)品...
那就以奇安信云防護(hù)為例,老規(guī)矩,查看源代碼尋找特征

這一塊可以當(dāng)做特征(eventID">eventID)
測(cè)試一下,莫得問題

00x3:收集waf
那我們還可以把特征,全部放入字典中,或者txt文本加載
這樣可以方便收集waf,這里以txt為例
Waf.txt內(nèi)容為:
safedog|safedog
eventID|qianxin
yunsuo_session|yunsuo通過Python打開Waf.txt查看每個(gè)Waf的識(shí)別規(guī)則
waf = []
def waflist():
file = open('waf.txt')
for line in file:
str = line.strip().split("|") #去除換行等字符,以|分割
waf_data={}
if len(str)==2: #判斷是否屬于waf格式
waf_data['waf']=str[0]
waf_data['name'] = str[1]
waf.append(waf_data)
waflist()
print waf
方便調(diào)用:

完善驗(yàn)證機(jī)制:

請(qǐng)求 /and 1=1.php,觸發(fā)waf
req = requests.get(url=u+'/and%201=1.php',headers=headers,verify=False,timeout=3)
批量驗(yàn)證網(wǎng)站是否存在WAF:
def main():
waflist()
print u"\n加載waf完畢\n"
f = open('url.txt','r')
for url in f:
url = url.strip()
if 'http' not in url:
u = 'http://' + url
wafreq(u)到這我們腦子里就有個(gè)概念了,WAF指紋識(shí)別如何尋找的,如何粗略的編寫的,接下來就結(jié)合到Sqlmap中,讓它在檢測(cè)網(wǎng)站時(shí)存在此WAF指紋能夠識(shí)別到。
Pyhacker 之 編寫SQLMAP Waf探測(cè)
以前,sqlmap 是專門有一個(gè)WAF的目錄,來進(jìn)行探測(cè)waf
命令:(已變成自動(dòng)檢測(cè))
sqlmap.py -u "http://www.xxx.com" --identify-waf --batch
到現(xiàn)在,sqlmap已經(jīng)進(jìn)行了修改,路徑也變了
C:\Python27\sqlmap\thirdparty\identywaf
我們只需要修改data.json里面的waf特征即可,如:safedog (607行)

Company :哪家公司產(chǎn)品
Name:waf名稱
regex:正則匹配
那我們來進(jìn)行修改,以剛才的奇安信為例:
"regex": "Server: eventID|493",

原理:
Sqlmap會(huì)自動(dòng)執(zhí)行sql語句 來觸發(fā)waf
我們只需要寫入特征
修改之前:

修改之后:

已經(jīng)可以探測(cè)到WAF了,這更方便于我們進(jìn)行下一步操作
你可以去收集更多的waf特征,來進(jìn)行匹配啦。
以上就是python編寫WAF與Sqlmap結(jié)合實(shí)現(xiàn)指紋探測(cè)的詳細(xì)內(nèi)容,更多關(guān)于python WAF指紋探測(cè)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python單元測(cè)試框架unittest基本用法案例
unittest庫(kù)unittest庫(kù)是python的內(nèi)置庫(kù),用來對(duì)程序進(jìn)行測(cè)試,下面這篇文章主要給大家介紹了關(guān)于python中單元測(cè)試框架unittest基本用法的相關(guān)資料,需要的朋友可以參考下2022-09-09
使用python搭建Django應(yīng)用程序步驟及版本沖突問題解決
這篇文章主要介紹了使用python搭建Django應(yīng)用程序的步驟,最近還解決了因版本沖突出現(xiàn)的錯(cuò)誤2013-11-11
TensorFlow車牌識(shí)別完整版代碼(含車牌數(shù)據(jù)集)
這篇文章主要介紹了TensorFlow車牌識(shí)別完整版代碼(含車牌數(shù)據(jù)集),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
python實(shí)現(xiàn)摳圖給證件照換背景源碼
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)摳圖給證件照換背景源碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08
Python灰度變換中位圖切割分析實(shí)現(xiàn)
灰度變換是指根據(jù)某種目標(biāo)條件按一定變換關(guān)系逐點(diǎn)改變?cè)磮D像中每個(gè)像素灰度值的方法。目的是改善畫質(zhì),使圖像顯示效果更加清晰。圖像的灰度變換處理是圖像增強(qiáng)處理技術(shù)中的一種非?;A(chǔ)、直接的空間域圖像處理方法,也是圖像數(shù)字化軟件和圖像顯示軟件的一個(gè)重要組成部分2022-10-10
Python自動(dòng)化辦公之Excel拆分與自動(dòng)發(fā)郵件
這篇文章主要何大家分享一個(gè)真實(shí)的自動(dòng)化辦公案例,即向用戶發(fā)送帶有Excel附件的電子郵件,同時(shí)必須按用戶從主Excel文件中拆分?jǐn)?shù)據(jù)以創(chuàng)建他們自己的特定文件,然后將該文件通過電子郵件發(fā)送給正確的用戶,感興趣的可以了解一下2022-03-03
jupyter-lab設(shè)置自啟動(dòng)及遠(yuǎn)程連接開發(fā)環(huán)境
本文主要介紹了jupyter-lab設(shè)置自啟動(dòng)及遠(yuǎn)程連接開發(fā)環(huán)境,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
Python讀取Hive數(shù)據(jù)庫(kù)實(shí)現(xiàn)代碼詳解
這篇文章主要介紹了Python讀取Hive數(shù)據(jù)庫(kù)實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03

