Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/4ra1n/mysql-fake-server
MySQL Fake Server (纯Java实现,支持GUI版和命令行版,提供Dockerfile,支持多种常见JDBC利用)
https://github.com/4ra1n/mysql-fake-server
fake-server jdbc mysql vulnerability web-security
Last synced: about 1 month ago
JSON representation
MySQL Fake Server (纯Java实现,支持GUI版和命令行版,提供Dockerfile,支持多种常见JDBC利用)
- Host: GitHub
- URL: https://github.com/4ra1n/mysql-fake-server
- Owner: 4ra1n
- Archived: true
- Created: 2023-05-15T09:06:44.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-09-18T15:13:23.000Z (about 1 year ago)
- Last Synced: 2024-08-02T15:24:20.446Z (4 months ago)
- Topics: fake-server, jdbc, mysql, vulnerability, web-security
- Language: Java
- Homepage:
- Size: 929 KB
- Stars: 640
- Watchers: 7
- Forks: 74
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.MD
Awesome Lists containing this project
- awesome-hacking-lists - 4ra1n/mysql-fake-server - MySQL Fake Server (纯Java实现,支持GUI版和命令行版,提供Dockerfile,支持多种常见JDBC利用) (Java)
README
# MySQL Fake Server
![](https://img.shields.io/badge/build-passing-brightgreen)
![](https://img.shields.io/badge/build-Java%208-orange)
![](https://img.shields.io/github/downloads/4ra1n/mysql-fake-server/total)
![](https://img.shields.io/github/v/release/4ra1n/mysql-fake-server)[English Version](doc/README.md)
## 0x00 介绍
该项目是 [MySQL_Fake_Server](https://github.com/fnmsd/MySQL_Fake_Server) 高级版
当`JDBC URL`可控时,特殊的`MySQL`服务端可以读取`JDBC`客户端任意文件或执行反序列化操作
完全使用`Java`实现部分`MySQL`协议,内置常见`ysoserial`链,一键启动,自动生成可用的`payload`用于测试
参考 [MySQL_Fake_Server](https://github.com/fnmsd/MySQL_Fake_Server) 项目,`payload`从`user`参数传递。反序列化应以`deser_`
开头,规则为`deser_[gadget]_[cmd]`;文件读取以`fileread_`开头,规则为`fileread_[name]`由于某些文件名或命令存在特殊字符,支持使用`base64`传递方式,方式为原有`user`基础上进行`base64`并以`base64`
开头,例如`user=deser_CB_calc.exe`等于`user=base64ZGVzZXJfQ0JfY2FsYy5leGU=`默认文件保存在当前目录的`fake-server-files`下的当前时间戳目录内(自动创建目录)
注意:读文件功能遇到没有没有完整读取的情况,重新尝试即可完整读取
自从 `0.0.3` 版本以后支持了自定义反序列化 `gadget` 功能
![](img/004.png)
自从 `0.0.4` 版本以后支持了 `PostgreSQL RCE`
![](img/005.png)
自从 `0.0.4` 版本以后支持了 `Apache Derby` 基于 `Slave` 的 RCE
![](img/006.png)
## 0x01 GUI
使用`GUI`版本一键启动,启动后可以根据自己的环境输入参数,生成`payload`
启动:`java -jar fake-mysql-gui.jar`
![](img/001.png)
## 0x02 CLI
当你的环境不允许使用`GUI`版时,可以使用命令行版启动,同样可以使用`GUI`辅助生成`payload`
启动:`java -jar fake-mysql-cli.jar -p [port]`
![](img/002.png)
## 0x03 Docker
构建:`docker build -t fake-mysql-server .`
启动:`docker run -p 3306:3306 -d fake-mysql-server`
![](img/003.png)
## 0x05 其他
怎样测试:
```java
String url = "jdbc:mysql://...";
try {
Class.forName("com.mysql.jdbc.Driver");
// Class.forName("com.mysql.cj.jdbc.Driver");
DriverManager.getConnection(url);
} catch (Exception e) {
e.printStackTrace();
}
```## 0x06 免责申明
本项目仅面向安全研究与学习,禁止任何非法用途
如您在使用本项目的过程中存在任何非法行为,您需自行承担相应后果
除非您已充分阅读、完全理解并接受本协议,否则,请您不要使用本项目
## 0x07 致谢与参考
- https://github.com/frohoff/ysoserial
- https://github.com/fnmsd/MySQL_Fake_Server
- https://pyn3rd.github.io/2022/06/06/Make-JDBC-Attacks-Brillian-Again-I/