giriaryan694-a11y/Ary_WebShell_PHP
GitHub: giriaryan694-a11y/Ary_WebShell_PHP
单文件PHP交互式终端Webshell,通过SSE和xterm.js在浏览器中提供免反弹shell的实时bash环境,专为授权CTF和安全研究设计。
Stars: 0 | Forks: 0
# Ary_WebShell_PHP
一个轻量级、单文件、基于浏览器的交互式终端 webshell,使用 PHP 编写。专为**授权的 CTF 竞赛**和**授权的安全研究**环境设计,适用于当你需要一个快速、免安装、无需反弹 shell 的 Web CLI 界面时——理念上类似于 Google Cloud Shell,但只需通过简单的文件上传即可部署。
## 目录
- [描述](#description)
- [功能](#features)
- [截图](#screenshots)
- [用法](#usage)
- [已知问题](#known-issues)
- [免责声明](#disclaimer)
## 描述
Ary_WebShell_PHP 在你的浏览器中提供了一个真正的交互式 bash shell,它使用 **Server-Sent Events (SSE)** 来流式传输来自持久化后端进程的输出。没有 WebSocket 服务器,没有额外的端口,也没有反弹 shell payload——只需通过文件上传方式上传 `ary_webshell.php` 并访问它即可。
终端前端由 **xterm.js** 和 **FitAddon** 提供支持,为你提供响应式、精准的终端体验,包括彩色输出、光标闪烁以及移动端工具栏支持。
### 工作原理
1. 将 `ary_webshell.php` 上传到目标 Web 服务器。
2. 访问 `http://target/ary_webshell.php`。
3. 点击 **New Session** 生成一个新的 bash shell。
4. 你将在浏览器中获得一个实时的 bash 提示符。输入命令、运行工具、进行内部网络渗透。
## 功能
| 功能 | 详情 |
|---------|--------|
| **单文件部署** | 所有一切(会话管理器、终端引擎、shell 桥接)都自包含在 `ary_webshell.php` 中 |
| **真正的交互式 shell** | 使用 `proc_open('/bin/bash -i')` 和 SSE 流式传输 |
| **多会话支持** | 像 Metasploit 一样生成多个独立的 shell——每个都有各自的 PID,可交互或终止 |
| **无需身份验证** | 无硬编码凭证;任何有权访问该文件的人都可以生成会话 |
| **无 IP 限制** | 无白名单拦截;可从任何 IP 运行 |
| **PTY 支持 (PHP 8.1+)** | 在可用时自动分配伪终端,使 `vim`、`nano`、`top` 等能正确渲染 |
| **管道回退** | 在较旧的 PHP 版本上优雅降级为管道模式 |
| **智能 Ctrl+C** | 当存在选中文本时进行复制;否则向 shell 发送 `SIGINT` |
| **移动端友好工具栏** | 提供用于 ESC、TAB、方向键、^C 的屏幕按钮,以及可切换的 CTRL 模式 |
| **无命令日志** | 不会向磁盘写入任何持久化命令日志 |
| **无外部依赖** | 只需要 PHP 和访问 CDN 以获取 xterm.js CSS/JS 的网络权限 |
## 截图
### 会话管理器
生成、交互并终止多个独立的 shell 会话。

### 登录页面
简洁的暗色主题界面。无需身份验证——只需点击 **New Session**。

### 终端演示
使用 xterm.js 在浏览器内进行实时的命令执行。

## 用法
### CTF / 文件上传场景
1. 在目标上识别文件上传漏洞。
2. 将 `ary_webshell.php` 上传到可访问 Web 的路径。
3. 在浏览器中访问该文件。
4. 点击 **New Session** 生成一个 shell。
5. 使用终端执行命令、枚举系统或向其他主机进行渗透。
6. 根据需要生成额外的会话(例如,一个用于监听器,一个用于枚举)。
7. 完成后,从管理器中终止会话。
### 工具栏按钮
| 按钮 | 动作 |
|--------|--------|
| **CTRL** | 切换屏幕上的 Ctrl 模式。接下来输入的字母将成为控制字符(例如,`c` → `^C`) |
| **ESC** | 发送 Escape 键 (`\x1b`) |
| **TAB** | 发送 Tab 键 (`\x09`) |
| **<< > ^ v** | 方向键 |
| **^C** | 直接发送 `Ctrl+C` / `SIGINT` |
### 快捷键
| 快捷键 | 行为 |
|----------|----------|
| `Ctrl + C` | **智能复制**:复制选中的文本;如果没有选中任何内容,则向 shell 发送中断信号 |
| `Ctrl + D` | 发送 EOF(如果提示符为空则退出 shell) |
| `Ctrl + Z` | 挂起前台进程 |
| `Backspace` | 删除前一个字符 |
## 已知问题
| 问题 | 变通方法 |
|-------|-----------|
| 浏览器会拦截 `Ctrl+T/W/N` | 使用屏幕上的工具栏按钮 |
| `Ctrl+C` 有时会进行复制而不是中断 | 点击 **^C** 工具栏按钮,或使用屏幕上的 **CTRL** + `c` |
| 移动端缩放 | 使用浏览器缩放或旋转设备;终端会自动重新适配 |
## 免责声明
**此工具仅供授权的安全测试、CTF 竞赛和教育目的使用。**
使用 Ary_WebShell_PHP,即表示你同意:
- 你拥有测试目标系统的**明确权限**。
- 你**不会**在你未拥有或未获授权测试的系统上使用此工具。
- 作者对因使用此软件而产生的滥用、损害或法律后果**不承担任何责任**。
- 本软件“按原样”提供,不提供任何形式的保证。
未经授权访问计算机系统是非法的,这包括美国的《计算机欺诈和滥用法案》(CFAA)及全球范围内的类似立法。请负责任地使用。
## 许可证
```
Copyright 2026 Aryan Giri | giriaryan694-a11y
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
```
标签:ffuf, OpenVAS, PHP, SSE, WebShell, xterm.js, 后门利用, 命令与控制, 安全测试, 攻击性安全, 数据可视化