Unicode Injection

htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

Giriş

Arka plan/ön uç, garip unicode karakterler alırsa, bir saldırgan, XSS veya SQLi gibi enjeksiyon zafiyetlerini atlatmak ve keyfi karakterler enjekte etmek için kullanılabilecek korumaları geçebilir.

Unicode Normalizasyonu

Unicode normalizasyonu, unicode karakterlerinin ascii karakterlere normalleştirilmesi durumunda gerçekleşir.

Bu tür bir zafiyetin yaygın bir senaryosu, sistem kullanıcının girdisini kontrol ettikten sonra değiştiriyorsa ortaya çıkar. Örneğin, bazı dillerde kullanıcının girdisini büyük veya küçük harf yapmak için yapılan basit bir çağrı, verilen girdiyi normalleştirebilir ve unicode ASCII'ye dönüştürülerek yeni karakterler oluşturulabilir. Daha fazla bilgi için kontrol edin:

\u to %

Unicode karakterleri genellikle \u önekiyle temsil edilir. Örneğin, karakter \u3c4b'dir (buradan kontrol edin). Bir arka uç, öneki \u'yi %'ye dönüştürürse, elde edilen dize %3c4b olur ve URL çözümlenmiş hali: <4b. Ve görebileceğiniz gibi, bir < karakteri enjekte edilir. Eğer arka uç savunmasızsa, bu tekniği herhangi bir karakteri enjekte etmek için kullanabilirsiniz. İhtiyacınız olan karakterleri bulmak için https://unicode-explorer.com/ adresini kontrol edin.

Bu zafiyet aslında bir araştırmacının bulduğu bir zafiyetten kaynaklanır, daha ayrıntılı bir açıklama için https://www.youtube.com/watch?v=aUsAHb0E7Cg adresine bakın.

Emoji Enjeksiyonu

Arka uçlar, emoji alırsa bazen garip davranışlar sergiler. Bu, araştırmacının 💋img src=x onerror=alert(document.domain)//💛 gibi bir payload ile XSS elde etmeyi başardığı bu yazıda yaşandı.

Bu durumda, hatalı olan şey, sunucunun zararlı karakterleri kaldırdıktan sonra UTF-8 dizesini Windows-1252'den UTF-8'e dönüştürmesi idi (temel olarak giriş kodlaması ve dönüşüm kodlaması uyuşmuyordu). Ardından, bu, doğru bir < yerine garip bir unicode karakteri olan verir. ``Sonra bu çıktıyı UTF-8'den ASCII'ye yeniden dönüştürdüler. Bu, 'yi <'ye normalleştirdi ve bu sistemdeki saldırının nasıl çalışabileceğidir. İşte olanlar:

<?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;

Emoji listeleri:

AWS hackleme konusunda sıfırdan kahramana dönüşmek için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)'ı öğrenin!

HackTricks'i desteklemenin diğer yolları:

Last updated