Unicode Injection

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Utangulizi

Kulingana na jinsi mfumo wa nyuma/mbele unavyotenda wakati unapokea herufi za unicode zisizo za kawaida, mshambuliaji anaweza kuweza kuepuka ulinzi na kuingiza herufi za kiholela ambazo zinaweza kutumika kudukua udhaifu wa kuingiza kama vile XSS au SQLi.

Ulinganishaji wa Unicode

Ulinganishaji wa unicode hufanyika wakati herufi za unicode zinalinganishwa na herufi za ASCII.

Hali moja ya kawaida ya udhaifu wa aina hii hutokea wakati mfumo unapobadilisha kuingiza cha mtumiaji baada ya kukagua. Kwa mfano, katika lugha fulani, wito rahisi wa kufanya kuingiza kuwa herufi kubwa au ndogo kunaweza kulinganisha kuingiza kilichotolewa na unicode itabadilishwa kuwa ASCII na kuunda herufi mpya. Kwa maelezo zaidi angalia:

pageUnicode Normalization

\u hadi %

Kawaida, herufi za unicode huwakilishwa na kiambishi cha \u. Kwa mfano, herufi ni \u3c4b(angalia hapa). Ikiwa mfumo wa nyuma unabadilisha kiambishi cha \u kuwa %, herufi inayopatikana itakuwa %3c4b, ambayo inaondolewa URL: <4b. Na, kama unavyoona, herufi < imeingizwa. Unaweza kutumia mbinu hii kuingiza aina yoyote ya herufi ikiwa mfumo wa nyuma una udhaifu. Angalia https://unicode-explorer.com/ ili kupata herufi unazohitaji.

Udhaifu huu kimsingi unatokana na udhaifu ambao mtafiti aligundua, kwa maelezo zaidi angalia https://www.youtube.com/watch?v=aUsAHb0E7Cg

Kuingiza Emoji

Mifumo ya nyuma mara nyingi inatenda kwa njia isiyotarajiwa wakati inapokea emoji. Hiyo ndiyo iliyotokea katika makala hii ambapo mtafiti alifanikiwa kudukua XSS na mzigo kama huu: 💋img src=x onerror=alert(document.domain)//💛

Katika kesi hii, kosa lilikuwa kwamba seva baada ya kuondoa herufi mbaya iligeuza herufi ya UTF-8 kutoka Windows-1252 kuwa UTF-8 (kimsingi kuingiza na ubadilishaji wa kuingiza ulikuwa tofauti). Kisha hii haikutoa < sahihi tu herufi ya unicode isiyotarajiwa: ``Kwa hivyo walichukua matokeo haya na kubadilisha tena sasa kutoka UTF-8 hadi ASCII. Hii ilifanya kuwa < ndio jinsi udanganyifu ulivyoweza kufanya kazi kwenye mfumo huo. Hii ndio iliyotokea:

<?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 ya Emoji:

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (HackTricks AWS Red Team Expert)!

Njia nyingine za kusaidia HackTricks:

Last updated