Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-34234-Lab — स्थानीय Docker प्रयोगशाला जो CtrlPanel वेब इंस्टॉलर में CVE-2026-34234 अप्रमाणित RCE का प्रदर्शन करती है। इसमें कमजोर और पैच किए गए कंटेनर, PoC स्क्रिप्ट और सुरक्षा अनुसंधान एवं रक्षात्मक सत्यापन के लिए मूल कारण विश्लेषण शामिल हैं। | Kitploit
उपकरण/GitHubGitHub/rootdirective-sec/cve-2026-34234-lab
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षालैब और अभ्यास
GitHubrootdirective-sec/cve-2026-34234-lab

CVE-2026-34234-Lab

स्थानीय Docker प्रयोगशाला जो CtrlPanel वेब इंस्टॉलर में CVE-2026-34234 अप्रमाणित RCE का प्रदर्शन करती है। इसमें कमजोर और पैच किए गए कंटेनर, PoC स्क्रिप्ट और सुरक्षा अनुसंधान एवं रक्षात्मक सत्यापन के लिए मूल कारण विश्लेषण शामिल हैं।

रिपॉजिटरी देखें
13 महीने पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2026-34234 - CtrlPanel इंस्टॉलर RCE लैब

CtrlPanel में CVE-2026-34234 प्रदर्शित करने के लिए स्थानीय Docker लैब।

यह रिपॉजिटरी तुलना करता है:

  • vuln: डाइजेस्ट द्वारा पिन किया गया CtrlPanel 1.1.1
  • patched: डाइजेस्ट द्वारा पिन किया गया CtrlPanel 1.2.0

लैब केवल स्थानीय है और सेवाओं को 127.0.0.1 से बांधता है।


सारांश

CVE-2026-34234, CtrlPanel के वेब इंस्टॉलर में एक अनप्रमाणित RCE है।

यह समस्या दो बगों के श्रृंखलाबद्ध होने के कारण होती है:

  1. install.lock गेट से पहले इंस्टॉलर फॉर्म हैंडलर सुलभ थे।
  2. इंस्टॉलर इनपुट को शेल कमांड स्ट्रिंग्स में अंतर्प्रक्षेपित किया गया था।

इस लैब में, कमजोर कंटेनर एक हानिरहित प्रूफ कमांड निष्पादित करता है और अपना आउटपुट कंटेनर के अंदर लिखता है। पैच किए गए कंटेनर को समान अनुरोध प्राप्त होता है लेकिन प्रूफ फ़ाइल नहीं बनाता है।

अपेक्षित परिणाम:

root@kitploit:~
vulnerable => proof file created patched => no proof file

मूल कारण

1. 1.1.1 में कमजोर शेल निष्पादन

मूल कमजोर फ़ाइल:

root@kitploit:~
public/installer/src/functions/shell.php

1.1.1 में प्रासंगिक अपस्ट्रीम कोड:

root@kitploit:~
function run_console(string $command, ...) {
    $path = dirname(__DIR__, 4);
    $handle = proc_open("cd '$path' && bash -c 'exec -a ServerCPP $command'", ...);
}

समस्या:

  • run_console() एक शेल कमांड स्ट्रिंग स्वीकार करता है।
  • वह स्ट्रिंग bash -c में पास की जाती है।
  • उपयोगकर्ता-नियंत्रित इंस्टॉलर मान उस कमांड स्ट्रिंग का हिस्सा बन सकते हैं।
  • शेल मेटाकैरेक्टर कमांड संरचना को बदल सकते हैं।

2. कमजोर इंस्टॉलर फॉर्म पथ

मूल कमजोर फ़ाइल:

root@kitploit:~
public/installer/src/forms/pterodactyl.php

1.1.1 में प्रासंगिक अपस्ट्रीम व्यवहार:

root@kitploit:~
run_console("php artisan settings:set 'PterodactylSettings' 'panel_url' '$url'", ...);
run_console("php artisan settings:set 'PterodactylSettings' 'admin_token' '$key'", ...);
run_console("php artisan settings:set 'PterodactylSettings' 'user_token' '$clientkey'", ...);

समस्या:

  • url, key, और clientkey इंस्टॉलर POST डेटा से उत्पन्न होते हैं।
  • मान शेल कमांड स्ट्रिंग्स में एम्बेड किए जाते हैं।
  • इंस्टॉलर एंडपॉइंट प्रमाणीकरण के बिना सुलभ है।

3. इंस्टॉलर गेट क्रम

सलाह में कहा गया है कि public/installer/index.php ने इंस्टॉलर फॉर्म लॉजिक को लोड/निष्पादित करने के बाद ही install.lock की जाँच की। इसने इंस्टॉलर हैंडलर को पहले से स्थापित इंस्टेंस पर भी सुलभ बना दिया।


पैच / फिक्स

1. प्रारंभिक इंस्टॉलर लॉक जांच

फिक्स install.lock जांच को फॉर्म हैंडलर लोड होने से पहले स्थानांतरित करता है।

पैच किया गया व्यवहार:

root@kitploit:~
if (file_exists('../../install.lock')) {
    exit("The installation has been completed already. Please delete the File 'install.lock' to re-run");
}

2. शेल स्ट्रिंग निष्पादन से बचें

मूल पैच फ़ाइल:

root@kitploit:~
public/installer/src/functions/shell.php

1.2.0 में प्रासंगिक अपस्ट्रीम कोड:

root@kitploit:~
function run_console(array $command, ...): string {
    $cwd = $cwd ?? $path;
    $handle = proc_open($command, $descriptors, $pipes, $cwd, null, $options);
}

यह समस्या को क्यों ठीक करता है:

  • run_console() अब argv-शैली सरणी स्वीकार करता है।
  • कमांड अब एकल शेल स्ट्रिंग के रूप में रचित नहीं है।
  • $() जैसा पेलोड सिंटैक्स शेल सिंटैक्स के बजाय शाब्दिक इनपुट बना रहता है।

1.2.0 में पैच किया गया फॉर्म व्यवहार array-शैली कमांड निष्पादन का उपयोग करता है:

root@kitploit:~
run_console(['php', 'artisan', 'settings:set', 'PterodactylSettings', 'panel_url', $url], ...);
run_console(['php', 'artisan', 'settings:set', 'PterodactylSettings', 'admin_token', $key], ...);
run_console(['php', 'artisan', 'settings:set', 'PterodactylSettings', 'user_token', $clientkey], ...);

लैब डिज़ाइन

root@kitploit:~
127.0.0.1:8081 -> vulnerable CtrlPanel 1.1.1
127.0.0.1:8082 -> patched CtrlPanel 1.2.0
127.0.0.1:9100 -> fake Pterodactyl API

सेवाएं:

  • vuln: वास्तविक CtrlPanel 1.1.1
  • patched: वास्तविक CtrlPanel 1.2.0
  • fake-api: केवल इंस्टॉलर जांच को संतुष्ट करने के लिए उपयोग किया जाने वाला स्थानीय नकली Pterodactyl API
  • mysql_vuln / mysql_patched: अलग-अलग MariaDB इंस्टेंस
  • redis_vuln / redis_patched: अलग-अलग Redis इंस्टेंस

लैब CtrlPanel एप्लिकेशन स्रोत कोड को संशोधित नहीं करता है।

Dockerfiles केवल मूल कंटेनर एंट्रीपॉइंट को लपेटते हैं ताकि निम्नलिखित के लिए Docker Desktop रनटाइम अनुमतियों को सामान्य किया जा सके:

root@kitploit:~
/var/www/html/storage
/var/www/html/bootstrap/cache

अनुमतियाँ ठीक करने के बाद, रैपर मूल उत्पाद एंट्रीपॉइंट निष्पादित करता है।


PoC डिज़ाइन

प्राथमिक PoC:

root@kitploit:~
poc/poc_http_only.py

गुण:

  • केवल HTTP POST भेजता है
  • docker exec का उपयोग नहीं करता है
  • कंटेनरों का निरीक्षण नहीं करता है
  • रिवर्स शेल शुरू नहीं करता है
  • केवल हानिरहित कमांड का उपयोग करता है: id, whoami, hostname

सहायक स्क्रिप्ट:

root@kitploit:~
poc/poc_lab.py

उद्देश्य:

  • समान HTTP अनुरोध भेजता है
  • docker compose exec का उपयोग करके कंटेनरों के अंदर प्रूफ सत्यापित करता है
  • केवल डेमो और रिग्रेशन परीक्षण के लिए अभिप्रेत है

एप कंटेनर के अंदर प्रूफ फ़ाइल:

root@kitploit:~
/var/www/html/storage/logs/cve_2026_34234_proof.txt

चलाएं

स्वच्छ लैब स्थिति से शुरू करें:

root@kitploit:~
docker compose down -v --remove-orphans
docker compose up -d --build

एप कंटेनरों के ऊपर आने तक प्रतीक्षा करें, फिर चलाएं:

root@kitploit:~
python3 poc/poc_lab.py

अपेक्षित आउटपुट:

root@kitploit:~
== Testing vulnerable ==
proof_exists: True
result: PASS expected_proof=True

== Testing patched ==
proof_exists: False
result: PASS expected_proof=False

[+] Expected result reached:
    vulnerable => proof file created
    patched    => no proof file

मैनुअल HTTP-केवल परीक्षण

कमजोर लक्ष्य पर HTTP-केवल PoC भेजें:

root@kitploit:~
python3 poc/poc_http_only.py --target http://127.0.0.1:8081

प्रूफ मैन्युअल रूप से सत्यापित करें:

root@kitploit:~
docker compose exec vuln sh -lc 'cat /var/www/html/storage/logs/cve_2026_34234_proof.txt'

अपेक्षित प्रूफ:

root@kitploit:~
uid=1000(laravel) gid=1000(laravel) groups=1000(laravel)
laravel
<container-hostname>

पैच किए गए के विरुद्ध समान अनुरोध चलाएं:

root@kitploit:~
python3 poc/poc_http_only.py --target http://127.0.0.1:8082

पैच किए गए व्यवहार को सत्यापित करें:

root@kitploit:~
docker compose exec patched sh -lc 'test -f /var/www/html/storage/logs/cve_2026_34234_proof.txt && cat /var/www/html/storage/logs/cve_2026_34234_proof.txt || echo "no proof file"'

अपेक्षित:

root@kitploit:~
no proof file

सफाई

कंटेनर, नेटवर्क और लैब वॉल्यूम हटाएं:

root@kitploit:~
docker compose down -v

नोट्स

  • यह लैब केवल स्थानीय सुरक्षा अनुसंधान के लिए है।
  • PoC को उन सिस्टमों के विरुद्ध न चलाएं जिनके आप मालिक नहीं हैं या जिनका परीक्षण करने की आपके पास अनुमति नहीं है।
  • प्रूफ जानबूझकर कंटेनर के अंदर स्थानीय कमांड आउटपुट तक सीमित है।
  • कमजोर और पैच की गई सेवाएं अलग-अलग डेटाबेस और Redis इंस्टेंस का उपयोग करती हैं।
  • नकली API केवल इंस्टॉलर प्रवाह के लिए आवश्यक न्यूनतम Pterodactyl API प्रतिक्रियाओं का अनुकरण करने के लिए मौजूद है।

अस्वीकरण

यह रिपॉजिटरी केवल शैक्षिक सुरक्षा अनुसंधान और रक्षात्मक सत्यापन के लिए प्रदान की गई है।

सभी प्रदर्शन प्रदान किए गए स्थानीय Docker लैब वातावरण में चलाने के लिए अभिप्रेत हैं। प्रूफ-ऑफ-कॉन्सेप्ट विनाशकारी कार्यों, स्थिरता, क्रेडेंशियल चोरी, डेटा बाहर निकालने और वास्तविक दुनिया के लक्ष्यीकरण से बचता है।

इस प्रोजेक्ट का उपयोग स्पष्ट प्राधिकरण के बिना किसी भी सिस्टम के विरुद्ध न करें। लेखक इस सामग्री से उत्पन्न दुरुपयोग या क्षति के लिए जिम्मेदार नहीं है।


संदर्भ

  • GitHub सुरक्षा सलाह: https://github.com/Ctrlpanel-gg/panel/security/advisories/GHSA-jmhr-q9q5-fqwh
  • CVE रिकॉर्ड / NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-34234
  • पैच रिलीज़: https://github.com/Ctrlpanel-gg/panel/releases/tag/1.2.0
  • अपस्ट्रीम रिपॉजिटरी: https://github.com/Ctrlpanel-gg/panel
टूल डाउनलोड करें