5.2 KiB
Unicode ubacivanje
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite vašu kompaniju reklamiranu na HackTricks-u ili preuzmete HackTricks u PDF formatu proverite SUBSCRIPTION PLANS!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitter-u 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Uvod
Zavisno o tome kako se bek-end/front-end ponaša kada prima čudne unicode karaktere, napadač može biti u mogućnosti da zaobiđe zaštitu i ubaci proizvoljne karaktere koji mogu biti korišćeni za zloupotrebu ranjivosti ubacivanja kao što su XSS ili SQLi.
Unicode normalizacija
Unicode normalizacija se dešava kada se unicode karakteri normalizuju u ASCII karaktere.
Jedan uobičajeni scenario ovog tipa ranjivosti se javlja kada sistem modifikuje unos korisnika nakon što ga je proverio. Na primer, u nekim jezicima jednostavan poziv za pretvaranje unosa u velika ili mala slova može normalizovati dati unos i unicode će biti transformisan u ASCII generišući nove karaktere.
Za više informacija pogledajte:
{% content-ref url="unicode-normalization.md" %} unicode-normalization.md {% endcontent-ref %}
\u
u %
Unicode karakteri se obično predstavljaju sa prefiksom \u
. Na primer, karakter 㱋
je \u3c4b
(proverite ovde). Ako bek-end transformiše prefiks \u
u %
, rezultujući string će biti %3c4b
, koji dekodiran URL-om je: <4b
. I, kao što možete videti, ubacuje se karakter <
.
Možete koristiti ovu tehniku da ubacite bilo koji karakter ako je bek-end ranjiv.
Proverite https://unicode-explorer.com/ da biste pronašli karaktere koje vam trebaju.
Ova ranjivost zapravo potiče od ranjivosti koju je pronašao istraživač, za detaljnije objašnjenje pogledajte https://www.youtube.com/watch?v=aUsAHb0E7Cg
Ubacivanje emodžija
Bek-endovi ponekad se čudno ponašaju kada prima emodžije. To se desilo u ovom writeup-u gde je istraživač uspeo da postigne XSS sa payload-om kao što je: 💋img src=x onerror=alert(document.domain)//💛
U ovom slučaju, greška je bila u tome što je server nakon uklanjanja zlonamernih karaktera pretvorio UTF-8 string iz Windows-1252 u UTF-8 (u osnovi, kodiranje unosa i konverzija iz kodiranja nisu se poklapali). Zatim, umesto pravilnog < dobijen je čudan unicode karakter: ‹
``Tako su uzeli ovaj izlaz i ponovo pretvorili sada iz UTF-8 u ASCII. Ovo je normalizovalo ‹
u <
i tako je eksploit mogao da funkcioniše na tom sistemu.
Ovo se desilo:
<?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;
Lista emoji-ja:
- https://github.com/iorch/jakaton_feminicidios/blob/master/data/emojis.csv
- https://unicode.org/emoji/charts-14.0/full-emoji-list.html
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite vašu kompaniju reklamiranu na HackTricks-u ili preuzmete HackTricks u PDF formatu proverite SUBSCRIPTION PLANS!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitter-u 🐦 @carlospolopm.
- Podelite svoje trikove hakovanja slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.