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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2018-1000533 — प्रूफ-ऑफ-कॉन्सेप्ट शोषण CVE-2018-1000533 के लिए, GitList 0.6.0 में खोज फ़ंक्शन में अस्वच्छ इनपुट के माध्यम से एक दूरस्थ कोड निष्पादन भेद्यता, जो मनमाना कमांड निष्पादन की अनुमति देता है। | Kitploit
उपकरण/GitHubGitHub/dddo0/cve-2018-1000533
भेद्यता विश्लेषणकोड विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंग
GitHubdddo0/cve-2018-1000533

CVE-2018-1000533

प्रूफ-ऑफ-कॉन्सेप्ट शोषण CVE-2018-1000533 के लिए, GitList 0.6.0 में खोज फ़ंक्शन में अस्वच्छ इनपुट के माध्यम से एक दूरस्थ कोड निष्पादन भेद्यता, जो मनमाना कमांड निष्पादन की अनुमति देता है।

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

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

सभी देखें →

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

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

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

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

GitList 0.6.0 रिमोट कोड निष्पादन भेद्यता (CVE-2018-1000533)

GitList एक आधुनिक Git रिपॉजिटरी व्यूअर है।

GitList 0.6.0 और उससे निचले संस्करणों में, सिस्टम फ़ंक्शन को अनुचित रूप से सत्यापित इनपुट पास करने की एक भेद्यता मौजूद है, जिससे PHP उपयोगकर्ता के अधिकारों से मनमाना कमांड निष्पादित किया जा सकता है।

पर्यावरण सेटअप

GitList सर्वर 0.6.0 शुरू करने के लिए निम्न कमांड चलाएँ।

root@kitploit:~
docker compose up -d

poc.py चलाने से पहले निर्भरताएँ स्थापित करें।

root@kitploit:~
pip install requests

पर्यावरण सेटअप पूरा होने पर, http://127.0.0.1:8080 पर जाएँ और जाँचें कि example नामक परीक्षण रिपॉजिटरी मौजूद है।

भेद्यता का सिद्धांत

GitList रिपॉजिटरी में कोड खोजने के लिए git grep का उपयोग करता है।

root@kitploit:~
public function searchTree($query, $branch)
{
    if (empty($query)) {
        return null;
    }

    $query = escapeshellarg($query);

    try {
        $results = $this->getClient()->run($this, "grep -i --line-number {$query} $branch");
    } catch (\RuntimeException $e) {
        return false;
    }

यहाँ $query खोज कीवर्ड है, और $branch खोज लक्ष्य शाखा है।

यदि हमलावर खोज शब्द के रूप में --open-files-in-pager=id; पास करता है, तो सिस्टम पर id कमांड निष्पादित हो जाता है।

यह भेद्यता दो कारणों से उत्पन्न होती है :

  1. escapeshellarg() फ़ंक्शन की सीमा

सैद्धांतिक रूप से, $query = escapeshellarg($query); कोड के बाद, इनपुट मान एकल उद्धरणों में संलग्न स्ट्रिंग बन जाता है। लेकिन escapeshellarg() शेल के दृष्टिकोण से इंजेक्शन को रोकता है, लेकिन git के स्वयं के विकल्प पार्सर को -- से शुरू होने वाली स्ट्रिंग को विकल्प के रूप में व्याख्या करने से नहीं रोकता।

  1. --open-files-in-pager विकल्प की विशेषता

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

भेद्यता की शर्तें

  • GitList 0.6.0 संस्करण चल रहा होना चाहिए।
  • POST अनुरोध में उपयोग किए जाने वाले URL ([repo_name]/tree/[keyword]/search) में दो तर्क [repo_name] और [keyword] होते हैं।
  • [repo_name] GitList में मौजूद एक रिपॉजिटरी होना चाहिए, और [keyword] एक खोज कीवर्ड होना चाहिए जो कम से कम एक खोज परिणाम उत्पन्न करता है। (इस पुनरुत्पादन में, रिपॉजिटरी के रूप में example और कीवर्ड के रूप में a का उपयोग किया गया।)

पुनरुत्पादन प्रक्रिया

निम्न कमांड के माध्यम से poc.py चलाएँ।

इस स्क्रिप्ट के माध्यम से touch /tmp/success_dddo0 निष्पादित होता है और सर्वर की /tmp निर्देशिका में success_dddo0 नामक एक खाली फ़ाइल बनाई जाती है।

root@kitploit:~
python3 poc.py http://127.0.0.1:8080

अनुरोध भेजने के बाद, निम्न कमांड से जाँचें कि success_dddo0 सफलतापूर्वक बनाया गया है।

root@kitploit:~
docker compose exec web ls -l /tmp/success_dddo0

निष्पादन परिणाम

PoC चलाने के बाद, सर्वर के अंदर एक मनमाना सिस्टम कमांड (touch /tmp/success_dddo0) सफलतापूर्वक निष्पादित हुआ और फ़ाइल बनाई गई, इसकी पुष्टि की जा सकती है।

1.png

पर्यावरण समाप्त करें

root@kitploit:~
docker compose down

शमन उपाय

GitList संस्करण को नवीनतम संस्करण में अपडेट किया जाना चाहिए।

कोड संशोधन:

root@kitploit:~
public function searchTree($query, $branch)
{
    if (empty($query)) {
        return null;
    }
    $query = preg_replace('/(--?[A-Za-z0-9\-]+)/', '', $query);
    $query = escapeshellarg($query);
    try {
        $results = $this->getClient()->run($this, "grep -i --line-number -- {$query} $branch");
    } catch (\RuntimeException $e) {
        return false;
    }

GitList में, रेगुलर एक्सप्रेशन का उपयोग करके खोज क्वेरी ($query) से अवैध - उपसर्ग हटा दिए गए, और git grep कमांड में -- (विकल्पों के अंत का संकेत) जोड़ा गया ताकि उसके बाद आने वाले सभी इनपुट मानों को कमांड विकल्प के रूप में नहीं, बल्कि केवल सामान्य स्ट्रिंग (खोज शब्द) के रूप में माना जाए, जिससे इस भेद्यता को ठीक किया गया।

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