type
status
date
slug
summary
tags
category
icon
password
基本信息
指纹信息:
默认端口为:9181
POC:
界面如图所示:

漏洞影响版本号:
漏洞详细分析
漏洞source位于:
com.qiyuesuo.setup.SetupController#dbtest()
只会简单判断参数Host,Port,Name和Username是否存在,不判断password,所以Payload里面可以不用加password
这些参数用户可以完全可控

com.qiyuesuo.setup.SetupService#check

com.qiyuesuo.setup.SetupService#dbtest

com.qiyuesuo.database.DatabaseService#getConnection

com.qiyuesuo.database.DatabaseService#getConnectionManager

com.qiyuesuo.database.DatabaseService#getConnectionManager

com.qiyuesuo.database.DatabaseConnection#getConnection

漏洞sink,jdbc url用户可控导致类加载任意字节码
java.lang.Class#forName(java.lang.String)

整个Gadget
系统支持如下数据库驱动
从
com.qiyuesuo.config.ConsoleConfiguration
可以看出dbtest接口在setup路径下,不需要鉴权,所以这个洞是一个前台洞
接口修复前:

补丁修复:

接口修复后:

MySql任意文件读取
在下面这些范围的都能打这个洞:
Payload:


文件读取如图所示:

PostgreSQL RCE
打CVE-2022-21724需要满足PostgreSQL版本如下:
实测在5.1.*的20241122版本中PostgreSQL 版本为42.5.5不满足

在4.3.*的20230203版本中满足版本

预测能打的版本在下面
直接用Java Chains 起一个Http Server Payload「这里直接以打内存马为例,实战中一般是先打DNSLOG,再打内存马」


payload1:

payload2:



参考
感谢le1a师傅的帮助
- 作者:thestar
- 链接:https://thestar0.site/article/20fb67db-fc9a-8088-9172-e2de1af90222
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。