测试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