Giter Club home page Giter Club logo

mysql-fake-server's Introduction

MySQL Fake Server

English Version

0x00 介绍

该项目是 MySQL_Fake_Server 高级版

JDBC URL可控时,特殊的MySQL服务端可以读取JDBC客户端任意文件或执行反序列化操作

完全使用Java实现部分MySQL协议,内置常见ysoserial链,一键启动,自动生成可用的payload用于测试

参考 MySQL_Fake_Server 项目,payloaduser参数传递。反序列化应以deser_开头,规则为deser_[gadget]_[cmd];文件读取以fileread_开头,规则为fileread_[name]

由于某些文件名或命令存在特殊字符,支持使用base64传递方式,方式为原有user基础上进行base64并以base64开头,例如user=deser_CB_calc.exe等于user=base64ZGVzZXJfQ0JfY2FsYy5leGU=

默认文件保存在当前目录的fake-server-files下的当前时间戳目录内(自动创建目录)

注意:读文件功能遇到没有没有完整读取的情况,重新尝试即可完整读取

0x01 GUI

使用GUI版本一键启动,启动后可以根据自己的环境输入参数,生成payload

启动:java -jar fake-mysql-gui.jar

0x02 CLI

当你的环境不允许使用GUI版时,可以使用命令行版启动,同样可以使用GUI辅助生成payload

启动:java -jar fake-mysql-cli.jar -p [port]

0x03 Docker

构建:docker build -t fake-mysql-server .

启动:docker run -p 3306:3306 -d fake-mysql-server

0x04 RPC

本项目提供了GRPC调用的方式

启动:java -jar fake-mysql-rpc.jar(默认启动端口9999)

proto:

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;
}

0x05 其他

怎样测试:

    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 致谢与参考

mysql-fake-server's People

Contributors

4ra1n avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.