Açık yönlendirme: alan adın bir phishing linki olarak
Açık yönlendirme ziyaretçileri bir parametrenin söylediği herhangi bir adrese gönderir. Link güvenilir alan adınla başlar; vardığı sayfa ise başkasınındır.
Örnek
app.get("/learn", (req, res) => {
res.redirect(req.query.url);
});app.get("/learn", (req, res) => {
const target = String(req.query.url ?? "/");
// a single leading slash: same site only (not //evil.com, not /\evil.com)
const local = /^\/(?![\/\\])/.test(target);
res.redirect(local ? target : "/");
});Nasıl oluşur
Giriş akışları ve takip linkleri bir dönüş URL'si alır — ?next=, ?url=, ?redirect= — ve onu doğrudan res.redirect'e veya Location header'ına verir. Saldırganlar https://senin-siten.com/learn?url=https://senin-siten.login-kontrol.com gibi linkler gönderir; görsel kontrolü geçer ve giriş sayfanın bir kopyasına varır. OAuth akışlarıyla birleşince açık yönlendirme yetkilendirme kodlarını da sızdırabilir.
Nasıl düzeltilir
Yalnızca kastettiğin yere yönlendir.
- Tam olarak bir / ile başlayan göreli yollara izin ver
- Ya da hedefi bir host izin listesiyle karşılaştır
- Tarayıcıların başka host olarak gördüğü //evil.com ve /\evil.com'a dikkat et
- Mümkünse dönüş yolunu URL yerine sunucuda sakla
RepoVerse bunu nasıl bulur
- OrtaKullanıcının nereye yönlendirileceğine istek girdisi karar veriyor
Kendi alan adındaki bir link kurbanları herhangi bir siteye gönderir — ikna edici bir phishing sayfasının mekaniği budur.
veri akışı · CWE-601
- OrtaYönlendirme hedefi istekten alınıyor
İnsanların nereye gönderileceğine çağıran karar veriyor — kendi alan adında inandırıcı bir oltalama linkinin tüm mekaniği budur.
örüntü · CWE-601
Sorular
- Açık yönlendirme ciddi bir açık mı?
- Tek başına genelde orta derecede değerlendirilir ama phishing'i çok daha ikna edici yapar ve OAuth veya SSRF zayıflıklarıyla zincirlenerek daha kötü bir şeye dönüşebilir.
- RepoVerse açık yönlendirmeleri nasıl tespit ediyor?
- İstek girdisini res.redirect'e, Location header'larına ve framework yönlendirme yardımcılarına kadar izler; sabit bir yerel yolla başlayan hedefleri raporlamaz.
İlgili
- SSRF: sunucunun nereye bağlanacağına istek karar verdiğindeSSRF (CWE-918) isteğin sunucunun nereye bağlanacağını seçmesine nasıl izin verir — iç servisler, bulut metadata'sı — ve URL'ler nasıl güvenle kurulur.
- Siteler arası betik (XSS): nasıl çalışır, nasıl durdurulurYansıtılan, kalıcı ve DOM tabanlı XSS (CWE-79), zafiyetli ve düzeltilmiş kodla; ayrıca hasarı sınırlayan şablon, CSP ve cookie ayarları.
- Kod, secret ve bağımlılıklar için GitHub güvenlik taramasıGitHub reposunu injection açıkları, sızmış secret'lar ve zafiyetli bağımlılıklar için tara. İstekten tehlikeli çağrıya veri akışı izi ve çözüm önerileri.
Güncellendi 2026-10-11