# Unicode Injection {{#include ../../banners/hacktricks-training.md}} ## Introduction Arka uç/ön uç nasıl davranıyorsa, **garip unicode karakterleri aldığında** bir saldırgan **korumaları atlayabilir ve rastgele karakterler enjekte edebilir**. Bu, XSS veya SQLi gibi **enjeksiyon zafiyetlerini kötüye kullanmak için** kullanılabilir. ## Unicode Normalization Unicode normalizasyonu, **unicode karakterlerinin ascii karakterlerine normalleştirilmesi** sırasında gerçekleşir. Bu tür bir zafiyetin yaygın bir senaryosu, sistemin kullanıcının **girişini kontrol ettikten sonra** bir şekilde **değiştirmesi** durumunda ortaya çıkar. Örneğin, bazı dillerde **girişi büyük veya küçük harfe dönüştürmek** için yapılan basit bir çağrı, verilen girişi normalleştirebilir ve **unicode ASCII'ye dönüştürülecek** yeni karakterler üretebilir.\ Daha fazla bilgi için kontrol edin: {{#ref}} unicode-normalization.md {{#endref}} ## `\u` to `%` Unicode karakterleri genellikle **`\u` ön eki** ile temsil edilir. Örneğin, `㱋` karakteri `\u3c4b`dir ([buradan kontrol edin](https://unicode-explorer.com/c/3c4B)). Eğer bir arka uç **`\u` ön ekini `%`'ye dönüştürürse**, ortaya çıkan dize `%3c4b` olacaktır ki, URL çözüldüğünde: **`<4b`** olur. Ve, görebileceğiniz gibi, bir **`<` karakteri enjekte edilmiştir**.\ Eğer arka uç zayıfsa, bu tekniği **herhangi bir karakteri enjekte etmek için** kullanabilirsiniz.\ Gerekli karakterleri bulmak için [https://unicode-explorer.com/](https://unicode-explorer.com/) adresini kontrol edin. Bu zafiyet aslında bir araştırmacının bulduğu bir zafiyetten gelmektedir, daha derin bir açıklama için [https://www.youtube.com/watch?v=aUsAHb0E7Cg](https://www.youtube.com/watch?v=aUsAHb0E7Cg) adresine bakın. ## Emoji Injection Arka uçlar, **emoji aldıklarında** tuhaf bir şekilde davranır. Bu, araştırmacının `💋img src=x onerror=alert(document.domain)//💛` gibi bir yük ile XSS elde etmeyi başardığı [**bu yazıda**](https://medium.com/@fpatrik/how-i-found-an-xss-vulnerability-via-using-emojis-7ad72de49209) olan durumdur. Bu durumda, hata, sunucunun kötü niyetli karakterleri kaldırdıktan sonra **Windows-1252'den UTF-8'e UTF-8 dizesini dönüştürmesiydi** (temelde giriş kodlaması ve dönüştürme kodlaması uyuşmazlığı). Bu, düzgün bir < vermez, sadece tuhaf bir unicode verir: `‹`\ ``Bu çıktıyı alıp **şimdi UTF-8'den ASCII'ye dönüştürdüler**. Bu, `‹`'yi `<'ye **normalleştirdi** ve bu, bu sistemdeki istismarın nasıl çalışabileceğidir.\ İşte olanlar: ```php