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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/daniilorchikov/pil-cve-2017-8291
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणलर्निंग और शिक्षाबाइनरी शोषणलैब और अभ्यास
GitHubdaniilorchikov/pil-cve-2017-8291

PIL-CVE-2017-8291

CVE-2017-8291 (GhostButt) के लिए शैक्षिक PoC जो GhostScript सैंडबॉक्स बाईपास के साथ Python PIL/Pillow EPS छवि प्रसंस्करण के माध्यम से दूरस्थ कमांड निष्पादन को प्रदर्शित करता है।

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

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

सभी देखें →

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

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

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

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

Python PIL/Pillow रिमोट कमांड निष्पादन (GhostButt / CVE-2017-8291)

中文版本 (चीनी संस्करण)

Python PIL (Pillow) Python के लिए एक लोकप्रिय इमेज प्रोसेसिंग लाइब्रेरी है। यह विभिन्न इमेज फॉर्मेट का समर्थन करती है और शक्तिशाली इमेज मैनिपुलेशन क्षमताएँ प्रदान करती है।

Python इमेज प्रोसेसिंग मॉड्यूल PIL (Pillow) GhostButt भेद्यता (CVE-2017-8291) से प्रभावित है, क्योंकि यह EPS इमेज को प्रोसेस करने के लिए आंतरिक रूप से GhostScript को कॉल करता है। यह भेद्यता हमलावरों को लक्षित सिस्टम पर मनमाने कमांड निष्पादित करने की अनुमति देती है।

जब PIL किसी इमेज को प्रोसेस करता है, तो यह फ़ाइल हेडर (Magic Bytes) के आधार पर इमेज प्रकार का निर्धारण करता है। यदि यह एक EPS फ़ाइल की पहचान करता है (हेडर %!PS से शुरू होता है), तो यह फ़ाइल को प्रोसेसिंग के लिए PIL/EpsImagePlugin.py को सौंप देता है।

इस मॉड्यूल में, PIL इमेज फ़ाइल को प्रोसेस करने के लिए सिस्टम के GhostScript कमांड (gs) को कॉल करता है:

root@kitploit:~
command = ["gs",
            "-q",                         # quiet mode
            "-g%dx%d" % size,             # set output geometry (pixels)
            "-r%fx%f" % res,              # set input DPI (dots per inch)
            "-dBATCH",                    # exit after processing
            "-dNOPAUSE",                  # don't pause between pages,
            "-dSAFER",                    # safe mode
            "-sDEVICE=ppmraw",            # ppm driver
            "-sOutputFile=%s" % outfile,  # output file
            "-c", "%d %d translate" % (-bbox[0], -bbox[1]),
                                            # adjust for image origin
            "-f", infile,                 # input file
            ]

# Code to check if GhostScript is installed is omitted
try:
    with open(os.devnull, 'w+b') as devnull:
        subprocess.check_call(command, stdin=devnull, stdout=devnull)
    im = Image.open(outfile)

हालाँकि -dSAFER फ़्लैग सेट किया गया है (सुरक्षित मोड), GhostScript में एक सैंडबॉक्स बायपास भेद्यता (GhostButt CVE-2017-8291) इस सुरक्षा तंत्र को बायपास करने की अनुमति देती है, जिससे मनमाना कमांड निष्पादन संभव हो जाता है।

इस लेखन के समय, नवीनतम आधिकारिक GhostScript संस्करण 9.21 भी इस भेद्यता से प्रभावित है। इसलिए, जब तक ऑपरेटिंग सिस्टम पर GhostScript स्थापित है, PIL कमांड निष्पादन के प्रति संवेदनशील है।

संदर्भ:

  • Python PIL मॉड्यूल कमांड निष्पादन भेद्यता का शोषण
  • CVE-2017-8291 विवरण
  • GhostScript सुरक्षा सलाह

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

CVE-2017-8291 भेद्यता के प्रति संवेदनशील वेब एप्लिकेशन शुरू करने के लिए निम्न कमांड निष्पादित करें:

root@kitploit:~
docker compose up -d

शुरू करने के बाद, अपलोड पेज तक पहुँचने के लिए http://your-ip:8000/ पर जाएँ।

भेद्यता का शोषण

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

उदाहरण के लिए, हम poc.png अपलोड कर सकते हैं, जो सर्वर पर touch /tmp/aaaaa कमांड निष्पादित करेगा। POC में कमांड को रिवर्स शेल कमांड में संशोधित करके, हम सर्वर तक शेल एक्सेस प्राप्त कर सकते हैं:

भेद्यता का शोषण

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