測試xray的一些細節


一、場景

場景描述:請求包host字段跟目的ip端口不一致(客戶端設置了hosts)

測試方法:

a)、在xray配置文件config.yaml中設置漏洞掃描代理(其中8080是burp的代理端口),啟動xray監聽7878端口做代理

xray_windows_amd64.exe webscan --listen 127.0.0.1:7878 --html-output xray-testphp.html

 

 

 b)、burp開啟攔截模式

 c)、開啟wireshark,過濾攔截的流量host www.xxx.com || host 192.168.0.45(攔截hosts的主機跟ip)

 d)、發包測試,代碼如下

import requests


cobra_proxy_url = {
    "http": "http://127.0.0.1:7878",
    "https": "https://127.0.0.1:7878"
}
cobra_proxy_cert = 'D:/xray/ca.crt'
url = "http://192.168.0.45/user/login"
method = "GET"
headers = {
    "User-Agent" : "Mozilla/5.0 (Linux; Android 9; V1913A Build/P00610; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36 newType/wifi",
    "Accept-Encoding" : "gzip",
    "Accept" : "*/*",
    "Connection" : "Keep-Alive",
    "Host" : "www.xxx.com",
    "Referer" : "http://www.xxx.com",
}

requests.request(method,
                 url=url,
                 headers=headers,
                 proxies=cobra_proxy_url,
                 verify=cobra_proxy_cert,
                 timeout=5,
                 allow_redirects=False)

e)、過程就不再詳細說了,直接說結果,通過分析發現:

1、xray會代理第一個請求,第一個請求不會走burp,並且會把hosts改成真實的目的ip(如果使用burp做代理還是www.xxx.com,如下圖)

 

 

 (圖一、xray作為代理發送請求)

 (圖二、burp作為代理發送請求)

2、xray好像只會掃描第一個代理請求返回碼為200的數據包

3、發送第一個請求不會走burp代理,xray再發送payload才會走config.yaml設置的代理,且這時候

host變回www.xxx.com  。。。?????絕望!

這會導致一個問題如果你只想在測試環境使用xray,設置hosts,但是部署xray的那台機器沒有設置hosts(因為xray要代理各種各樣的測試環境,甚至有時候要測試同一個域名對應不同的ip,所以在部署xray的服務器設置hosts不太可能),xray第一個代理包是會發到測試環境(192.168.0.45),但是后面涉及到payload的包都會發送到生產環境(www.xxx.com)

二、嘗試解決方案(還是沒解決)

1、在請求包頭字段設置真實ip端口(X-real-ip,X-real-port),然后在config.yaml設置代理服務器C,C可以做一個解析服務,解析請求包X-real-ip,X-real-port,並發送到真實ip。

這個方案的問題就是xray代理的第一個請求不走config.yaml設置代理服務器C。。。。崩潰

2、買商業版看看能不能提需求,哈哈哈 

三、為啥不把請求頭Host字段改成真實ip端口

畢竟xray代理的第一個包就是這么做的,為啥我不直接把host字段改成真實ip呢?因為當一台nginx或者一個ip可以對應多個域名。如果都跟xray一樣直接把請求頭Host字段改成真實ip,請求包到達服務器或者nginx的時候根本不知道這個數據包發給哪個服務

 

 打個廣告

字節跳動,深圳IT大量崗位招人,內推碼

https://job.toutiao.com/s/eJWG2YV


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM