# Unicode Injection
{% hint style="success" %}
Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 馃挰 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 馃惁 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
## Wprowadzenie
W zale偶no艣ci od tego, jak backend/frontend zachowuje si臋, gdy **otrzymuje dziwne znaki unicode**, atakuj膮cy mo偶e by膰 w stanie **obej艣膰 zabezpieczenia i wstrzykn膮膰 dowolne znaki**, kt贸re mog膮 by膰 u偶yte do **wykorzystania luk w wstrzykiwaniu**, takich jak XSS lub SQLi.
## Normalizacja Unicode
Normalizacja Unicode zachodzi, gdy **znaki unicode s膮 normalizowane do znak贸w ascii**.
Jednym z powszechnych scenariuszy tego typu luki jest sytuacja, gdy system **modyfikuje** w jaki艣 spos贸b **wej艣cie** u偶ytkownika **po jego sprawdzeniu**. Na przyk艂ad, w niekt贸rych j臋zykach proste wywo艂anie do zamiany **wej艣cia na wielkie lub ma艂e litery** mo偶e znormalizowa膰 podane wej艣cie, a **unicode zostanie przekszta艂cone na ASCII**, generuj膮c nowe znaki.\
Aby uzyska膰 wi臋cej informacji, sprawd藕:
{% content-ref url="unicode-normalization.md" %}
[unicode-normalization.md](unicode-normalization.md)
{% endcontent-ref %}
## `\u` do `%`
Znaki unicode s膮 zazwyczaj reprezentowane z **prefiksem `\u`**. Na przyk艂ad znak `惚媊 to `\u3c4b`([sprawd藕 to tutaj](https://unicode-explorer.com/c/3c4B)). Je艣li backend **przekszta艂ca** prefiks **`\u` na `%`**, wynikowy ci膮g b臋dzie `%3c4b`, kt贸ry po dekodowaniu URL to: **`<4b`**. I, jak wida膰, **znak ` < ` jest wstrzykiwany**.\
Mo偶esz u偶y膰 tej techniki do **wstrzykni臋cia dowolnego znaku**, je艣li backend jest podatny.\
Sprawd藕 [https://unicode-explorer.com/](https://unicode-explorer.com/), aby znale藕膰 potrzebne znaki.
Ta luka pochodzi z rzeczywistej luki, kt贸r膮 odkry艂 badacz, aby uzyska膰 bardziej szczeg贸艂owe wyja艣nienie, sprawd藕 [https://www.youtube.com/watch?v=aUsAHb0E7Cg](https://www.youtube.com/watch?v=aUsAHb0E7Cg)
## Wstrzykiwanie Emoji
Back-endy zachowuj膮 si臋 dziwnie, gdy **otrzymuj膮 emoji**. Tak by艂o w [**tym opisie**](https://medium.com/@fpatrik/how-i-found-an-xss-vulnerability-via-using-emojis-7ad72de49209), gdzie badacz zdo艂a艂 osi膮gn膮膰 XSS z 艂adunkiem takim jak: `馃拫img src=x onerror=alert(document.domain)//馃挍`
W tym przypadku b艂膮d polega艂 na tym, 偶e serwer po usuni臋ciu z艂o艣liwych znak贸w **przekonwertowa艂 ci膮g UTF-8 z Windows-1252 na UTF-8** (w zasadzie kodowanie wej艣cia i konwersja kodowania by艂y niezgodne). Wtedy to nie daje poprawnego <, tylko dziwne unicode: `鈥筦\
``Wi臋c wzi臋li ten wynik i **przekonwertowali ponownie z UTF-8 na ASCII**. To **znormalizowa艂o** `鈥筦 do `<`, w ten spos贸b exploit m贸g艂 dzia艂a膰 w tym systemie.\
To, co si臋 wydarzy艂o:
```php
[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Ucz si臋 i 膰wicz Hacking GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Wsparcie HackTricks
* Sprawd藕 [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **Do艂膮cz do** 馃挰 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegram**](https://t.me/peass) lub **艣led藕** nas na **Twitterze** 馃惁 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Dziel si臋 trikami hackingowymi, przesy艂aj膮c PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytori贸w na githubie.
{% endhint %}