MySQL Fake Server
用于渗透测试过程中的假MySQL服务器,纯原生python3实现,不依赖其它包。
用途
MySQL服务端读取客户端文件漏洞利用
MySQL JDBC客户端Java反序列化漏洞利用
说明
需要python3环境,无任何其它依赖。
根据登录用户名返回文件读取利用报文、反序列化利用报文。
需要ysoserial才能用反序列化功能,支持ServerStatusDiffInterceptor和detectCustomCollations两种方式。
MySQL的用户名支持冒号、斜杠等特殊符号,但是能否使用还需看具体客户端环境。
运行:python server.py
config.ini中预置了一部分配置信息
测试环境:
jdk1.8.20+mysql-connector-java 8.0.14/5.1.22(Windows下反序列化(JRE8u20)、文件读取)
PHPMyAdmin(Windows+Linux文件读取,可以使用相对路径读取php文件内容)
Navicat 12(Windows下文件读取,需要切换到mysql_clear_password认证插件)
使用方法
文件读取:
可以在config.json中fileread节中预定义好要读取的文件,key为用户名,value为要读取的文件名
可以用fileread_开头的用户名(例如使用用户名fileread_/etc/passwd来读取/etc/passwd文件)
反序列化
可在config.json中yso节预定义好yso payload的生成参数,key为用户名