neko205-mx/O.B.J_Mirage
GitHub: neko205-mx/O.B.J_Mirage
基于 Vercel serverless 架构的多语言 Webshell 管理器,兼容冰蝎协议,支持 PHP 与 JSP 目标的远程命令执行与文件管理。
Stars: 2 | Forks: 0
# O.B.J_Mirage

仅用于授权安全研究 / 教学演示。请勿用于未授权目标。
O.B.J_Mirage 是针对公共服务滥用课题实现的第二个 demo
## 架构
```
浏览器 ──HTTPS──> Vercel
│
├─ 静态资源: frontend/dist
├─ /api/* → Auth + Runtime + Artifact + Parser
│ │
│ └─ fetch() ──> PHP / JSP 目标
│
└─ Upstash Redis (shell 列表 / 历史)
```
| Runtime | Parser | 当前能力 |
|---------|--------|----------|
| PHP | Eval POST / Eval GET / Behinder Classic / 信鸽 AES | 基础信息、探测、命令、文件、MySQL、隧道、disable_functions bypass |
| JSP / Java | JSP Class POST / JSP Behinder Classic | 基础信息、深度探测、命令、文件、JDBC MySQL/MariaDB、Java Socket 反向 Shell |
## 部署步骤
### 1. 安装依赖
```
npm ci
npm --prefix frontend ci
```
本项目要求 Node.js 20 或更高版本。需要更新依赖时才使用 `npm install`,并一并提交变更后的锁文件。
### 2. 设置环境变量
本地开发用环境变量:
```
export AUTH_PASSWORD=your_password
export AUTH_TOKEN_SECRET=replace_with_a_random_long_string
export SESSION_TTL=86400 # 可选,默认 24h
export UPSTASH_REDIS_REST_URL=...
export UPSTASH_REDIS_REST_TOKEN=...
```
线上部署在 Vercel Project Settings -> Environment Variables 中配置。
### 3. 本地启动
```
npm run dev # 后端 :8000
npm run frontend:dev # 前端 :5173
```
### 4. JSP Runtime
JSP payload 源码使用 Java 8 编译,生成的 class 已提交到仓库,因此构建不需要 JDK。修改 `payload-src/jsp/WsmPayload.java` 后需要重新生成 class:
```
npm run payload:jsp
npm run test:jsp-payload
```
测试
```
npm run test:jsp-endpoint -- https://target.example/wsm-loader.jsp your_password
```
连接冰蝎马选择 `JSP Behinder Classic`,连接密钥填 16 字节 key
测试
```
npm run test:jsp-endpoint -- \
https://target.example/behinder-classic.jsp \
sixteen-byte-key \
behinder
```
### 5. 部署到 Vercel
fork 后自行部署,需要注意配置环境变量
https://vercel.com/new
AUTH_PASSWORD / AUTH_PASSWORD_HASH
AUTH_TOKEN_SECRET
UPSTASH_REDIS_REST_URL
UPSTASH_REDIS_REST_TOKEN
## API 概览
| 方法 | 路径 | 说明 |
|------|------|------|
| POST | `/api/auth/login` | `{password}` → `{token}` |
| GET | `/api/shells` | 列出 shell |
| POST | `/api/shells` | 新建 shell |
| GET | `/api/shells/:id` | 详情 |
| PUT | `/api/shells/:id` | 更新 |
| DELETE | `/api/shells/:id` | 删除 |
| POST | `/api/shells/:id/exec` | `{payload, args}` → 结果 |
| GET | `/api/shells/:id/history` | 命令历史 |
| GET | `/api/payloads` | payload 清单 |


标签:GNU通用公共许可证, MITM代理, Node.js, OSV, PE 加载器, Serverless, Vercel, Webshell管理器, 自动化攻击