日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

python編寫WAF與Sqlmap結合實現指紋探測_python

作者:巡安似海 ? 更新時間: 2022-07-08 編程語言

使用Python編寫探測WAF指紋腳本,再結合到Sqlmap中,這樣以后再探測網站時,如果識別到此WAF指紋,就會顯示出來。

編寫探測識別WAF腳本

00x1:WAF的特征

首先我們要了解WAF,尋找WAF的特征

比如安全狗,當訪問不存在的頁面

尋找關鍵字:如safedog

00x2:測試

ok,分析完畢,我們來測試一下

沒毛病,我們再去找一個waf,加入進去

以云鎖為例,還是首先分析

沒有發現特別明顯的特征

接著利用sql語句觸發Waf

https://www.yunsuo.com.cn/%20and%201=1

云鎖竟然沒用自己的產品...

那就以奇安信云防護為例,老規矩,查看源代碼尋找特征

這一塊可以當做特征(eventID">eventID)

測試一下,莫得問題

00x3:收集waf

那我們還可以把特征,全部放入字典中,或者txt文本加載

這樣可以方便收集waf,這里以txt為例

Waf.txt內容為:

    safedog|safedog
    eventID|qianxin
    yunsuo_session|yunsuo

通過Python打開Waf.txt查看每個Waf的識別規則

    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

方便調用:

完善驗證機制:

請求 /and 1=1.php,觸發waf

req = requests.get(url=u+'/and%201=1.php',headers=headers,verify=False,timeout=3)

批量驗證網站是否存在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)

到這我們腦子里就有個概念了,WAF指紋識別如何尋找的,如何粗略的編寫的,接下來就結合到Sqlmap中,讓它在檢測網站時存在此WAF指紋能夠識別到。

Pyhacker 之 編寫SQLMAP Waf探測

以前,sqlmap 是專門有一個WAF的目錄,來進行探測waf

命令:(已變成自動檢測)

sqlmap.py -u "http://www.xxx.com" --identify-waf --batch

到現在,sqlmap已經進行了修改,路徑也變了

C:\Python27\sqlmap\thirdparty\identywaf

我們只需要修改data.json里面的waf特征即可,如:safedog (607行)

Company :哪家公司產品

Name:waf名稱

regex:正則匹配

那我們來進行修改,以剛才的奇安信為例:

"regex": "Server: eventID|493",

原理:

Sqlmap會自動執行sql語句 來觸發waf

我們只需要寫入特征

修改之前:

修改之后:

已經可以探測到WAF了,這更方便于我們進行下一步操作

你可以去收集更多的waf特征,來進行匹配啦。

原文鏈接:https://blog.csdn.net/XunanSec/article/details/124684863

欄目分類
最近更新