使用 xray 代理模式進行漏洞掃描
代理模式下的基本架構為,掃描器作為中間人,首先原樣轉發流量,並返回服務器響應給瀏覽器等客戶端,通訊兩端都認為自己直接與對方對話,同時記錄該流量,然后修改參數並重新發送請求進行掃描。
生成 ca 證書
在瀏覽器使用 https 協議通信的情況下,必須要得到客戶端的信任,才能建立與客戶端的通信。
這里的突破口就是 ca 證書。只要自定義的 ca 證書得到了客戶端的信任,xray 就能用該 ca 證書簽發各種偽造的服務器證書,從而獲取到通信內容。
運行 .\xray_windows_amd64.exe genca
運行命令之后,將在當前文件夾生成 ca.crt
和 ca.key
兩個文件。
本命令只需要第一次使用的時候運行即可,如果文件已經存在再次運行會報錯,需要先刪除本地的 ca.crt
和 ca.key
文件。
安裝 ca 證書
如果使用的是 FireFox 瀏覽器,請參照這里,它有自己的證書體系。
如果使用的是 IE、Chrome、curl 等客戶端,建議將 ca 證書安裝在操作系統上,請參照下方的教程。
啟動代理
在掃描之前,我們還需要做一些必要的設置
第一次啟動 xray 之后,當前目錄會生成 config.yml
文件,選擇文件編輯器打開,並按照下方說明修改。
mitm
中restriction
中includes
由*
改為testphp.vulnweb.com
mitm: ... restriction: includes: - "testphp.vulnweb.com"
因為我們的測試目標站就是 http://testphp.vulnweb.com
,增加這個過濾之后,xray 將只會掃描該站的流量,避免掃描到非授權目標站點。
對於配置文件中的更多解讀,請參考文檔中的 配置
章節。
- 設定漏洞掃描結果的輸出,這里選擇使用 html 文件輸出,所以命令行后面要增加
--html-output xray-testphp.html
。
.\xray_windows_amd64.exe webscan --listen 127.0.0.1:7777 --html-output xray-testphp.html
常見問題
- 如何退出?
ctrl
+c
- 提示
file xray-testphp.html already exists
,可以刪除已經存在的報告文件,或者使用一個新的文件名,或者在文件名中加入__timestamp__
或__datetime__
將自動替換為實際值。
配置代理
開始掃描
使用瀏覽器訪問 http://testphp.vulnweb.com/
然后點擊頁面,流量就會轉發到xray上