.. | ||
README.md | ||
unicode-normalization.md |
Injection Unicode
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
Travaillez-vous dans une entreprise de cybersécurité ? Voulez-vous voir votre entreprise annoncée dans HackTricks ? ou voulez-vous avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT !
-
Découvrez The PEASS Family, notre collection exclusive de NFTs
-
Obtenez le swag officiel PEASS & HackTricks
-
Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez moi sur Twitter 🐦@carlospolopm.
-
Partagez vos astuces de piratage en soumettant des PR au repo hacktricks et au repo hacktricks-cloud.
Introduction
Selon la façon dont le back-end/front-end se comporte lorsqu'il reçoit des caractères Unicode étranges, un attaquant pourrait être en mesure de contourner les protections et d'injecter des caractères arbitraires qui pourraient être utilisés pour exploiter des vulnérabilités d'injection telles que XSS ou SQLi.
Normalisation Unicode
La normalisation Unicode se produit lorsque les caractères Unicode sont normalisés en caractères ASCII.
Un scénario courant de ce type de vulnérabilité se produit lorsque le système modifie d'une manière ou d'une autre l'entrée de l'utilisateur après l'avoir vérifiée. Par exemple, dans certaines langues, un simple appel pour mettre l'entrée en majuscules ou en minuscules pourrait normaliser l'entrée donnée et l'Unicode sera transformé en ASCII générant de nouveaux caractères.
Pour plus d'informations, consultez :
{% content-ref url="unicode-normalization.md" %} unicode-normalization.md {% endcontent-ref %}
\u
to %
Les caractères Unicode sont généralement représentés avec le préfixe \u
. Par exemple, le caractère 㱋
est \u3c4b
(vérifiez-le ici). Si un back-end transforme le préfixe \u
en %
, la chaîne résultante sera %3c4b
, qui, une fois décodée en URL, est : <4b
. Et, comme vous pouvez le voir, un caractère <
est injecté.
Vous pouvez utiliser cette technique pour injecter n'importe quel type de caractère si le back-end est vulnérable.
Consultez https://unicode-explorer.com/ pour trouver les caractères dont vous avez besoin.
Cette vulnérabilité vient en fait d'une vulnérabilité qu'un chercheur a trouvée, pour une explication plus approfondie, consultez https://www.youtube.com/watch?v=aUsAHb0E7Cg
Injection d'Emoji
Les back-ends se comportent parfois de manière étrange lorsqu'ils reçoivent des emojis. C'est ce qui s'est passé dans ce writeup où le chercheur a réussi à obtenir un XSS avec une charge utile telle que : 💋img src=x onerror=alert(document.domain)//💛
Dans ce cas, l'erreur était que le serveur, après avoir supprimé les caractères malveillants, a converti la chaîne UTF-8 de Windows-1252 en UTF-8 (essentiellement, l'encodage d'entrée et la conversion d'encodage ne correspondaient pas). Ensuite, cela ne donne pas un < correct, mais un étrange unicode : ‹
``Ils ont donc pris cette sortie et converti à nouveau maintenant d'UTF-8 en ASCII. Cela a normalisé le ‹
en <
, c'est ainsi que l'exploit a pu fonctionner sur ce système.
Voici ce qui s'est passé :
<?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;
Liste d'emojis :
- https://github.com/iorch/jakaton_feminicidios/blob/master/data/emojis.csv
- https://unicode.org/emoji/charts-14.0/full-emoji-list.html
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
Travaillez-vous dans une entreprise de cybersécurité ? Voulez-vous voir votre entreprise annoncée dans HackTricks ? ou voulez-vous avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT !
-
Découvrez The PEASS Family, notre collection exclusive de NFTs
-
Obtenez le swag officiel PEASS & HackTricks
-
Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez moi sur Twitter 🐦@carlospolopm.
-
Partagez vos astuces de piratage en soumettant des PR au repo hacktricks et au repo hacktricks-cloud.