在過去
掃描網站是否存在漏洞是一項必要措施,結合對原始程式碼的分析,您可以評估其針對危害威脅的安全性等級。您可以使用專門的工具掃描網路資源。
Nikto、W3af(以 Python 2.7 編寫,不再受支援)或 Arachni(自 XNUMX 月起不再受支援)是免費部分中最受歡迎的解決方案。當然,還有其他的,例如馬鹿,我們決定專注於它。
Wapiti 可處理以下類型的漏洞:
- 檔案擴展(本地和遠端、fopen、readfile);
- 注入(PHP / JSP / ASP / SQL注入和XPath注入);
- XSS(跨站腳本)(反射性和持久性);
- 命令的偵測與執行(eval()、system()、passtru());
- CRLF 注入(HTTP 回應分割、會話固定);
- XXE(XML外部實體)嵌入;
- SSRF(伺服器端請求偽造);
- 使用已知的潛在危險文件(感謝 Nikto 資料庫);
- 可以繞過的弱 .htaccess 配置;
- 存在洩漏機密資訊的備份文件(洩漏原始碼);
- 砲彈休克;
- 打開重定向;
- 可解析 (PUT) 的非標準 HTTP 方法。
產品特點:
- HTTP、HTTPS 和 SOCKS5 代理支援;
- 使用多種方法進行驗證:Basic、Digest、Kerberos 或 NTLM;
- 限制掃描區域(網域、資料夾、頁面、URL)的能力;
- 自動刪除 URL 中的參數之一;
- 針對無限掃描循環的多重預防措施(例如:ifor、參數的限制值);
- 能夠設定檢查 URL 的優先順序(即使它們不在掃描區域中);
- 能夠從掃描和攻擊中排除某些 URL(例如:URL 登出);
- 導入 cookie(使用 wapiti-getcookie 工具取得它們);
- 能夠啟用/停用 SSL 憑證驗證;
- 從 JavaScript 擷取 URL 的能力(一個非常簡單的 JS 解譯器);
- 與 HTML5 互動;
- 用於管理爬蟲行為和限制的多個選項;
- 設定掃描過程的最長時間;
- 新增一些自訂 HTTP 標頭或設定自訂使用者代理程式。
附加功能:
- 建立各種格式的漏洞報告(HTML、XML、JSON、TXT);
- 暫停和恢復掃描或攻擊(使用 SQLite3 資料庫的會話機制);
- 終端機背光突出顯示漏洞;
- 不同等級的日誌記錄;
- 一種啟動/停用攻擊模組的快速簡便的方法。
安裝
目前版本的 Wapiti 可以透過兩種方式安裝:
- 從官方下載原始碼
сайта 並且運行安裝腳本,之前已經安裝了Python3; - 使用 pip3 install wapiti3 指令。
之後,馬鹿就可以出發了。
使用該工具
為了展示Wapiti的工作,我們將使用專門準備的網站sites.vulns.pentestit.ru(內部資源),其中包含各種漏洞(注入、XSS、LFI/RFI)和Web應用程式的其他缺點。
此資訊僅供參考。不要違法!
啟動掃描器的基本命令:
# wapiti -u <target> <options>
同時,還有大量啟動選項的相當詳細的幫助,例如:
- 範圍 - 應用領域
如果您與爬網 URL 一起指定範圍參數,則可以透過指定單一頁面和可在網站上找到的所有頁面來調整網站的掃描區域。
-s и -x — 新增或刪除特定 URL 的選項。當您需要在爬網過程中新增或刪除特定 URL 時,這些選項非常有用。
- 跳過 — 使用該鍵指定的參數將會掃描,但不會被攻擊。如果在掃描期間最好排除任何危險參數,則非常有用。
--驗證-ssl — 啟用或停用憑證驗證。
Wapiti 掃描器是模組化的。但是,要啟動特定模組(包括掃描器運行時自動連接的模組),您需要使用 -m 開關並列出所需的模組,並用逗號分隔。如果不使用該密鑰,則所有模組將預設工作。在最簡單的版本中,它看起來像這樣:
# wapiti -u http://sites.vulns.pentestit.ru/ -m sql,xss,xxe
這個使用範例意味著我們在掃描目標時只會使用SQL、XSS和XXE模組。此外,您可以根據所需的方法過濾模組的操作。例如 -m “xss:獲取,blindsql:發布,xxe:發布”。在這種情況下,模組 XSS 將適用於使用 GET 方法發送的請求,並且模組 資料庫資料庫 — POST 請求等順便說一句,如果清單中包含的某些模組在掃描過程中不需要或需要很長時間,那麼按 Ctrl+C 組合,您可以透過在互動選單中選擇相應的項目來跳過使用目前模組。
Wapiti 支援使用金鑰透過代理傳遞請求 -p 並透過參數對目標站點進行身份驗證 -a。您也可以指定身份驗證類型: 基本的, 消化, Kerberos的 и NTLM。最後兩個可能需要安裝附加模組。此外,您可以在請求中插入任何標頭(包括任意標頭) 用戶代理) 以及更多。
要使用身份驗證,您可以使用該工具 馬鹿 getcookie。在它的幫助下我們形成 餅乾,Wapiti 在掃描時將使用它。編隊 餅乾 使用命令完成:
# wapiti-getcookie -u http://sites.vulns.pentestit.ru/login.php -c cookie.json
在互動工作時,我們回答問題並指出必要的訊息,例如登入名稱、密碼等:
輸出是 JSON 格式的檔案。另一種選擇是透過參數添加所有必要的信息 -d:
# wapiti-getcookie - http://sites.vulns.pentestit.ru/login.php -c cookie.json -d "username=admin&password=admin&enter=submit"
結果將是類似的:
在考慮掃描器的主要功能時,在我們的案例中測試 Web 應用程式的最終請求是:
# wapiti --level 1 -u http://sites.vulns.pentestit.ru/ -f html -o /tmp/vulns.html -m all --color -с cookie.json --scope folder --flush-session -A 'Pentestit Scans' -p http://proxy.office.pentestit.ru:3128
其中其他參數:
-f и -o ——報告保存的格式和路徑;
-m — 不建議連接所有模組,因為會影響測試時間和報告大小;
-顏色 — 根據 Wapiti 本身的說法,根據其嚴重程度突出顯示已發現的漏洞;
-c - 使用文件 餅乾,使用生成 馬鹿 getcookie;
- 範圍 — 選擇攻擊目標。選擇一個選項 夾 從基本 URL 開始,每個 URL 都會被抓取和攻擊。基本 URL 必須有正斜線(無檔案名稱);
--刷新會話 — 允許重複掃描,其中先前的結果將不被考慮;
-A - 自己的 用戶代理;
-p — 代理伺服器位址(如有必要)。
關於報告的一些內容
掃描結果以 HTML 頁面格式詳細報告所有發現的漏洞,並以清晰易讀的形式呈現。該報告將指出發現的漏洞的類別和數量、它們的描述、請求、命令 捲曲 以及如何關閉它們的提示。為了便於導航,將在類別名稱中添加一個鏈接,單擊該鏈接即可轉到該鏈接:
該報告的一個顯著缺點是缺乏網路應用程式地圖,如果沒有網路應用程式地圖,就不清楚是否所有位址和參數都已被分析。也存在誤報的可能性。在我們的例子中,報告包括「備份文件」和「潛在危險文件」。它們的數量與實際情況不符,因為伺服器上沒有這樣的檔案:
也許隨著時間的推移,工作不正確的模組將會被修復。該報告的另一個缺點是缺乏對發現的漏洞的著色(取決於它們的嚴重性),或至少將它們劃分為類別。我們能夠間接了解所發現漏洞的嚴重性的唯一方法是使用參數 -顏色 掃描過程中,發現的漏洞會以不同的顏色顯示:
但報告本身並沒有提供這樣的色彩。
漏洞
SQLi
掃描器部分地處理了 SQLi 搜尋。在不需要身份驗證的頁面上搜尋SQL漏洞時,不會有問題:
即使使用有效的方法,也不可能在僅經過身份驗證後才能訪問的頁面上找到漏洞 餅乾,因為很可能在成功驗證後,他們的會話將被「註銷」並且 餅乾 將會失效。如果將取消授權功能實作為負責處理此程序的單獨腳本,則可以透過 -x 參數將其完全排除,從而阻止其觸發。否則,將無法排除其處理。這不是特定模組的問題,而是整個工具的問題,但由於這種細微差別,無法偵測封閉資源區域中的多次注入。
XSS
掃描器完美地應對了給定的任務,並發現了所有準備好的漏洞:
低頻幹擾/射頻幹擾
掃描器發現了所有潛在的漏洞:
總的來說,儘管存在誤報和缺失漏洞,Wapiti 作為一款免費工具,仍顯示出相當不錯的效能結果。無論如何,值得認識到的是,該掃描器非常強大、靈活且多功能,最重要的是,它是免費的,因此它有權用於幫助管理員和開發人員獲取有關網路安全狀態的基本信息應用。
保持健康並受到保護!
來源: www.habr.com