Neurohazard
暮雲煙月,皓首窮經;森羅萬象,如是我聞。

长亭科技漏洞扫描引擎 / 洞鉴 X-ray 社区版

wpadmin~June 13, 2019 /InfoSec

长亭科技漏洞扫描引擎 / 洞鉴 X-ray 社区版

正文

长亭漏洞探测神器 xray 使用指南
https://bithack.io/forum/293

新型爬虫如何重构“网站URL采集”这件小事?(内附演示视频)
https://mp.weixin.qq.com/s/MnoVC-ZCiE1BLw6VTZlAQQ

爬虫能力测试平台
http://demo.aisec.cn/demo/aisec/

https://github.com/chaitin/xray/releases

xray 100问
https://docs.qq.com/doc/DV0xBRmxHUVRhTGRD

xray 第二期线下活动ppt(部分)

链接:https://pan.baidu.com/s/1mb4vdS_2wNqA5Eu_gX2M0w&shfl=shareset
提取码: i3ef

建议使用被动模式

# 示例1
xray_windows_amd64.exe --log_level debug webscan --plugins cmd_injection,sqldet,redirect,dirscan --output result.txt --listen 127.0.0.1:9999
# 示例2
xray_windows_amd64.exe --log_level debug webscan --listen 127.0.0.1:7777 --html-output proxy.html
# 当 Xray 与 Burp 同时使用时,建议浏览器的代理设置为 Burp ,同时在 Burp 中设置上游代理为 Xray

小技巧

建议使用 firefox 浏览器,并导入 xray 生成的 CA 证书。
http://wp.blkstone.me/2019/02/chrome-firefox-ssl-tls-error/

多级/级联代理设置

# linux
export http_proxy=http://127.0.0.1:1080
./xray

# windows
set http_proxy=http://127.0.0.1:1080
./xray.exe

常用命令

xray.exe webscan --url http://example.com/?a=b --html-output single-url.html

已知的缺陷

1 SQL注入检测不支持 多重嵌套的 JSON 参数
2 cookie 重叠,json只支持简单的,还丢数据(HTTP POST)

使用指南

快速使用方式

  1. 扫描单个 url
    xray webscan --url "http://example.com/?a=b"
    
  2. 使用 HTTP 代理进行被动扫描
    xray webscan --listen 127.0.0.1:7777
    

    设置浏览器 http 代理为 http://127.0.0.1:7777,就可以自动分析代理流量并扫描。

    如需扫描 https 流量,请阅读下方 抓取 https 流量 部分

  3. 手动指定本次运行的插件

    默认情况下,将会启用所有内置插件,可以使用下列命令指定本次扫描启用的插件。

    xray webscan --plugins cmd_injection,sqldet --url http://example.com
    xray webscan --plugins cmd_injection,sqldet --proxy 127.0.0.1:7777
    
  4. 指定插件输出

    可以指定将本次扫描的漏洞信息输出到某个文件中:

    xray webscan --url http://example.com/?a=b --output result.txt
    

进阶使用

配置文件

引擎初次运行时,会在当前目录内生成一个 config.yaml 文件,该文件中的配置项可以直接左右引擎在运行时的状态。通过调整配置中的各种参数,可以满足不同场景下的需求。在修改某项配置时,请务必理解该项的含义后再修改,否则可能会导致非预期的情况。下列进阶使用的方法均与该配置文件相关。

默认开启/关闭某个插件

插件配置中的 plugins 部分如下:

plugins:
  cmd_injection:
    enabled: true
  sqldet:
    enabled: true
  dirscan:
    enabled: true
  redirect:
    enabled: false
  ...

通过修改enabled 项,可以默认开启/关闭某个插件。值得一提的是,通过 --plugins 指定的插件将会被强制启用。

抓取 https 流量

mitm 的配置项主要用于被动扫描模式下的代理的配置。

mitm:
  ca_cert: ./ca.crt
  ca_key: ./ca.key
  includes: "*"
  excludes: ""

配置项中的前两项: ca_certca_key 用于指定中间人的根证书路径。和 burp 类似,抓取 https 流量需要信任一个根证书,这个根证书可以自行生成,也可用下列自带的命令生成:

xray genca

运行后将在当前目录生成 ca.keyca.crt, 用户需要手动信任 ca.crt。操作完成后就可以正常抓取 https 流量了。

在 mitm 的配置部分还有两项配置值得注意:

  1. includes表示只扫描哪些域。比如 *.example.com 只扫描 example.com 的子域
  2. excludes 表示不扫描哪些域。比如 t.example.com 表示不扫描 t.example.com

两个都配置的情况下会取交集,这两个配置常用于想要过滤代理中的某些域,或者只想扫描某个域的请求时。默认配置为抓取所有的域。

HTTP 配置

这里的配置主要影响到引擎的 http 发包,如有需求,参考 yaml 中注释进行对应的修改。

http:
  dial_timeout: 5 # 建立 tcp 连接的超时时间
  read_timeout: 30 # 读取 http 响应的超时时间,不可太小,否则会影响到 sql 时间盲注的判断
  fail_retries: 1 # 请求失败的重试次数,0 则不重试
  max_redirect: 5 # 单个请求最大允许的跳转数
  max_conns_per_host: 50 # 同一 host 最大允许的连接数,可以根据目标主机性能适当增大。
  max_resp_body_size: 8388608 # 8M,单个请求最大允许的响应体大小,超过该值 body 就会被截断
  headers: # 每个请求预置的 http 头
    UserAgent:
      - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169
  cookies: # 每个请求预置的 cookie 值,效果上相当于添加了一个 Header: Cookie: key=value
    key: value
  allow_methods: # 允许使用 http 方法
    - HEAD
    - GET
    - POST
    - PUT
    - DELETE
    - OPTIONS
    - CONNECT
  tls_skip_verify: true # 是否验证目标网站的 https 证书。

讨论区

  1. Github issue: https://github.com/chaitin/xray/issues
  2. QQ 群: 717365081

Leave a Reply

Your email address will not be published. Required fields are marked *