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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
drupal-oembed-ssrf — Drupal 11.4.8 - उच्च - रिमोट - SSRF - oEmbed डिस्कवरी एक अनस्कोप्ड सेकंड-हॉप URL प्राप्त करती है | Kitploit
उपकरण/GitHubGitHub/abraxas/drupal-oembed-ssrf
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणसुरक्षा वर्चुअलाइजेशनवेब सुरक्षापेनिट्रेशन टेस्टिंग
GitHubabraxas/drupal-oembed-ssrf

drupal-oembed-ssrf

Drupal 11.4.8 - उच्च - रिमोट - SSRF - oEmbed डिस्कवरी एक अनस्कोप्ड सेकंड-हॉप URL प्राप्त करती है

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

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

सभी देखें →

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

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

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

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

Abraxas Labs - drupal-oembed-ssrf

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  drupal-oembed-ssrf

राइट-अप: https://abraxaslabs.tech/research/drupal-oembed-ssrf

drupal-oembed-ssrf

वर्ग: SSRF पहुँच: रिमोट

Drupal core 11.4.8 (61044508) - Drupal

SA-CORE-2026-008 ने discovery document होस्ट को media_oembed_discovery_trusted_host_patterns के साथ गेट किया। UrlResolver::findUrl अभी भी कच्चा link href लौटाता है। इसके बाद ResourceFetcher::fetchResource उस URL पर बिना किसी होस्ट या प्राइवेट-IP जाँच के GET करता है। oEmbed thumbnail_url भी उसी प्रकार का GET है। डिफ़ॉल्ट पैटर्न खाली होते हैं, इसलिए जब तक कोई एडमिन इसे सक्षम नहीं करता, तब तक discovery बंद रहती है।

एडमिन द्वारा discovery सक्षम करने के बाद, जो उपयोगकर्ता oEmbed मीडिया बना सकता है, वह Drupal को ऐसे allowlisted पेज की ओर इंगित कर सकता है जिसका JSON oEmbed लिंक href loopback, RFC1918, या metadata हो।

IDअभी तक कोई CVE नहीं
वर्गSSRF (SA-CORE-2026-008 का दूसरे-हॉप का अवशेष)
पहुँचरिमोट (एडमिन द्वारा discovery होस्ट सेट करने के बाद, प्रमाणित मीडिया निर्माण)
CWECWE-918
CVSSमध्यम: 6.1 CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N
उत्पादDrupal core
प्रभावित11.4.8 (61044508071749629aaf3380aa85971e94df9e84)
प्रमाणीकरणप्रमाणित मीडिया निर्माण, एडमिन द्वारा discovery होस्ट सेट करने के बाद। AC:H वही एडमिन टॉगल है।
लाइसेंसGNU Affero GPL v3.0
लैबकेवल 127.0.0.1

हमलावर क्या कर सकता है

केवल तब जब एडमिन ने discovery trusted-host पैटर्न सेट किए हों। उसके बाद मीडिया निर्माता होना पर्याप्त है। बिना खाते वाला पूर्ण अजनबी डिफ़ॉल्ट पर ऐसा नहीं कर सकता। यह SSRF है, RCE नहीं और एडमिन लॉगिन भी नहीं।

विशेषाधिकारविधि / सिंकप्रकारलैब-प्रमाणित या अनुमानित
Drupal से हमलावर द्वारा चुना गया URL GET करवाना (इस लैब में loopback)UrlResolver::findUrl कच्चा href फिर ResourceFetcher::fetchResource GETरेकॉन (सर्वर-साइड फ़ेच)लैब-प्रमाणित। http://127.0.0.1:18080/oembed ने DRUPAL-OEMBED-SSRF-WITNESS लौटाया
उस URL का HTTP बॉडी PHP में पढ़नावही GET; JSON/XML को oEmbed के रूप में पार्स किया गयारेकॉनलैब-प्रमाणित। Witness 200 बॉडी में था
रिसोर्स बनने के बाद thumbnail_url के लिए वही GETOEmbed::getLocalThumbnailUri ~417-456रेकॉनपिन से अनुमानित। इस लैब ने discovered href पर ही रोका
यदि PHP netns कर सके तो RFC1918 / link-local / metadata तक पहुँचनाबिना स्कोप वाला Guzzle GETरेकॉनअनुमानित। लैब ने loopback का उपयोग किया, 169.254.169.254 का नहीं

इस अवशेष पर बंद: पैटर्न खाली होने पर पहला हॉप (लैब-प्रमाणित); जब HTML होस्ट मेल नहीं खाता तब पहला हॉप (लैब-प्रमाणित); मीडिया भूमिका के बिना Standard पर बिना प्रमाणीकरण वाला मीडिया निर्माण; RCE; एडमिन सत्र चोरी।

मैंने इसे कैसे खोजा

मैंने SA-CORE-2026-008 के बाद Drupal 11.4.8 को पिन किया। पहला हॉप गेटेड है:

$patterns = \array_map(static fn ($hostPattern) => \sprintf('{%s}i', $hostPattern), Settings::get('media_oembed_discovery_trusted_host_patterns', []));
// ...
if (!$allowed) {
  return FALSE;
}
$response = $this->httpClient->get($url);
return $this->findUrl($xpath, 'json') ?: $this->findUrl($xpath, 'xml');

findUrl कच्चा href लौटाता है। ResourceFetcher इसे एक टाइमआउट के साथ GET करता है और कुछ नहीं:

$result = $xpath->query("//link[@type='application/$format+oembed']");
return $result->length ? $result->item(0)->getAttribute('href') : FALSE;
$response = $this->httpClient->request('GET', $url, [
  RequestOptions::TIMEOUT => $this->timeout,
]);

लैब उन 11.4.8 फ़ंक्शन्स का एक निष्ठावान गैजेट है, न कि एक लाइव drupal:11.4.8 साइट इंस्टॉल। अंतिम पंक्ति how=gadget का उपयोग करती है। खाली पैटर्न्स ने फ़ेच नहीं किया। एक गैर-मेल खाते होस्ट ने फ़ेच नहीं किया। ^firsthop$ की अनुमति होने पर, discoverResourceUrl ने http://127.0.0.1:18080/oembed लौटाया और अनस्कोप्ड GET ने विटनेस लौटाया।

पहले से दर्ज गलत मोड़: default-off को मिस मानना (यह इच्छित फ़र्स्ट-हॉप गेट है; बचा हुआ हिस्सा हॉप दो है); एक लाइव Standard इंस्टॉल को ओरेकल कहना (यह पैक पिन फ़ंक्शन्स है); Guzzle चलने के कारण RCE का दावा करना। थिएटर: एक रिवर्स शेल। ओरेकल default-off प्लस गलत-होस्ट ब्लॉक्ड प्लस द सेकंड-हॉप विटनेस है।

वही पिन अवशेष: CKEditor 5 FileIsImage skip।

लैब

python3 drupal-oembed-ssrf-Abraxas-Labs.py

या

cd lab
./run.sh

केवल लूपबैक: पहला-हॉप HTML http://127.0.0.1:19510 पर। दूसरा हॉप गैजेट netns के अंदर http://127.0.0.1:18080/oembed है।

SUCCESS drupal-oembed-ssrf how=gadget pin=11.4.8 first-hop=allowed second-hop=127.0.0.1:18080 default-off=blocked DRUPAL-OEMBED-SSRF-WITNESS

समाधान

खोजे गए endpoint और thumbnail_url दोनों पर वही host / private-IP नीति लागू करें। ऐसे href को न लाएँ जिसका host पहले hop में विफल हो जाता।

संदर्भ

  • github.com/drupal/drupal टैग 11.4.8 (61044508071749629aaf3380aa85971e94df9e84)
  • UrlResolver.php · ResourceFetcher.php
  • निकटवर्ती पैच किया गया (यह hop नहीं): SA-CORE-2026-008
  • वही टैग: drupal-ckeditor-fileisimage
  • CWE-918

लाइसेंस

GNU Affero GPL v3.0. देखें LICENSE. केवल लूपबैक लैब। कोई वारंटी नहीं।

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