EN
EN

Open Redirect Zafiyeti


URL yeniden yönlendirme zafiyeti adından da anlaşılabileceği üzere saldırganların internet konumlarının istenilen dışında bir adrese yönlendirilmesiyle ortaya çıkan bir zafiyet türüdür. Yönlendirme, bir kullanıcının istenen URL'den farklı bir URL'ye gönderen bir HTTP yanıt kodudur. Saldırganlar, yönlendirmeleri bir web sitesinin yapısını değiştirmek, bir kullanıcı isteğini başka bir web sitesine iletmek ya da aynı içeriği birden fazla URL altında sunmak gibi birçok nedenle kullanırlar.

Açık yönlendirme, uygulamayı manipüle etmek için kullanılan bir zafiyettir ve kullanıcıları amaçlanan URL'den farklı bir URL'ye yönlendirmek için kullanılabilir. Bunun yapılması, kullanıcıyı farklı bir URL'ye yönlendiren parametreleri içeren URL'yi manipüle ederek gerçekleştirilebilir. Bu, çoğu uygulamada bulunan en yaygın zafiyetlerden biridir.

Örnek bir PHP kodu aşağıdaki gibidir:

$redirect_url = $_GET["url"];

header("Location: " . $redirect_url);

Açık yönlendirme zafiyeti, bir web sitesinde veya bir hizmette güvensiz giriş doğrulamasından ya da parametre manipülasyonuna izin veren durumlardan kaynaklanmaktadır. Yönlendirme yaparak saldırganlar, kullanıcıların kimlik bilgilerini çalabilir, kullanıcıları dolandırıcılık sitelerine yönlendirebilir ve daha fazla kötü niyetli eylem gerçekleştirebilmektedirler.

Open Redirect Zafiyetinin Türleri

Header Tabanlı Açık Yönlendirmeler

Bu tür zafiyet temelde JavaScript’ten bağımsızdır ve çoğu vakada saldırganlar hedeflenen kullanıcıyı başka bir web sitesine başarıyla yönlendirmek için bu taktiği kullanırlar. Kullanıcı, URL'yi kodun içine eklenen herhangi bir eklemeye karşı dikkatlice kontrol etmiyorsa, basit ama aynı zamanda son derece etkili bir yöntemdir.

JavaScript tabanlı Açık Yönlendirmeler

Sunucu tarafındaki kod (sunucu taraflı fonksiyonlar), verileri ve talepleri doğrulamak ve ardından doğru verileri kullanıcıya göndermek gibi görevlerle ilgilenir. JavaScript tabanlı açık yönlendirmeler sunucu tarafındaki fonksiyonunu istenen biçimde yerine getiremez ve web tarayıcısı sömürüye açık hale gelir.

Açık Yönlendirme Zafiyeti Nasıl Önlenir?

Açık yönlendirme zafiyetlerini önlemenin en kolay ve etkili yolu, kullanıcının sayfanızı hangi yöne yönlendireceğini kontrol etmesine izin vermemektir. Eğer kullanıcının URL'ler temelinde yönlendirilmesi gerekiyorsa, doğrulanmamış giriş fonksiyonu yerine her zaman bir ID ile kullanmalısınız ve bu ID, ilgili URL'ye içsel olarak çözümlenmelidir. Kullanıcıların yönlendirme yapmasını istiyorsanız, kullanıcının sadece yönlendirmesini sağlayan bir bağlantıya tıklamasını gerektiren bir yönlendirme sayfası (geçiş sayfası) kullanmalısınız. Ayrıca, URL'nin http:// veya https:// ile başladığını kontrol etmeli ve “javascript:” gibi kötü niyetli şemaların kullanılmasını önlemek için diğer tüm URL'leri geçersiz kılmalısınız.

Zafiyet Sınıflandırma ve Risk Derecelendirme Tablosu

Sınıflandırma

ID

OWASP 2013

A10

CWE

601

WASC

38

CVSS:3.0

CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N

Netsparker

Medium

Kaynakça:

https://brightsec.com/blog/open-redirect-vulnerabilities/

https://www.invicti.com/blog/web-security/open-redirection-vulnerability-information-prevention/

Yazar: Eren ÖKSÜZ / BeyazNet Bilgi Sistemleri Analisti