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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
spip-cve-2026 — SPIP में CVE-2026-72708 (ब्लाइंड SQLi) और CVE-2026-109378 (SSRF) के लिए PoC, दोनों 4.4.18 में ठीक किए गए | Kitploit
उपकरण/GitHubGitHub/ka3n1x/spip-cve-2026
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगलैब और अभ्यास
GitHubka3n1x/spip-cve-2026

spip-cve-2026

SPIP में CVE-2026-72708 (ब्लाइंड SQLi) और CVE-2026-109378 (SSRF) के लिए PoC, दोनों 4.4.18 में ठीक किए गए

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

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

सभी देखें →

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

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

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

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

SPIP 4.4.16 - CVE-2026-72708 और CVE-2026-109378

दो कमज़ोरियों के लिए पुनरुत्पादनीय प्रूफ़ ऑफ़ कॉन्सेप्ट सामग्री जिन्हें मैंने SPIP में रिपोर्ट किया था, दोनों 4.4.18 में ठीक की गईं।

CVEवर्गप्रमाणीकरणCVSS 4.0सिंक
CVE-2026-72708ब्लाइंड SQL इंजेक्शन (CWE-89)कोई नहीं8.7 उच्चecrire/req/mysql.php:1730
CVE-2026-109378HTTP रीडायरेक्ट के माध्यम से SSRF (CWE-918)निम्न5.3 मध्यमecrire/inc/distant.php:567-582

दोनों को 2026-08-05 को [email protected] पर रिपोर्ट किया गया था। SPIP ने 2026-08-10 को 4.4.18 में समाधान जारी किया। यह सामग्री पैच के बाद प्रकाशित की गई है, और इसे प्रकाशित करने का पूरा उद्देश्य यही है।

यहाँ सब कुछ 127.0.0.1 पर बाउंड एक डिस्पोज़ेबल स्थानीय लैब के विरुद्ध चलता है। इसे किसी ऐसे होस्ट पर न लक्षित करें जो आपका न हो।


CVE-2026-72708 - अनप्रमाणित ब्लाइंड SQL इंजेक्शन

spip_mysql_cite() एक मान बिना कोट्स के लौटाता है जब गंतव्य कॉलम डेट प्रकार का हो और मान /^\w+\(/ से मेल खाता हो:

} elseif (sql_test_date($type) and preg_match('/^\w+\(/', $v)) {
    return $v;
}

regex का उद्देश्य NOW() को स्ट्रिंग के बजाय फ़ंक्शन कॉल के रूप में गुज़रने देना था। यह फ़ंक्शन कॉल के आकार की जाँच करता है, उसके नाम की नहीं, इसलिए SLEEP(5), IF(...) और UPDATEXML(...) भी इसे संतुष्ट करते हैं।

पहुँचने योग्य सिंक squelettes-dist/sitemap.xml.html का {annee?} मानदंड है, जो हर इंस्टॉल के साथ आता है और एक datetime कॉलम से तुलना करता है। sitemap सार्वजनिक है, इसलिए किसी खाते की आवश्यकता नहीं है:

GET /spip.php?page=sitemap.xml&annee=IF(1,SLEEP(5),0)

इसे चलाएँ:

bash CVE-2026-72708-sqli/poc_sqli.sh

स्क्रिप्ट सिंक को सिद्ध करती है, SLEEP() आर्ग्युमेंट को ट्रैक करने वाली देरी दिखाती है, फिर एक शुद्ध टाइमिंग ऑरेकल के माध्यम से एडमिन पासवर्ड हैश के पहले बारह अक्षर पुनः प्राप्त करती है और परिणाम को डेटाबेस के विरुद्ध जाँचती है।

दो चीज़ें जो आपका समय बर्बाद करेंगी

  • एक खाली SPIP पैच किया हुआ लगता है। इंजेक्ट किया गया SLEEP() एक WHERE क्लॉज़ में रहता है, जिसे MySQL प्रति पंक्ति मूल्यांकित करता है। शून्य आर्टिकल के साथ यह कभी सक्रिय नहीं होता। lab/seed.sh एक प्रकाशित आर्टिकल डालता है।
  • SPIP सार्वजनिक पेजों को URL के आधार पर कैश करता है। एक समान अनुरोध दोहराने पर कैश किया गया पेज तुरंत लौट आता है और देरी गायब हो जाती है। हर पुनरावृत्ति में एक बदलता हुआ डमी पैरामीटर (&z=<random>) जोड़ें। स्क्रिप्ट पहले से ही ऐसा करती है।

CVE-2026-109378 - HTTP रीडायरेक्ट के माध्यम से SSRF

SPIP में वास्तव में एक अच्छा SSRF गार्ड है, valider_url_distante(): स्कीम व्हाइटलिस्ट, निजी और आरक्षित रेंज, लिंक-लोकल, DNS रीबाइंडिंग, क्रेडेंशियल URLs। कॉलर इसे फ़ेच करने से पहले चलाते हैं।

recuperer_url() फिर दस रीडायरेक्ट तक फ़ॉलो करता है, और जिस लक्ष्य को वह फ़ेच करने वाला है उसे कभी पुनः मान्य नहीं करता:

$url = suivre_lien($url, $res['location']);   // 571, attacker controlled
// ... method adjustment, a log line ...
return recuperer_url($url, $options);          // 582, fetched

एक मेज़बान से आया 302 जो सत्यापन पास कर लेता है, सीधे उसी चीज़ में चला जाता है जिसे रोकने के लिए गार्ड बनाया गया था, 169.254.169.254 भी शामिल है।

इसे चलाएँ:

docker exec -w /var/www/html spiplab-app php /tmp/poc_ssrf.php

स्क्रिप्ट दिखाती है कि गार्ड सात शत्रुतापूर्ण URL को सही ढंग से अस्वीकार करता है, फिर उन्हीं में से एक URL को रीडायरेक्ट के माध्यम से फ़ेच करता है और सामग्री वापस प्रिंट करता है।


प्रयोगशाला

cd lab
docker compose up -d        # SPIP 4.4.16 + MariaDB, bound to 127.0.0.1:8888
sleep 40                    # auto install
bash seed.sh                # one published article, clears the page cache

डेटाबेस का कोई होस्ट पोर्ट नहीं है। वेब कंटेनर केवल लूपबैक पर सुनता है। इसे docker compose down -v से हटा दें।

SSRF पथ का परीक्षण करने के लिए आपको स्टैंड-इन रीडायरेक्टर और एक केवल-आंतरिक सेवा की भी आवश्यकता होगी:

docker cp redir.php spiplab-app:/var/www/html/redir.php
docker exec spiplab-app sh -c 'mkdir -p /tmp/internal && \
  echo "INTERNAL-SERVICE-SECRET-7f3a9c2e" > /tmp/internal/secret.txt && \
  (setsid nohup php -S 0.0.0.0:9001 -t /tmp/internal >/tmp/internal/srv.log 2>&1 &)'

redir.php केवल ?to= में जो भी हो उसके लिए 302 उत्सर्जित करता है। वास्तविक हमले में वह भूमिका एक सार्वजनिक होस्ट निभाता है जिसे गार्ड अनुमति देने में प्रसन्न होता है।


हाथ से पुनः चलाना

प्रत्येक निर्देशिका में requests/ में उपरोक्त रन के दौरान वायर से कैप्चर किए गए कच्चे HTTP आदान-प्रदान होते हैं, प्रत्येक चरण के लिए एक .req और एक .res। किसी .req को जैसा है वैसा ही Burp Repeater में पेस्ट करें।

SQLi के लिए, दिलचस्प जोड़ी sqli-03-oracle-true (2.051 s) बनाम sqli-04-oracle-false (0.049 s) है: वही प्रश्न, थ्रेशोल्ड एक से बदला गया, और उत्तर प्रतिक्रिया समय में अंतर है। बॉडी समान हैं।

SSRF के लिए, ssrf-02-internal-hits.log आंतरिक सेवा का एक्सेस लॉग है, जो दर्शाता है कि SPIP उस होस्ट पर पहुँच रहा है जिसे उसने अभी-अभी हल करने से मना किया था।


सुधार

SQL इंजेक्शन, ढीले regex को whitelist से बदलें:

} elseif (sql_test_date($type) and preg_match(
    '/^(NOW|CURDATE|CURTIME|CURRENT_TIMESTAMP|CURRENT_DATE|CURRENT_TIME|UTC_DATE|UTC_TIME|UTC_TIMESTAMP)\s*\(\s*\)$/i',
    $v
)) {

ecrire/req/sqlite_generique.php पर वही परिवर्तन लागू करें।

SSRF, रीडायरेक्ट लक्ष्य का पालन करने से पहले उसे सत्यापित करें:

$url = suivre_lien($url, $res['location']);

if (!valider_url_distante($url)) {
    spip_log("SSRF: blocked redirect to $url", 'distant' . _LOG_ERREUR);
    return false;
}

return recuperer_url($url, $options);

या सीधे 4.4.18 पर अपग्रेड करें, जिसमें दोनों शामिल हैं।


श्रेय

CVE-2026-72708 को स्वतंत्र रूप से Lexfo / Ambionics के Franck Chevalier (Wayko) द्वारा सह-खोजा गया था, जिन्होंने वही sink, वही unauthenticated entry point खोजा, और CVE-2026-72709 और CVE-2026-72710 के माध्यम से remote code execution तक की पूरी chains बनाईं। उनका writeup अधिक गहन तकनीकी दस्तावेज़ है और उनका tooling ambionics/spip-exploits पर है।

CVE-2026-109378 अकेले रिपोर्ट किया गया था।

संदर्भ

  • NVD CVE-2026-72708
  • NVD CVE-2026-109378
  • SPIP 4.4.18 सुरक्षा रिलीज़
  • GHSA-8c85-4pqf-wfwj
  • GHSA-8gmq-ghhj-j4rh

लाइसेंस

MIT। रक्षकों, ऑडिटरों और उन सभी के लिए प्रकाशित जो यह समझना चाहते हैं कि पंद्रह अक्षरों का एक regex आखिर 8.7 अंकों के लायक कैसे निकला।

-- ka3n1x

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