I DOC VIEW前台RCE分析
字数 1136 2025-08-10 08:28:32
I DOC VIEW前台RCE漏洞分析与利用教学文档
漏洞概述
I DOC VIEW是一款在线文档查看器,其/html/2word接口存在远程代码执行(RCE)漏洞。该漏洞源于对用户提供的URL参数处理不当,导致攻击者可以诱导服务器下载并解析恶意JSP文件,从而实现远程代码执行。
影响版本
2023年11月15日之前的所有版本
漏洞原理分析
漏洞接口定位
漏洞存在于/html/2word接口中,该接口包含一个toWord方法,负责处理文档转换逻辑。
关键漏洞点
- URL参数处理:接口接受URL参数并创建URL对象
- 爬取页面方法:使用
getPage方法处理URL对象 - 文件写入操作:初始写入的文件名为
index.html - 爬虫功能扩展:调用
GrabUtility.searchForNewFilesToGrab方法解析文件内容 - 文件下载逻辑:解析响应值,获取
link[href]、script[src]、img[src]等标签内容
漏洞触发机制
- 程序对文件后缀进行了过滤,但过滤不完整
- 黑名单包含:html、htm、php、asp、aspx和net
- 未包含jsp后缀
- 目录穿越限制不严
- 不能使用
/进行目录穿越 - 但Windows系统可使用
\代替
- 不能使用
漏洞利用流程
利用前提条件
- 攻击者需要控制一个恶意服务器
- 服务器上放置精心构造的
index.html文件
分步利用方法
-
构造恶意页面:
<!-- 在index.html中插入指向恶意JSP的链接 --> <a href="malicious.jsp">Click me</a> <!-- 或使用其他可触发下载的标签 --> <script src="malicious.jsp"></script> -
启动恶意HTTP服务器:
python -m http.server 80 -
触发漏洞:
向目标系统的/html/2word接口发送请求,指向恶意服务器 -
结果验证:
检查目标系统是否下载并执行了恶意JSP文件
注意事项
- 由于服务可能有缓存,测试时需要更换端口
- 安全软件可能拦截恶意行为(如示例中的火绒)
- 在Windows系统上使用
\进行目录穿越
防护建议
-
输入验证:
- 严格验证URL参数
- 限制允许的域名和协议
-
文件操作安全:
- 使用固定目录存放下载文件
- 防止目录穿越攻击
- 扩展文件后缀黑名单
-
权限控制:
- 限制服务器下载文件的权限
- 使用沙箱环境处理不可信内容
-
更新升级:
- 升级到20231115或更高版本
漏洞复现工具
作者提供了一键复现POC:
https://github.com/springkill/idocv_poc
技术总结
该漏洞的根本原因是开发者虽然意识到了文件下载的风险,但防护措施不完善:
- 文件后缀过滤不完整(遗漏了jsp)
- 目录穿越防护不彻底(Windows系统可用
\绕过) - 爬虫功能过于宽松,未对解析内容进行充分验证
文件操作是Web应用中最敏感的操作之一,开发者需要实施多层防护措施,包括但不限于输入验证、输出编码、权限控制和环境隔离。