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

Zafiyetli
app.get("/learn", (req, res) => {
  res.redirect(req.query.url);
});
Güvenli
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

Güncellendi 2026-10-11