hacktricks/pentesting-web/unicode-injection
2024-01-01 22:46:25 +00:00
..
README.md Translated to Hindi 2023-11-06 08:38:02 +00:00
unicode-normalization.md Translated ['pentesting-web/dangling-markup-html-scriptless-injection/ss 2024-01-01 22:46:25 +00:00

यूनिकोड इंजेक्शन

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

परिचय

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

यूनिकोड मानकीकरण

यूनिकोड मानकीकरण तब होता है जब यूनिकोड वर्णों को एस्की वर्णों में मानकीकृत किया जाता है।

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

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

\u से % तक

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

यह vuln वास्तव में एक ऐसी कमजोरी से आई है जिसे एक शोधकर्ता ने खोजा था, इसके बारे में अधिक विस्तृत व्याख्या के लिए देखें https://www.youtube.com/watch?v=aUsAHb0E7Cg

इमोजी इंजेक्शन

बैक-एंड कभी-कभी इमोजी प्राप्त करने पर अजीब व्यवहार करता है। ऐसा ही हुआ इस व्राइटअप में, जहां शोधकर्ता ने एक 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;

इमोजी सूची:

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥