5.4 KiB
Unicode Injection
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da 🐦 @hacktricks_live'i takip edin.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
Giriş
Arka uç/ön uç, garip unicode karakterleri aldığında nasıl davranıyorsa, bir saldırgan korumaları atlayabilir ve rastgele karakterler enjekte edebilir. Bu karakterler, XSS veya SQLi gibi enjeksiyon zafiyetlerini kötüye kullanmak için kullanılabilir.
Unicode Normalizasyonu
Unicode normalizasyonu, unicode karakterlerinin ascii karakterlerine normalleştirildiği durumlarda 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:
{% content-ref url="unicode-normalization.md" %} unicode-normalization.md {% endcontent-ref %}
\u
ile %
Unicode karakterleri genellikle \u
ön eki ile temsil edilir. Örneğin, 㱋
karakteri \u3c4b
dir (buradan kontrol edin). Eğer bir arka uç \u
ön ekini %
'ye dönüştürürse, sonuçta elde edilen dize %3c4b
olacaktır, bu da URL çözümlendiğinde: <4b
olur. Ve, görebileceğiniz gibi, bir <
karakteri enjekte edilmiştir.
Eğer arka uç zayıfsa, bu tekniği herhangi bir tür karakteri enjekte etmek için kullanabilirsiniz.
Gerekli 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 gelmektedir, daha derin bir açıklama için https://www.youtube.com/watch?v=aUsAHb0E7Cg adresine bakın.
Emoji Enjeksiyonu
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ükle XSS elde etmeyi başardığı bu yazıda 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ürmesidir (temelde giriş kodlaması ve dönüştürme kodlaması uyuşmazlığı). Bu, doğru bir < vermek yerine sadece tuhaf bir unicode verir: ‹
``Bu çıktıyı alıp şimdi UTF-8'den ASCII'ye dönüştürdüler. Bu, ‹
'yi <
olarak normalleştirdi, bu da bu sistemdeki istismarı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:
- https://github.com/iorch/jakaton_feminicidios/blob/master/data/emojis.csv
- https://unicode.org/emoji/charts-14.0/full-emoji-list.html
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.