Unicode Normalization
WhiteIntel is 'n dark-web aangedrewe soekenjin wat gratis funksies bied om te kontroleer of 'n maatskappy of sy kliënte gekompromiteer is deur steelware.
Die primêre doel van WhiteIntel is om rekening-oorneemings en lospryse aanvalle te bekamp wat voortspruit uit inligtingsteelware.
Jy kan hul webwerf besoek en hul enjin vir gratis probeer by:
Dit is 'n opsomming van: https://appcheck-ng.com/unicode-normalization-vulnerabilities-the-special-k-polyglot/. Kyk vir verdere besonderhede (afbeeldings geneem van daar).
Begrip van Unicode en Normalisering
Unicode normalisering is 'n proses wat verseker dat verskillende binêre voorstellings van karakters gestandaardiseer word na dieselfde binêre waarde. Hierdie proses is noodsaaklik vir die hantering van strings in programmering en dataverwerking. Die Unicode-standaard definieer twee tipes karakter-ekwivalensie:
Kanoniese Ekwivalensie: Karakters word kanonies ekwivalent beskou as hulle dieselfde voorkoms en betekenis het wanneer dit gedruk of vertoon word.
Verenigbaarheid Ekwivalensie: 'n Swakker vorm van ekwivalensie waar karakters dieselfde abstrakte karakter kan verteenwoordig, maar anders vertoon kan word.
Daar is vier Unicode normaliseringsalgoritmes: NFC, NFD, NFKC, en NFKD. Elke algoritme maak gebruik van kanoniese en verenigbare normaliserings tegnieke op 'n ander manier. Vir 'n dieper begrip kan jy hierdie tegnieke verken op Unicode.org.
Sleutelpunte oor Unicode-kodering
Begrip van Unicode-kodering is krities, veral wanneer daar gehandel word met interoperabiliteitsprobleme tussen verskillende stelsels of tale. Hier is die belangrikste punte:
Kodepunte en Karakters: In Unicode word elke karakter of simbool toegewys 'n numeriese waarde wat bekend staan as 'n "kodepunt".
Byte Voorstelling: Die kodepunt (of karakter) word voorgestel deur een of meer bytes in geheue. Byvoorbeeld, LATYN-1 karakters (gewoonlik in Engelsprekende lande) word voorgestel deur een byte. Tog, tale met 'n groter stel karakters benodig meer bytes vir voorstelling.
Kodering: Hierdie term verwys na hoe karakters omskep word na 'n reeks bytes. UTF-8 is 'n algemene koderingstandaard waar ASCII-karakters voorgestel word deur een byte, en tot vier bytes vir ander karakters.
Dataverwerking: Stelsels wat data verwerk moet bewus wees van die gebruikte kodering om die bytevloei korrek te omskep na karakters.
Variante van UTF: Behalwe UTF-8, is daar ander koderingstandaarde soos UTF-16 (wat 'n minimum van 2 bytes gebruik, tot 4) en UTF-32 (wat 4 bytes vir alle karakters gebruik).
Dit is krities om hierdie konsepte te begryp om potensiële probleme wat voortspruit uit die kompleksiteit van Unicode en sy verskeie koderingsmetodes doeltreffend te hanteer en te verminder.
'n Voorbeeld van hoe Unicode twee verskillende bytes normaliseer wat dieselfde karakter voorstel:
'n Lys van Unicode-ekwivalente karakters kan hier gevind word: https://appcheck-ng.com/wp-content/uploads/unicode_normalization.html en https://0xacb.com/normalization_table
Ontdekking
As jy binne 'n webtoep 'n waarde kan vind wat teruggekaats word, kan jy probeer om 'KELVIN TEKEN' (U+0212A) te stuur wat genormaliseer word na "K" (jy kan dit stuur as %e2%84%aa
). As 'n "K" teruggekaats word, dan word daar op 'n of ander manier Unicode normalisering uitgevoer.
Ander voorbeeld: %F0%9D%95%83%E2%85%87%F0%9D%99%A4%F0%9D%93%83%E2%85%88%F0%9D%94%B0%F0%9D%94%A5%F0%9D%99%96%F0%9D%93%83
na unicode is Leonishan
.
Vulnereerbare Voorbeelde
SQL Injection filter omseil
Stel jou 'n webbladsy voor wat die karakter '
gebruik om SQL-navrae met die gebruikersinvoer te skep. Hierdie web, as 'n veiligheidsmaatreël, verwyder alle voorkomste van die karakter '
uit die gebruikersinvoer, maar na daardie verwydering en voor die skepping van die navraag, normaliseer dit die invoer van die gebruiker met behulp van Unicode.
Dan kan 'n kwaadwillige gebruiker 'n ander Unicode-karakter invoeg wat ekwivalent is aan ' (0x27)
soos %ef%bc%87
, wanneer die invoer genormaliseer word, word 'n enkele aanhalingsteken geskep en 'n SQLInjection kwesbaarheid verskyn:
Sommige interessante Unicode-karakters
o
-- %e1%b4%bcr
-- %e1%b4%bf1
-- %c2%b9=
-- %e2%81%bc/
-- %ef%bc%8f-
-- %ef%b9%a3#
-- %ef%b9%9f*
-- %ef%b9%a1'
-- %ef%bc%87"
-- %ef%bc%82|
-- %ef%bd%9c
sqlmap sjabloon
XSS (Cross Site Scripting)
Jy kan een van die volgende karakters gebruik om die webtoepassing te mislei en 'n XSS te benut:
Let daarop dat byvoorbeeld die eerste Unicode-karakter voorgestel kan word as: %e2%89%ae
of as %u226e
Fuzzing Regexes
Wanneer die agterkant gebruikerinsette met 'n regex nagaan, kan dit moontlik wees dat die inset genormaliseer word vir die regex maar nie vir waar dit gebruik word nie. Byvoorbeeld, in 'n Oopverwysing of SSRF kan die regex die gestuurde URL normaliseer maar dit dan soos dit is toegang gee.
Die instrument recollapse laat toe om variasies van die inset te genereer om die agterkant te fuzz. Vir meer inligting kyk na die github en hierdie pos.
Verwysings
WhiteIntel is 'n donkerweb-aangedrewe soekenjin wat gratis funksies bied om te kontroleer of 'n maatskappy of sy kliënte deur diewe-malware gekompromitteer is.
Die primêre doel van WhiteIntel is om rekeningoorneem te bekamp en lospryse-aanvalle as gevolg van inligtingsteel-malware te voorkom.
Jy kan hul webwerf besoek en hul enjin gratis probeer by:
Last updated