diff --git a/docs/CONTRIBUTE.md b/CONTRIBUTING.md similarity index 63% rename from docs/CONTRIBUTE.md rename to CONTRIBUTING.md index 19be1912..bd1c91ad 100644 --- a/docs/CONTRIBUTE.md +++ b/CONTRIBUTING.md @@ -1,8 +1,12 @@ ### 目录结构 +- behinder:冰蝎简易连接器,用来自动化测试连接效果(为保证兼容性够高,所以单独弄出来) +- godzilla:哥斯拉简易连接器,用来自动化测试连接效果(为保证兼容性够高,所以单独弄出来) +- common:bytebuddy 等工具类存放 +- deserialize:反序列化相关 gadget - boot:使用 SpringBoot 为 UI 提供生成服务 - web:使用 react 开发的 Web UI -- deserialize:反序列化相关 gadget +- memshell:内存功能类以及注入器(为保证兼容性够高,所以单独弄出来) - generator:内存马生成核心 - integration-test:集成测试用例 - vul-webapp:简易的 javax.servlet 靶场 @@ -11,7 +15,7 @@ ### 编译 -整个项目需要使用 JDK17 进行编译运行,由于集成测试用例过多,请不要在本地执行构建命令时指定目标模块 +整个项目需要使用 JDK17 进行编译运行,由于集成测试用例过多,请不要在本地执行,使用构建命令时指定目标模块 ```bash # 编译 generator 模块 @@ -31,6 +35,31 @@ ./gradlew :vul-webapp-expression:war ``` +### SpringBoot + React 前端编译 + +UI 采用的 React SPA + SpringBoot,构建时需要先将 React 前端项目编译之后移动到 SpringBoot 中的 static 和 templates 中。 + +1. 前端构建 + ```bash + cd web + + # 下载 bun 命令行工具 + npm install -g bun + + # 下载依赖 + bun install + + # 打包 + bun run build + + # 将打包的静态资源文件移动到 SpringBoot 下 + bash copy-build.sh + ``` +2. 后端构建 + ```bash + ./gradlew :boot:bootjar + ``` + ### Contribute Something > 你对此项目的任何反馈以及 issue 交流都是对当前项目的贡献 diff --git a/README.md b/README.md index 6c038dd8..c599a513 100644 --- a/README.md +++ b/README.md @@ -12,8 +12,66 @@ > [!TIP] > [GitHub Actions](https://github.com/ReaJason/MemShellParty/actions) 最新一次构建会打印集成测试用例测试结果,可通过此来了解当前支持进度。 +> [!WARNING] +> 项目仍在快速迭代过程中(代码结构十分不稳定)...... + + ![screenshot](docs/screenshot.png) +## 适配情况 + +### JDK + +- [x] Java6 ~ Java8 +- [x] Java9 +- [x] Java11 +- [x] Java17 +- [x] Java21 + +### 内存马功能 + +- [x] 哥斯拉 +- [x] 冰蝎 +- [x] 命令执行 +- [ ] Suo5 +- [ ] Neo-reGeorg +- [ ] Custom + +### 封装方式 + +- [x] JSP +- [x] BCEL +- [x] BASE64 +- [x] 脚本引擎 +- [x] EL、SpEL、OGNL +- [x] Velocity、Freemarker +- [x] 原生反序列化(CB4) +- [ ] JNDI +- [ ] Agent +- [ ] JDBC 连接 +- [ ] 其他常见反序列化 + +### 中间件以及框架 + +| Tomcat(5 ~ 11) | Jetty(6 ~ 11) | GlassFish(3 ~ 7) | Payara(5 ~ 6) | Resin(3 ~ 4) | Netty | +|----------------|---------------|------------------|---------------|--------------|-------| +| Servlet | Servlet | Filter | Filter | Servlet | x | +| Filter | Filter | Listener | Listener | Filter | | +| Listener | Listener | Valve | Valve | Listener | | +| Valve | | | | | | + +| JBossAS(4 ~ 7) | JBossEAP(6 ~ 7) | WildFly(9 ~ 30) | Undertow | SpringMVC | SpringWebFlux | +|----------------|-----------------|-----------------|----------|-----------|---------------| +| Filter | Filter | Servlet | Servlet | x | x | +| Listener | Listener | Filter | Filter | | | +| | | Listener | Listener | | | + +| WebSphere(7 ~ 9) | WebLogic | 宝兰德 BES | 东方通 TongWeb | 中创 InforSuite AS | 金蝶 Apusic AS | +|------------------|----------|---------|-------------|------------------|--------------| +| Servlet | x | x | x | x | x | +| Filter | | | | | | +| Listener | | | | | | + ## Usage 使用 docker 部署之后访问 http://127.0.0.1:8080 @@ -32,7 +90,7 @@ docker run -it -d --name memshell -p 8080:8080 reajason/memshell-party > It will be so nice if you want to contribute. 🎉 -参考 [CONTRIBUTE.md](docs/CONTRIBUTE.md)。 +参考 [CONTRIBUTE.md](CONTRIBUTING.md)。 ## Thanks