Server Side XSS (Dynamic PDF)
सर्वर साइड XSS (डायनामिक पीडीएफ)
यदि एक वेब पृष्ठ उपयोगकर्ता नियंत्रित इनपुट का उपयोग करके एक पीडीएफ बना रहा है, तो आप बोट को धोखा देने की कोशिश कर सकते हैं जो पीडीएफ बना रहा है और विविध JS कोड को निष्पादित करने के लिए। तो, अगर पीडीएफ निर्माता बोट को किसी प्रकार के HTML टैग मिलते हैं, तो वह उन्हें व्याख्या करेगा, और आप इस व्यवहार का दुरुपयोग करके एक सर्वर XSS का कारण बना सकते हैं।
कृपया ध्यान दें कि <script></script>
टैग हमेशा काम नहीं करते, इसलिए आपको JS को निष्पादित करने के लिए एक विभिन्न विधि की आवश्यकता होगी (उदाहरण के लिए, <img
का दुरुपयोग करना)।
इसके अलावा, ध्यान दें कि एक सामान्य शोषण में आप निर्मित पीडीएफ को देखने/डाउनलोड करने में सक्षम होंगे, इसलिए आप जो कुछ भी आप JS के माध्यम से लिखते हैं उसे देख सकेंगे (उदाहरण के लिए document.write()
का उपयोग करके)। लेकिन, यदि आप निर्मित पीडीएफ नहीं देख सकते हैं, तो आपको संभावतः आपको वेब अनुरोध करके जानकारी निकालने की आवश्यकता होगी (अंधा).
लोकप्रिय पीडीएफ उत्पादन
wkhtmltopdf को उसकी क्षमता के लिए जाना जाता है कि वह HTML और CSS को पीडीएफ दस्तावेज़ में रूपांतरित करने में सक्षम है, वेबकिट रेंडरिंग इंजन का उपयोग करते हुए। यह उपकरण एक ओपन-सोर्स कमांड लाइन यूटिलिटी के रूप में उपलब्ध है, जिससे इसे विभिन्न अनुप्रयोगों के लिए पहुंचने में सहायक है।
TCPDF PHP पारिस्थितिकी में पीडीएफ उत्पादन के लिए एक मजबूत समाधान प्रदान करता है। यह छवियों, ग्राफिक्स, और एन्क्रिप्शन को संभालने की क्षमता रखता है, जिससे यह जटिल दस्तावेज़ बनाने के लिए अपनी बहुमुखीता का प्रदर्शन करता है।
उन लोगों के लिए जो नोड.जेएस वातावरण में काम कर रहे हैं, PDFKit एक व्यावहारिक विकल्प प्रस्तुत करता है। यह HTML और CSS से सीधे पीडीएफ दस्तावेज़ उत्पन्न करने की क्षमता प्रदान करता है, वेब सामग्री और प्रिंटेबल प्रारूपों के बीच एक सेतु प्रदान करता है।
जावा डेवलपर्स को iText पसंद हो सकता है, एक पुस्तकालय जो केवल पीडीएफ निर्माण को सुविधा प्रदान करती है बल्कि डिजिटल हस्ताक्षर और फॉर्म भरने जैसी उन्नत सुविधाओं का समर्थन भी करती है। इसकी व्यापक सुविधा सेट इसे सुरक्षित और इंटरैक्टिव दस्तावेज़ उत्पन्न करने के लिए उपयुक्त बनाती है।
FPDF एक और PHP पुस्तकालय है, जिसे इसकी सरलता और उपयोग की सुविधा से पहचाना जाता है। यह उन डेवलपर्स के लिए डिजाइन किया गया है जो व्यापक सुविधाओं की आवश्यकता न होने पर भी पीडीएफ उत्पादन के लिए एक सीधा दृष्टिकोण खोज रहे हैं।
पेलोड
खोज
SVG
इस SVG पेलोड के अंदर पिछले किसी भी या निम्नलिखित पेलोड का उपयोग किया जा सकता है। एक iframe जो Burpcollab सबडोमेन तक पहुंच रहा है और एक और जो मेटाडेटा एंडपॉइंट तक पहुंच रहा है, उदाहरण के रूप में डाले गए हैं।
आप https://github.com/allanlw/svg-cheatsheet में बहुत सारे अन्य SVG payloads पा सकते हैं।
पथ भेद्यता
एक बाहरी स्क्रिप्ट लोड करें
इस वंशानुक्रमिकता को शारीरिक करने का सबसे उपयुक्त तरीका यह है कि इस दोष का दुरुपयोग करके बॉट को स्थानीय रूप से आपके नियंत्रण में एक स्क्रिप्ट लोड करने के लिए दुरुपयोग करें। फिर, आप स्थानीय रूप से पेलोड को बदल सकेंगे और बॉट को हर बार उसी कोड के साथ इसे लोड करने के लिए बना सकेंगे।
स्थानीय फ़ाइल पढ़ें / SSRF
file:///etc/passwd
को http://169.254.169.254/latest/user-data
जैसे बदलें ताकि एक बाहरी वेब पृष्ठ तक पहुँचने का प्रयास करें (SSRF)।
यदि SSRF की अनुमति है, लेकिन आप किसी दिलचस्प डोमेन या आईपी तक पहुँच नहीं सकते, पोटेंशियल बाइपास के लिए इस पृष्ठ की जाँच करें।
बॉट विलंब
पोर्ट स्कैन
यह वंरणशीलता बहुत आसानी से एक SSRF में रूपांतरित की जा सकती है (जैसे कि आप स्क्रिप्ट को बाहरी संसाधन लोड करने के लिए कर सकते हैं)। तो बस इसे उत्पीड़ित करने की कोशिश करें (कुछ मेटाडेटा पढ़ें?)।
अटैचमेंट: PD4ML
कुछ HTML 2 PDF इंजन हैं जो PDF के लिए अटैचमेंट को निर्दिष्ट करने की अनुमति देते हैं, जैसे PD4ML। आप इस सुविधा का दुरुपयोग करके PDF में किसी भी स्थानीय फ़ाइल को अटैच कर सकते हैं। अटैचमेंट खोलने के लिए मैंने फ़ाइल को Firefox के साथ खोला और पेपरक्लिप प्रतीक पर डबल क्लिक किया ताकि अटैचमेंट को एक नई फ़ाइल के रूप में स्टोर कर सकूं। बर्प के साथ PDF प्रतिक्रिया को कैप्चर करने पर भी PDF में स्पष्ट पाठ में अटैचमेंट दिखाई देनी चाहिए।
संदर्भ
Last updated