Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
PIL-CVE-2017-8291-study — शैक्षिक प्रयोगशाला जो CVE-2017-8291 (PIL/GhostScript RCE) को PNG एक्सटेंशन के साथ क्राफ्टेड EPS फ़ाइल अपलोड के माध्यम से प्रदर्शित करती है, जिसमें Docker सेटअप और PoC निष्पादन शामिल है। | Kitploit
उपकरण/GitHubGitHub/shun1403/pil-cve-2017-8291-study
भेद्यता विश्लेषणकोड विश्लेषणशोषणवेब एप्लिकेशन शोषणलर्निंग और शिक्षालैब और अभ्यास
GitHubshun1403/pil-cve-2017-8291-study

PIL-CVE-2017-8291-study

शैक्षिक प्रयोगशाला जो CVE-2017-8291 (PIL/GhostScript RCE) को PNG एक्सटेंशन के साथ क्राफ्टेड EPS फ़ाइल अपलोड के माध्यम से प्रदर्शित करती है, जिसमें Docker सेटअप और PoC निष्पादन शामिल है।

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

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

सभी देखें →

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

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

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

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

PIL-CVE-2017-8291

  • व्हाइट हैट स्कूल तृतीय बैच, कक्षा 13, 백승훈 (@shun1403) https://github.com/shun1403/PIL-CVE-2017-8291.git
  • पर्यावरण : उबंटू लिनक्स

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

  • sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin के माध्यम से V2 में अपग्रेड करें
  • निष्पादन में त्रुटि होने पर निम्नलिखित कमांड्स से docker को रीसेट करें
  • sudo apt remove docker docker-engine docker.io containerd runc -y
  • sudo apt update
  • sudo apt install -y ca-certificates curl gnupg lsb-release
  • sudo mkdir -p /etc/apt/keyrings
  • curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  • echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • sudo apt update
  • sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • docker compose version
  • संस्करण जाँचने पर, यदि यह सफलतापूर्वक प्रदर्शित हो जाए तो ठीक है

git clone

git clone https://github.com/vulhub/vulhub.git

  • क्लोन करने के बाद, जिस कमज़ोरी का अभ्यास करना है उसके पथ में प्रवेश करें

  • यहाँ /vulhub/python/PIL-CVE-2017-8291

  • निम्न yml फ़ाइल का संदर्भ लेते हुए अभ्यास करें

  • docker compose up -d : कंटेनर बनाने और बैकग्राउंड में चलाने का कमांड

  • उसके बाद localhost:8000/ पर जाकर फ़ाइल अपलोड करने योग्य वेब पेज की पुष्टि करें image

  • उसी पथ में स्थित संशोधित poc.png अपलोड करें

  • अपलोड करने पर निम्न प्रकार का परिणाम देखा जा सकता है

  • image

  • सामान्य कार्यक्षमता में, png फ़ाइल अपलोड करने के बाद छवि की चौड़ाई और ऊँचाई प्रदर्शित होती है। हालाँकि, चूँकि बैकएंड फ़ाइल हेडर के आधार पर छवि प्रकार का वर्गीकरण करता है, एक्सटेंशन को अनदेखा करते हुए, निष्पादन योग्य कमांड वाली EPS फ़ाइल को PNG एक्सटेंशन में बदलकर अपलोड किया जा सकता है

  • इसका उपयोग करके, poc.png अपलोड करते समय 'tocuh /tmp/aaaaa' कमांड निष्पादित करना संभव हो जाएगा, और POC फ़ाइल के भीतर के कमांड को रिवर्स शेल कमांड में बदलने पर शेल प्राप्त किया जा सकता है

  • उस फ़ाइल को अपलोड करने के बाद, docker में प्रवेश कर /tmp पर जाकर देखने पर कमांड द्वारा aaaaa फ़ाइल निर्मित होने की पुष्टि की जा सकती है

command = ["gs",
            "-q",                         # 조용한 모드(출력 최소화)
            "-g%dx%d" % size,             # 출력 이미지 크기 설정 (픽셀 단위)
            "-r%fx%f" % res,              # 입력 이미지 해상도(DPI) 설정
            "-dBATCH",                    # 작업 완료 후 자동 종료
            "-dNOPAUSE",                  # 페이지 간 일시 정지 없이 연속 실행
            "-dSAFER",                    # 안전 모드 활성화
            "-sDEVICE=ppmraw",             # 출력 디바이스를 ppmraw로 설정
            "-sOutputFile=%s" % outfile,   # 출력 파일 경로 지정
            "-c", "%d %d translate" % (-bbox[0], -bbox[1]), 
                                            # 이미지 원점을 보정 (이동)
            "-f", infile,                  # 입력 파일 지정
          ]

GhostScript स्थापना जाँच कोड छोड़ दिया गया

try:
    with open(os.devnull, 'w+b') as devnull:
        subprocess.check_call(command, stdin=devnull, stdout=devnull)
    im = Image.open(outfile)

परिणाम

image

निष्कर्ष

यह कमज़ोरी Python Imaging Library (PIL) में उत्पन्न हुई है और CVE-2017-8291 को लक्षित करती है। यह कमज़ोरी PIL की उस विशेषता के कारण उत्पन्न होती है जिसमें यह फ़ाइल एक्सटेंशन के आधार पर नहीं, बल्कि फ़ाइल हेडर के आधार पर छवि प्रकार का निर्धारण करती है। इसके माध्यम से, वास्तव में EPS प्रारूप की फ़ाइल होने के बावजूद, केवल एक्सटेंशन को PNG में बदलकर अपलोड करने पर, सर्वर पक्ष पर GhostScript के कॉल होते समय फ़ाइल में डाले गए मनमाने कमांड निष्पादित हो सकते हैं — इस समस्या की पुष्टि की जा सकी।

परियोजना के दौरान, संशोधित poc.png फ़ाइल अपलोड करके सर्वर के अंदर /tmp/aaaaa फ़ाइल के निर्माण की पुष्टि करके यह दोहराया गया कि यह कमज़ोरी वास्तव में कमांड निष्पादन (RCE, Remote Code Execution) का रूप ले सकती है। साथ ही, यह भी देखा जा सकता है कि यह कमज़ोरी मूल रूप से इच्छित छवि प्रसंस्करण कार्यक्षमता का दुरुपयोग करके रिवर्स शेल जैसे उन्नत हमलों तक विस्तारित होने की संभावना रखती है।

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