Görev ve Zafiyet Senaryosu
Uygulama şifre sıfırlama linkini https:// + req.headers["host"] + "/reset-password?token=XYZ olarak oluşturmaktadır. Saldırgan Host başlığına kendi sunucusunu enjekte eder. Yönetici sıfırlama linkine tıkladığında token saldırganın sunucusuna sızar.
Hedef (Objective)
🎯 Görev: Şifre sıfırlama isteğinde Host başlığını saldırgan sunucusu (attacker.local) olarak değiştirin, yöneticiye giden sıfırlama linkini zehirleyin ve bayrağı kapın.
Adım Adım Çözüm Metodolojisi
Şifre Sıfırlama Akışını İnceleme
/forgot-password sayfasında admin e-postası için sıfırlama isteği oluşturun.
Host Başlığı Manipülasyonu
Repeater sekmesinde Host: corp-portal.local başlığını Host: attacker.local ile değiştirin.
Zehirli Token Yakalama
İsteği gönderdiğinizde oluşturulan sıfırlama bağlantısının zehirlendiğini ve bayrağın açığa çıktığını gözlemleyin.
Örnek Payload ve İstismar Kalıpları
Host: attacker.localHost: corp-portal.local:attacker.localX-Forwarded-Host: attacker.local
Güvenli Kodlama ve Savunma Mekanizmaları
Zafiyet Nasıl Kapatılır?
- Host başlığını asla dinamik bağlantı oluştururken doğrudan kullanmayın; sunucu yapılandırmasında sabit bir SERVER_NAME tanımlayın.
- Ters vekil sunucularda (Nginx / Cloudflare) yalnızca izin verilen Host başlıklarını kabul eden sanal sunucu kuralları uygulayın.
- X-Forwarded-Host ve benzeri geçersiz vekil başlıklarını filtreleyin.
Uygulamaya Başlamaya Hazır mısınız?
SiberAdam interaktif arenasında hedef tarayıcı, DevTools ve CyberTerminal ile bayrağı hemen yakalayın.
Şimdi Çözmeye Başla ⚡