hacktricks/pentesting-web/unicode-injection/README.md

75 lines
5.2 KiB
Markdown
Raw Normal View History

2024-02-10 13:11:20 +00:00
# Unicode ubacivanje
2022-09-02 10:02:33 +00:00
<details>
2024-02-10 13:11:20 +00:00
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-09-02 10:02:33 +00:00
2024-02-10 13:11:20 +00:00
Drugi načini podrške HackTricks-u:
2022-09-02 10:02:33 +00:00
2024-02-10 13:11:20 +00:00
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
2022-09-02 10:02:33 +00:00
</details>
2024-02-10 13:11:20 +00:00
## Uvod
2022-09-02 10:02:33 +00:00
2024-02-10 13:11:20 +00:00
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.
2022-09-02 10:02:33 +00:00
2024-02-10 13:11:20 +00:00
## Unicode normalizacija
2022-09-02 10:02:33 +00:00
2024-02-10 13:11:20 +00:00
Unicode normalizacija se dešava kada se **unicode karakteri normalizuju u ASCII karaktere**.
2022-09-02 10:02:33 +00:00
2024-02-10 13:11:20 +00:00
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:
2022-09-02 10:02:33 +00:00
{% content-ref url="unicode-normalization.md" %}
[unicode-normalization.md](unicode-normalization.md)
{% endcontent-ref %}
2024-02-10 13:11:20 +00:00
## `\u` u `%`
2022-09-02 10:02:33 +00:00
2024-02-10 13:11:20 +00:00
Unicode karakteri se obično predstavljaju sa **prefiksom `\u`**. Na primer, karakter `㱋` je `\u3c4b`([proverite ovde](https://unicode-explorer.com/c/3c4B)). 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/](https://unicode-explorer.com/) da biste pronašli karaktere koje vam trebaju.
2022-09-02 10:02:33 +00:00
2024-02-10 13:11:20 +00:00
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](https://www.youtube.com/watch?v=aUsAHb0E7Cg)
2022-09-02 10:02:33 +00:00
2024-02-10 13:11:20 +00:00
## Ubacivanje emodžija
2022-09-02 10:02:33 +00:00
2024-02-10 13:11:20 +00:00
Bek-endovi ponekad se čudno ponašaju kada **prima emodžije**. To se desilo u [**ovom writeup-u**](https://medium.com/@fpatrik/how-i-found-an-xss-vulnerability-via-using-emojis-7ad72de49209) gde je istraživač uspeo da postigne XSS sa payload-om kao što je: `💋img src=x onerror=alert(document.domain)//💛`
2022-09-02 10:02:33 +00:00
2024-02-10 13:11:20 +00:00
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:
2022-09-02 10:02:33 +00:00
```php
<?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;
```
2024-02-10 13:11:20 +00:00
Lista emoji-ja:
2022-09-02 10:02:33 +00:00
* [https://github.com/iorch/jakaton\_feminicidios/blob/master/data/emojis.csv](https://github.com/iorch/jakaton\_feminicidios/blob/master/data/emojis.csv)
* [https://unicode.org/emoji/charts-14.0/full-emoji-list.html](https://unicode.org/emoji/charts-14.0/full-emoji-list.html)
<details>
2024-02-10 13:11:20 +00:00
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-09-02 10:02:33 +00:00
2024-02-10 13:11:20 +00:00
Drugi načini podrške HackTricks-u:
2022-09-02 10:02:33 +00:00
2024-02-10 13:11:20 +00:00
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje trikove hakovanja slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
2022-09-02 10:02:33 +00:00
</details>