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方法,负责处理文档转换逻辑。

关键漏洞点

  1. URL参数处理:接口接受URL参数并创建URL对象
  2. 爬取页面方法:使用getPage方法处理URL对象
  3. 文件写入操作:初始写入的文件名为index.html
  4. 爬虫功能扩展:调用GrabUtility.searchForNewFilesToGrab方法解析文件内容
  5. 文件下载逻辑:解析响应值,获取link[href]script[src]img[src]等标签内容

漏洞触发机制

  1. 程序对文件后缀进行了过滤,但过滤不完整
    • 黑名单包含:html、htm、php、asp、aspx和net
    • 未包含jsp后缀
  2. 目录穿越限制不严
    • 不能使用/进行目录穿越
    • 但Windows系统可使用\代替

漏洞利用流程

利用前提条件

  1. 攻击者需要控制一个恶意服务器
  2. 服务器上放置精心构造的index.html文件

分步利用方法

  1. 构造恶意页面

    <!-- 在index.html中插入指向恶意JSP的链接 -->
    <a href="malicious.jsp">Click me</a>
    <!-- 或使用其他可触发下载的标签 -->
    <script src="malicious.jsp"></script>
    
    
  2. 启动恶意HTTP服务器

    python -m http.server 80
    
  3. 触发漏洞
    向目标系统的/html/2word接口发送请求,指向恶意服务器

  4. 结果验证
    检查目标系统是否下载并执行了恶意JSP文件

注意事项

  1. 由于服务可能有缓存,测试时需要更换端口
  2. 安全软件可能拦截恶意行为(如示例中的火绒)
  3. 在Windows系统上使用\进行目录穿越

防护建议

  1. 输入验证

    • 严格验证URL参数
    • 限制允许的域名和协议
  2. 文件操作安全

    • 使用固定目录存放下载文件
    • 防止目录穿越攻击
    • 扩展文件后缀黑名单
  3. 权限控制

    • 限制服务器下载文件的权限
    • 使用沙箱环境处理不可信内容
  4. 更新升级

    • 升级到20231115或更高版本

漏洞复现工具

作者提供了一键复现POC:
https://github.com/springkill/idocv_poc

技术总结

该漏洞的根本原因是开发者虽然意识到了文件下载的风险,但防护措施不完善:

  1. 文件后缀过滤不完整(遗漏了jsp)
  2. 目录穿越防护不彻底(Windows系统可用\绕过)
  3. 爬虫功能过于宽松,未对解析内容进行充分验证

文件操作是Web应用中最敏感的操作之一,开发者需要实施多层防护措施,包括但不限于输入验证、输出编码、权限控制和环境隔离。

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 文件 分步利用方法 构造恶意页面 : 启动恶意HTTP服务器 : 触发漏洞 : 向目标系统的 /html/2word 接口发送请求,指向恶意服务器 结果验证 : 检查目标系统是否下载并执行了恶意JSP文件 注意事项 由于服务可能有缓存,测试时需要更换端口 安全软件可能拦截恶意行为(如示例中的火绒) 在Windows系统上使用 \ 进行目录穿越 防护建议 输入验证 : 严格验证URL参数 限制允许的域名和协议 文件操作安全 : 使用固定目录存放下载文件 防止目录穿越攻击 扩展文件后缀黑名单 权限控制 : 限制服务器下载文件的权限 使用沙箱环境处理不可信内容 更新升级 : 升级到20231115或更高版本 漏洞复现工具 作者提供了一键复现POC: https://github.com/springkill/idocv_ poc 技术总结 该漏洞的根本原因是开发者虽然意识到了文件下载的风险,但防护措施不完善: 文件后缀过滤不完整(遗漏了jsp) 目录穿越防护不彻底(Windows系统可用 \ 绕过) 爬虫功能过于宽松,未对解析内容进行充分验证 文件操作是Web应用中最敏感的操作之一,开发者需要实施多层防护措施,包括但不限于输入验证、输出编码、权限控制和环境隔离。