hacktricks/pentesting-web/unicode-injection
2024-01-10 17:49:16 +00:00
..
README.md Translated ['pentesting-web/hacking-with-cookies/cookie-bomb.md', 'pente 2024-01-10 17:49:16 +00:00
unicode-normalization.md Translated ['pentesting-web/dangling-markup-html-scriptless-injection/ss 2024-01-01 22:46:25 +00:00

Unicode Injection

AWS हैकिंग सीखें शून्य से लेकर हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

परिचय

जब बैक-एंड/फ्रंट-एंड अजीब यूनिकोड अक्षरों को प्राप्त करता है, तो एक हमलावर सुरक्षा उपायों को बायपास कर सकता है और मनमाने अक्षरों को इंजेक्ट कर सकता है जिनका उपयोग XSS या SQLi जैसी इंजेक्शन भेद्यताओं का दुरुपयोग करने के लिए किया जा सकता है.

Unicode Normalization

यूनिकोड नॉर्मलाइजेशन तब होता है जब यूनिकोड अक्षरों को एस्की अक्षरों में सामान्यीकृत किया जाता है.

इस प्रकार की भेद्यता का एक सामान्य परिदृश्य तब होता है जब सिस्टम उपयोगकर्ता के इनपुट को किसी तरह से संशोधित कर रहा होता है इसे जांचने के बाद. उदाहरण के लिए, कुछ भाषाओं में इनपुट को ऊपरी या निचले केस में बदलने के लिए एक साधारण कॉल दिया गया इनपुट को सामान्यीकृत कर सकता है और यूनिकोड ASCII में परिवर्तित हो जाएगा नए अक्षर उत्पन्न करते हुए.
अधिक जानकारी के लिए देखें:

{% content-ref url="unicode-normalization.md" %} unicode-normalization.md {% endcontent-ref %}

\u से % तक

यूनिकोड अक्षरों को आमतौर पर \u प्रीफिक्स के साथ दर्शाया जाता है. उदाहरण के लिए अक्षर है \u3c4b(यहाँ जांचें). यदि एक बैकएंड प्रीफिक्स \u को % में परिवर्तित करता है, तो परिणामी स्ट्रिंग होगी %3c4b, जो URL डिकोडेड है: <4b. और, जैसा कि आप देख सकते हैं, एक < अक्षर इंजेक्ट किया गया है.
आप इस तकनीक का उपयोग किसी भी प्रकार के अक्षर को इंजेक्ट करने के लिए कर सकते हैं यदि बैकएंड भेद्य है.
आपको जरूरत के अक्षर खोजने के लिए https://unicode-explorer.com/ देखें.

यह भेद्यता वास्तव में एक शोधकर्ता द्वारा पाई गई एक भेद्यता से आती है, अधिक गहराई से समझने के लिए देखें https://www.youtube.com/watch?v=aUsAHb0E7Cg

Emoji Injection

बैक-एंड्स कभी-कभी अजीब तरीके से व्यवहार करते हैं जब वे इमोजी प्राप्त करते हैं. यही हुआ इस राइटअप में जहां शोधकर्ता ने एक पेलोड के साथ XSS प्राप्त किया: 💋img src=x onerror=alert(document.domain)//💛

इस मामले में, त्रुटि यह थी कि सर्वर ने दुर्भावनापूर्ण अक्षरों को हटाने के बाद UTF-8 स्ट्रिंग को Windows-1252 से UTF-8 में परिवर्तित किया (मूल रूप से इनपुट एन्कोडिंग और कन्वर्ट से एन्कोडिंग मेल नहीं खाती थी). फिर यह एक सही < नहीं देता बस एक अजीब यूनिकोड एक:
``इसलिए उन्होंने इस आउटपुट को फिर से परिवर्तित किया अब UTF-8 से ASCII में**. इसने को < में नॉर्मलाइज़ किया यही कारण है कि एक्सप्लॉइट उस सिस्टम पर काम कर सकता था.
यही हुआ:

<?php

$str = isset($_GET["str"]) ? htmlspecialchars($_GET["str"]) : "";

$str = iconv("Windows-1252", "UTF-8", $str);
$str = iconv("UTF-8", "ASCII//TRANSLIT", $str);

echo "String: " . $str;

Emoji सूचियाँ:

AWS हैकिंग सीखें शून्य से लेकर हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके: