Unicode Injection

Reading time: 3 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Introduction

Kulingana na jinsi back-end/front-end inavyofanya kazi wakati in pata wahusika wa unicode wa ajabu, mshambuliaji anaweza kupita ulinzi na kuingiza wahusika wa kawaida ambao wanaweza kutumika kudhulumu udhaifu wa kuingiza kama XSS au SQLi.

Unicode Normalization

Unicode normalization inatokea wakati wahusika wa unicode wanapohaririwa kuwa wahusika wa ascii.

Moja ya hali ya kawaida ya aina hii ya udhaifu inatokea wakati mfumo unafanya mabadiliko kwa namna fulani kwenye ingizo la mtumiaji baada ya kulikagua. Kwa mfano, katika lugha zingine, simu rahisi ya kufanya ingizo kuwa kubwa au dogo inaweza kuhariri ingizo lililotolewa na unicode litabadilishwa kuwa ASCII na kuunda wahusika wapya.
Kwa maelezo zaidi angalia:

{{#ref}} unicode-normalization.md {{#endref}}

\u to %

Wahusika wa unicode kwa kawaida huwakilishwa na \u prefix. Kwa mfano, wahusika ni \u3c4b(angalia hapa). Ikiwa back-end inabadilisha prefix \u kuwa %, string inayotokana itakuwa %3c4b, ambayo URL decoded ni: <4b. Na, kama unavyoona, wahusika < umeingizwa.
Unaweza kutumia mbinu hii ku ingiza aina yoyote ya wahusika ikiwa back-end ina udhaifu.
Angalia https://unicode-explorer.com/ kupata wahusika unahitaji.

Udhaifu huu kwa kweli unatokana na udhaifu ambao mtafiti alipata, kwa maelezo ya kina angalia https://www.youtube.com/watch?v=aUsAHb0E7Cg

Emoji Injection

Back-ends fulani zinafanya kazi kwa njia ya ajabu wanap pata emojis. Hivyo ndivyo ilivyotokea katika hii andiko ambapo mtafiti alifanikiwa kupata XSS kwa payload kama: 💋img src=x onerror=alert(document.domain)//💛

Katika kesi hii, kosa lilikuwa kwamba seva baada ya kuondoa wahusika wabaya ilibadilisha string ya UTF-8 kutoka Windows-1252 hadi UTF-8 (kimsingi uandishi wa ingizo na kubadilisha kutoka uandishi vilikuwa tofauti). Kisha hii haisababishi < sahihi bali unicode ya ajabu:
``Hivyo walichukua matokeo haya na wakabadilisha tena sasa kutoka UTF-8 hadi ASCII. Hii ilihariri kuwa < hii ndiyo jinsi exploit ilivyoweza kufanya kazi kwenye mfumo huo.
Hii ndiyo ilivyotokea:

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;

Orodha za Emoji:

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks