PS:欢迎访问我的个人博客 http://luckyzmj.cn

0x01 XRAY 扫描器

xray 是从长亭洞鉴核心引擎中提取出的社区版漏洞扫描神器,支持主动、被动多种扫描方式,自备盲打平台、可以灵活定义 POC,功能丰富,调用简单,支持 Windows / macOS / Linux 多种操作系统,可以满足广大安全从业者的自动化 Web 漏洞探测需求。

  • GitHub地址:https://github.com/chaitin/xray
  • 官方文档:https://xray.cool/xray/#/tutorial/introduce

0x02 代理模式

1. 生成CA证书
.\xray.exe genca

运行命令之后,将在当前文件夹生成 ca.crtca.key 两个文件。

注意:本命令只需要第一次使用的时候运行即可,如果文件已经存在再次运行会报错,需要先删除本地的 ca.crtca.key 文件。

2. 安装CA证书

打开 火狐浏览器 > 选项设置 > 隐私与安全 > 查看证书(在页面底部) > 证书颁发机构 > 导入证书 > ca.crt

详细操作:https://jingyan.baidu.com/article/ca2d939d62d7eaeb6c31ced0.html

3. 开启代理

火狐浏览器安装插件 FoxyProxy Standard,监听本地7777端口,添加配置如下

然后点击右上角的插件图标,选择 xray 代理

4. 开始扫描

在扫描之前,我们还需要做一些必要的设置

第一次启动 xray 之后,当前目录会生成 config.yml 文件,选择文件编辑器打开,并按照下方说明修改。

定位到如下内容,在 includes: 下添加测试目标的站点域名,这里以AWVS官方的靶场为例 testphp.vulnweb.com,可以根据你实际测试目标替换。

mitm:
  ...
  restriction:
    includes:
    - "testphp.vulnweb.com"
    ...

监听本地的7777端口,并设置漏洞报告的输出的文件,支持多种格式

输出html格式文件报告
.\xray.exe webscan --listen 127.0.0.1:7777 --html-output xray-testphp.html

输出json格式文件报告
.\xray.exe webscan --listen 127.0.0.1:7777 --json-output xray-testphp.json

运行完该命令后,在火狐浏览器中访问 http://testphp.vulnweb.com 网站,然后在浏览器访问本地生成的 xray-testphp.html ,查看漏洞报告

注意:输出的漏洞报告文件是根据你实际手动浏览的页面而生成的,所以尽量多点击访问测试目标域名下的各个页面

下面是几个快速链接,可以点击用于体验更多的漏洞类型的扫描

  • http://testphp.vulnweb.com/listproducts.php?cat=1
  • http://testphp.vulnweb.com/artists.php?artist=2
  • http://testphp.vulnweb.com/redir.php?r=http://www.w3.org

在命令行可以使用 ctrl + c 按键,退出xray扫描

0x03 XRAY与Burp联动

在实际测试过程中,除了被动扫描,也时常需要手工测试。这里使用 Burp 的原生功能与 xray 建立起一个多层代理,让流量从 Burp 转发到 xray 中。

首先 xray 建立起 webscan 的监听

.\xray.exe webscan --listen 0.0.0.0:1111 --html-output Burp.html

进入 Burp 后,打开 User options 标签页,然后找到 Upstream Proxy Servers 设置。

点击 Add 添加上游代理以及作用域,Destination host处可以使用*匹配多个任意字符串,?匹配单一任意字符串,而上游代理的地址则填写 xray 的监听地址。

此时浏览器端需要使用 Burp 的端口8080代理

接下来使用Burp正常抓包,截取流量

放包时,Burp会将我们截取到的流量包转发到xray中进行漏洞检测

至此,xray与Burp联动成功。

0x04 XRAY与AppScan联动

注意:在联动之前,确保在配置文件_config.yaml文件中,定位到如下内容,在 includes: 中改为 * 或者你想要扫描的域名地址,否则会收不到数据

mitm:
  ...
  restriction:
    includes: # 允许扫描的域
    - "*" # 表示允许所有的域名和 path
    ...

首先 xray 建立起 webscan 的监听,0.0.0.0:1111 表示监听本地所有网卡的1111端口

.\xray.exe webscan --listen 0.0.0.0:1111 --html-output appscan.html

打开AppScan,新建一个站点扫描,注意勾选配置代理

代理设置为 127.0.0.1:1111

之后根据默认配置直接开始扫描

xray接收到了AppScan转发的数据并分析检测漏洞

至此,xray与AppScan联动成功。

0x05 XRAY与AWVS联动

这里测试的是 AWVS 10.5 版本的,之前测试了 AWVS 13 web 版的代理一直不成功,可能是我使用破解版无法使用代理的缘故,一直找不到方法解决,所以放弃了。但是用10.5版本的成功了,方法都是一样的,改AWVS的代理配置即可完成联动。

每次联动前,确保你的 _config.yaml 配置的允许扫描域名正确

mitm:
  ...
  restriction:
    includes: # 允许扫描的域
    - "*" # 表示允许所有的域名和 path
    ...

首先 xray 建立起 webscan 的监听,0.0.0.0:1111 表示监听本地所有网卡的1111端口

.\xray.exe webscan --listen 0.0.0.0:1111 --html-output awvs.html

打开AWVS,新建一个站点扫描,测试目标:http://testphp.vulnweb.com/

进入扫描配置

代理设置为 127.0.0.1:1111

之后根据默认配置直接开始扫描

xray接收到了AWVS转发的数据并分析检测漏洞

至此,xray与AWVS联动成功。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐