WAFNinja:一款繞過WAF的滲透測試工具【文末抽書】
VSole2022-07-12 22:45:42
0x00 簡介
WAFNinja 簡介
WAFNinja 是一款采用Python編寫的命令行工具。它通過自動化步驟來幫助滲透測試者來繞過WAF,而這些步驟對于繞過輸入驗證來說是必需的。該工具的編寫目標是方便擴展、易于使用和在團隊環境下也可使用。眾多的載荷和模糊字符串是存儲在本地的數據庫,并且伴隨著該工具一同發布出來。WAFNinja 支持HTTP連接、GET/POST請求、可以使用cookie去訪問那些只限于授權用戶的頁面。
0x01 下載安裝
下載方式
github下載地址: https://github.com/khalilbijjou/WAFNinja 可用git clone https://github.com/khalilbijjou/WAFNinja
或者直接用瀏覽器下載并且解壓到本地文件。
安裝
直接進入該文件夾,輸入如下命令:
root@kali:~/WAFNinja# python wafninja.py -h
如果出現正常的文檔說明,該結果證明安裝成功;
如果出現類似“ ImportError: No module named progressbar ”,請自行安裝相關的包。
例如本處的解決方式為:
root@kali:~/#pip install processbar ( 或者在終端輸入:easy_install processbar)
0x02 使用
查看幫助信息
root@kali:~/WAFNinja# python wafninja.py -h root@kali:~/WAFNinja# python wafninja.py fuzz -h # 我們可以把fuzz 換成 bypass,insert-fuzz,insert-bypass,set-db 這幾個關鍵詞,便可以查看相對應的幫助信息。
使用示例
fuzz(模糊測試):
python wafninja.py fuzz -u "http://www.target.com/index.php?id=FUZZ" -c "phpsessid=value" -t xss -o output.html


bypass(繞過WAF):
python wafninja.py bypass -u "http://www.target.com/index.php" -p "Name=PAYLOAD&Submit=Submit" -c "phpsessid=value" -t xss -o output.html
insert-fuzz(用戶自定義模糊測試載荷):
python wafninja.py insert-fuzz -i select -e select -t sql
其他參數:
{fuzz,bypass,insert-fuzz,insert-bypass,set-db}
fuzz 檢查WAF允許通過的符號和關鍵詞。.
bypass 從數據庫中發送載荷到目標。
insert-fuzz 添加一個模糊字符串。
insert-bypass 添加一個載荷到繞過列表。
set-db 設置另外一個數據庫文件。對于別人分享的相同載荷數據庫時,這個特別有用。
可選參數:
-h, --help 顯示幫助信息并且退出。
-v, --version 顯示程序版本號并且推出。
備注
0x01中的第一步時,當我們使用
root@kali:~/WAFNinja# python wafninja.py fuzz -h usage: wafninja.py fuzz [-h] -u URL [-p POST PARAMETER] [-c COOKIE] -t TYPE [-d DELAY] [-o OUTPUT FILE]
可選參數:
-u URL 目標URL(例如:"www.target.com/index.php?id=FUZZ")注意:用關鍵詞FUZZ來指定模糊測試的位置。 -p POST PARAMETER 通過post參數發送模糊測試載荷 -c COOKIE HTTP Cookie 頭部 -t TYPE 載荷的類型 [sql|xss] -d DELAY 每個請求的等待時間,默認是0秒 -o OUTPUT FILE 保存輸出到html 文件 -h, --help 顯示幫助信息并且退出。
VSole
網絡安全專家