Wapiti - Web 漏洞掃描器
Wapiti 是一個用 Python 寫的 Web 漏洞掃描器。
http://wapiti-scanner.github.io/
要求
為了正常運作,Wapiti 需要 Python 3.10 或 3.11
如果您使用 setup.py 腳本或 pip install wapiti3,所有 Python 模組依賴項將自動安裝
有關安裝的更多詳細信息,請參閱 INSTALL.md。
在 Windows 上執行 Wapiti 可以透過使用 WSL 來完成。
它是如何運作的
Wapiti 充當「黑盒」漏洞掃描器,這意味著它不會研究 Web 應用程式的原始程式碼,而是像模糊器一樣工作,掃描已部署的 Web 應用程式的頁面,提取連結和表單並攻擊腳本,發送有效負載並尋找錯誤訊息、特殊字串或異常行為。
一般特點
- 產生各種格式(HTML、XML、JSON、TXT、CSV)的漏洞報告。
- 可以暫停和恢復掃描或攻擊(使用 sqlite3 資料庫的會話機制)。
- 可以在終端機中為您提供顏色以突出顯示漏洞。
- 不同級別的冗長。
- 啟動/停用攻擊模組的快速簡單的方法。
- 新增有效負載就像向文字檔案新增一行一樣簡單。
- 可設定執行 HTTP 請求的並發任務數量。
瀏覽功能
- 支援 HTTP、HTTPS 和 SOCKS5 代理程式。
- 目標上的 HTTP 驗證(基本、摘要、NTLM)
- 透過填寫登入表格進行身份驗證。
- 能夠限制掃描範圍(網域、資料夾、頁面、url)。
- 自動刪除 URL 中的一個或多個參數。
- 針對掃描無限循環的多重保護措施(例如,參數值的限制)。
- 可以設定要探索的第一個 URL(即使不在範圍內)。
- 可以排除一些URL的掃描和攻擊(例如:註銷URL)。
- 從 Chrome 或 Firefox 瀏覽器或使用 wapiti-getcookie 工具匯入 cookie。
- 可以啟用/停用 SSL 憑證驗證。
- 從 Flash SWF 檔案中提取 URL。
- 嘗試從 javascript(非常基本的 JS 解譯器)中提取 URL。
- HTML5 感知(了解最近的 HTML 標籤)。
- 用於控制爬網程序行為和限制的多個選項。
- 在攻擊過程中跳過一些參數名稱。
- 設定掃描過程的最長時間。
- 新增一些自訂 HTTP 標頭或設定自訂使用者代理程式。
- 使用Firefox無頭瀏覽器爬行
- 為複雜的驗證案例載入您自己的 python 程式碼(請參閱 --form-script 選項)
- 新增自訂 URL 或 PATH 來更新 Wappalyzer 資料庫
- 掃描給定 OpenAPI (swagger) 檔案的 REST API
支援的攻擊
- SQL 注入(基於錯誤、基於布林、基於時間)和 XPath 注入
- LDAP 注入(基於錯誤和基於布林值)
- 跨站腳本 (XSS) 反映且永久
- 檔案外洩偵測(本地和遠端include、require、fopen、readfile...)
- 指令執行偵測(eval()、system()、passtru()...)
- XXE(Xml外部實體)注入
- CRLF注射
- 在伺服器上搜尋潛在危險的檔案(感謝 Nikto db)
- 繞過弱 htaccess 配置
- 在伺服器上搜尋腳本的副本(備份)
- 砲彈休克
- 資料夾和檔案枚舉(類似 DirBuster)
- 伺服器端請求偽造(透過使用外部 Wapiti 網站)
- 打開重定向
- 偵測不常見的 HTTP 方法(如 PUT)
- 基本 CSP 評估器
- 暴力登入表單(使用字典清單)
- 檢查 HTTP 安全標頭
- 檢查 cookie 安全標誌(secure 和 httponly 標誌)
- 跨站請求偽造 (CSRF) 基本檢測
- 使用 Wappalyzer 資料庫對 Web 應用程式進行指紋識別,提供相關的 CVE 信息
- Wordpress、Drupal、Joomla、SPIP 等 CMS 模組枚舉
- 子域接管偵測
- Log4Shell (CVE-2021-44228) 偵測
- Spring4Shell (CVE-2020-5398) 偵測
- 檢查 https 重定向
- 檢查文件上傳漏洞
- 網路設備偵測
- 也將有效負荷注入 JSON 主體內
Wapiti 支援 GET 和 POST HTTP 方法進行攻擊。它還支援多部分,並可以在檔案名稱中註入有效負載(上傳)。發現異常時顯示警告(例如 500 個錯誤和逾時) 區分永久性 XSS 漏洞和反射型 XSS 漏洞。
模組名稱
上述攻擊與以下模組名稱相關:
- 備份(在網路伺服器上搜尋腳本和存檔的副本)
- brute_login_form(使用字典清單的暴力登入表單)
- buster(類似 DirBuster 的模組)
- cms(掃描偵測CMS及其版本)
- cookieflags(檢查安全性和 HttpOnly 標誌)
- crlf(HTTP 標頭中的 CR-LF 注入)
- csp(偵測缺少 CSP 或 CSP 配置較弱)
- csrf(偵測未針對 CSRF 進行保護或使用弱反 CSRF 令牌的表單)
- exec(程式碼執行或命令注入)
- 文件(路徑遍歷、文件包含等)
- htaccess(htaccess 限製配置錯誤)
- htp(識別使用 HashThePlanet 資料庫的網路技術)
- http_header(檢查 HTTP 安全標頭)
- https_redirect(檢查 https 重定向)
- ldap(基於錯誤和基於布林的 LDAP 注入檢測)
- log4shell(偵測易受 CVE-2021-44228 影響的網站)
- 方法(尋找不常見的可用 HTTP 方法,例如 PUT)
- network_device(尋找常用檔案來偵測網路設備)
- nikto(透過測試 URL 是否存在並檢查回應來尋找已知漏洞)
- permanentxss(在 xss 模組執行後重新掃描整個目標,尋找先前受污染的有效負載)
- 重定向(開放重定向)
- shellshock(測試Shellshock攻擊,請參閱維基百科)
- spring4shell(偵測易受 CVE-2020-5398 影響的網站)
- sql(基於錯誤和基於布林的 SQL 注入檢測)
- ssl(評估SSL/TLS憑證設定的安全性,需要sslscan)
- ssrf(伺服器端請求偽造)
- 接管(子域接管)
- timesql(使用基於時間的方法偵測到的 SQL 注入漏洞)
- upload(檔案上傳漏洞)
- wapp(不是攻擊模組,檢索目標上使用的Web技術的版本和類別,查找對應的CVE)
- wp_enum(枚舉 WordPress 網站上的外掛和主題)
- xss(XSS注入模組)
- xxe(XML 外部實體攻擊)
模組名稱可以使用“-m”或“--module”選項以逗號分隔清單的形式給出。
如何獲得最佳結果
若要尋找更多漏洞(因為某些攻擊是基於錯誤的),您可以修改網頁伺服器設定。
例如,您可以在 PHP 配置中設定以下值:
安全模式=關閉
display_errors = 開(建議)
magic_quotes_gpc = 關閉
允許 url_fopen = 開
mysql.trace_mode = 開
哪裡可以獲得幫助
在提示符號中,只需鍵入以下命令即可取得基本用法:
馬鹿-h
您也可以查看線上說明頁面(wapiti.1 或 wapiti.1.html),以了解有關每個選項的更多詳細資訊。
我們還有一個更詳盡的官方 wiki:https://github.com/wapiti-scanner/wapiti/wiki
如果您還有其他問題,請先查看常見問題解答
如果您發現錯誤,請填寫問題:https://github.com/wapiti-scanner/wapiti/issues
如何幫助馬鹿項目
你可以 :
- 透過捐款支持此計畫(http://sf.net/donate/index.php?group_id=168625)
- 建立或改進攻擊模組
- 建立或改進報告產生器和模板
- 發送錯誤修復、補丁...
- 編寫一些 GUI
- 建立一個將 PCAP 檔案轉換為 Wapiti sqlite3 會話檔案的工具
- 談論你身邊的馬鹿
授權
Wapiti 是根據 GNU 通用公共授權版本 2(GPL)發布的。原始碼可在 Github 上取得。
由尼古拉斯·蘇里巴斯創建。
贊助商
網路觀察 https://cyberwatch.fr/
每個人的安全 https://securityforeveryone.com/
免責聲明
Wapiti 是一款網路安全軟體。它對提供的目標執行安全評估,這可能會導致目標故障和崩潰,以及潛在的資料遺失。
未經主人事先同意,使用馬鹿攻擊目標是非法的。最終用戶有責任遵守所有適用的當地法律。
開發人員和參與 Wapiti 專案的人員不承擔任何責任,也不對該程式造成的任何誤用或損壞負責。