Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2025-49132 PoC — Pterodactyl Panel Allows Unauthenticated Arbitrary Remote Code Execution

Source
Associated Vulnerability
Title:Pterodactyl Panel Allows Unauthenticated Arbitrary Remote Code Execution (CVE-2025-49132)
Description:Pterodactyl is a free, open-source game server management panel. Prior to version 1.11.11, using the /locales/locale.json with the locale and namespace query parameters, a malicious actor is able to execute arbitrary code without being authenticated. With the ability to execute arbitrary code it could be used to gain access to the Panel's server, read credentials from the Panel's config, extract sensitive information from the database, access files of servers managed by the panel, etc. This issue has been patched in version 1.11.11. There are no software workarounds for this vulnerability, but use of an external Web Application Firewall (WAF) could help mitigate this attack.
Description
CVE-2025-49132
Readme
# CVE-2025-49132 - Pterodactyl Panel 配置信息扫描工具

该工具用于扫描 Pterodactyl 面板实例,尝试获取其数据库配置信息。通过利用特定路径遍历漏洞,可以获取面板的敏感配置数据。

## 项目概述

本项目是一个高性能的HTTP请求工具,专门用于检测和收集暴露在公网的Pterodactyl面板实例的配置信息。它通过向目标服务器发送特定请求,检查响应中是否包含数据库配置信息,并将结果分类保存。

## 功能特性

### 主要功能
- **多模式执行**: 支持单线程、多线程和异步三种执行模式
- **智能分类**: 自动将结果分为"正确"(包含目标数据)和"错误"(不包含目标数据或请求失败)两类
- **自动保存**: 根据结果类型自动保存到不同目录
- **性能监控**: 实时显示执行进度和统计信息
- **代理支持**: 支持通过代理发送请求
- **错误重试**: 自动重试失败的请求
- **结果分析**: 自动分析响应数据中的数据库配置信息

### 技术特点
- 使用 `requests` 库进行HTTP请求
- 使用 `aiohttp` 实现异步请求支持
- 使用 `ThreadPoolExecutor` 实现多线程处理
- 支持JSON数据解析和分析
- 具有完善的错误处理机制

## 目录结构

```
.
├── main.py              # 主程序文件
├── url.txt              # 目标主机列表文件
├── json/                # 输出目录
│   ├── ✔️正确/           # 包含目标数据的结果保存目录
│   └── ❌错误/           # 错误或无效结果保存目录
└── README.md            # 项目说明文档
```

## 安装依赖

在运行程序前,需要安装所需的Python库:

```bash
pip install requests aiohttp urllib3
```

## 使用方法

### 基本用法

```bash
python main.py
```

默认会读取 `url.txt` 文件中的主机列表,并使用多线程模式进行处理。

### 命令行参数

```bash
python main.py [--file FILE] [--mode MODE] [--workers WORKERS]
```

参数说明:
- `-f, --file`: 指定主机列表文件路径(默认: url.txt)
- `-m, --mode`: 执行模式,可选值: threading(多线程), async(异步), single(单线程)(默认: threading)
- `-w, --workers`: 工作线程数(默认: 5)

### 示例

```bash
# 使用默认设置
python main.py

# 指定自定义主机文件
python main.py --file hosts.txt

# 使用异步模式处理
python main.py --mode async

# 使用单线程模式
python main.py --mode single

# 设置工作线程数为10
python main.py --workers 10
```

## 配置说明

在 `main.py` 文件中的 `Config` 类中可以修改以下配置:

- `PROXY`: 代理服务器地址(默认: http://127.0.0.1:7899)
- `TIMEOUT`: 请求超时时间(默认: 30秒)
- `MAX_RETRIES`: 最大重试次数(默认: 3次)
- `MAX_WORKERS`: 最大工作线程数(默认: 5)
- `USER_AGENT`: 请求User-Agent(默认: Mozilla/5.0 Windows AppleWebKit/537.36)

## 工作原理

1. 程序从指定文件中读取主机列表
2. 对每个主机发送HTTP GET请求到 `/locales/locale.json` 路径
3. 请求参数设置为:
   - `locale`: `../../../pterodactyl`
   - `namespace`: `config/database`
4. 分析响应数据,检查是否包含数据库配置信息
5. 根据结果类型将数据保存到对应目录:
   - 包含目标数据: `json/✔️正确/`
   - 不包含目标数据或请求失败: `json/❌错误/`
6. 实时显示执行进度和统计信息

## 输出格式

结果以JSON格式保存,包含以下信息:

- `success`: 请求是否成功
- `status_code`: HTTP状态码
- `response_time`: 响应时间
- `url`: 实际请求URL
- `headers`: 响应头信息
- `data`: 响应数据
- `size`: 响应大小
- `contains_target_data`: 是否包含目标数据
- `database_info`: 提取的数据库信息

## 注意事项

1. 请确保遵守相关法律法规,仅在授权环境下使用该工具
2. 使用前请修改代理配置以适应您的网络环境
3. 大量请求可能会对目标服务器造成压力,请合理设置线程数
4. 保存的结果可能包含敏感信息,请妥善保管

## 统计信息

程序执行完成后会显示详细统计信息:
- 总请求数
- 成功请求数
- 失败请求数
- 发现目标数据数
- 成功率
- 目标数据发现率
- 总执行时间
- 每秒请求数
File Snapshot

[4.0K] /data/pocs/3dfa35a86465a8fe82ccf68a62e77c52ce6c4192 ├── [ 11K] LICENSE ├── [ 19K] main.py ├── [4.3K] README.md └── [ 1] url.txt 1 directory, 4 files
Shenlong Bot has cached this for you
Remarks
    1. It is advised to access via the original source first.
    2. Local POC snapshots are reserved for subscribers — if the original source is unavailable, the local mirror is part of the paid plan.
    3. Mirroring, verifying, and maintaining this POC archive takes ongoing effort, so local snapshots are a paid feature. Your subscription keeps the archive online — thank you for the support. View subscription plans →