Araştırma Kategorisi • Web Uygulama Güvenliği
Cross-Site Scripting (XSS), hedefin tarayıcısında JavaScript çalıştırmanın ötesinde; çerez hırsızlığı, keylogger kurma, tarayıcı kamerasına erişim ve tam hesap ele geçirme gibi zincirlenmiş saldırıların başlangıç noktasıdır. Bu makalede üç XSS türünü, gerçek bir saldırı senaryosunu ve CSP bypass yöntemlerini inceliyoruz.
| Tür | Kalıcılık | Konum | Hedef Sayısı |
|---|---|---|---|
| Reflected | Geçici | URL parametresi | Linke tıklayan kişi |
| Stored | Kalıcı (DB) | Yorum/profil/mesaj | Sayfayı ziyaret eden herkes |
| DOM-Based | Geçici | Tarayıcı DOM'u | Linke tıklayan kişi |
DOM-Based XSS'te zararlı kod sunucuya hiç ulaşmaz. Tarayıcının kendi JavaScript'i kullanıcı verisini güvenli olmayan kaynaklardan (Source) alıp güvenli olmayan fonksiyonlara (Sink) aktarır.
Tehlikeli Kaynaklar (Sources)
document.location.href
location.search
document.referrer
Tehlikeli Hedefler (Sinks)
element.innerHTML
document.write()
eval()
BeEF, XSS ile kurbanın tarayıcısını hook ederek komuta-kontrol sunucusuna bağlar. Çerez çalmak, keylogger kurmak, form phishing göstermek, ağ içi port taraması yapmak mümkün hale gelir.
CSP, hangi kaynakların script yükleyebileceğini belirten bir HTTP başlığıdır. Ancak yanlış yapılandırılmış CSP'ler bypass edilebilir.
Güvenli CSP; nonce veya hash tabanlı olmalı, unsafe-inline ve unsafe-eval içermemeli, wildcard (*) kullanılmamalıdır.