Doğrulanmayan Yönlendirme / İletme Açıklığı (Unvalidated Redirects and Forwards)

İlgili açıklık OWASP listesinde en sık karşılaşılan web
uygulama güvenlik açıklıkları listesinde 10. sırada bulunmaktadır. Unvalidated
Redirect ve Unvalidated Forward işlemleri birbirinden farklı iki durumdur.
Temelde redirect işleminde uzak bir uygulamaya erişim gerçekleştirilirken,
forwarding işleminde local uygulamanın bir dosyasına erişim söz konusudur.

Doğrulanmamış yönlendirmeler ile mevcut uygulama
parametreleri değiştirilerek uygulamanın farklı içeriklere yönlendirilmesi
sağlanılabilmektedir. Zararlı yazılım bulaştırma veya sosyal mühendislik
yöntemleri kullanılarak çeşitli saldırılar gerçekleştirilebilir. Temelde
kullanıcı girdilerinin kontrolsüz kullanımından kaynaklanmaktadır. Girdilerin
önceden oluşturulmuş bir whitelist içeriği ile kıyaslanarak yönlendirme
işlemine tabi tutulması gerekmektedir.
Test edilen bir web uygulamasının ilgili açıklığı barındırıp
barındırmadığının tespiti için temelde bakılması gereken noktalar aşağıdaki
gibidir.
1.  Kaynak koda erişim mümkünse mevcut
parametrelerin yaptığı yönlendirme için bir whitelist oluşuturulup
oluşturulmadığı incelenebilir. Sadece whitelist içersindeki bağlantılara
yönlendirme gerçekleştirilsin gibi bir geliştirme yok ise uygulama açıklığı
barındırdığı söylenebilir.
2.    
Uygulama crawl edilerek http response kodları
incelenerek redirect yapılan bölümler tespit edilebilir. En sık kullanılan
yönlendirme http response kodu 302’dir. 300-307 arasındaki kodlardan herhangi
biride kullanılabilmektedir. İlgili http response kodlarından biriyle
karşılaşılması durumunda farklı girdiler sisteme sağlanarak açıklık test
edilebilir.
3.    
Kod denetimi yapılmadan doğrudan uzak bir göz
ile uygulama test edilmekte ise doğrudan mevcut tüm parametreler için
yönlendirme veya forwarding yapılıp yapılmadığı incelenmeli. Bu şekilde
açıklığı barındıran parametreler tespit edilebilir.
Aşağıdaki URL üzerindeki ‘r’ parametresinin ilgili açıklığı üzerinde barındırıp barındırmadığının
tespiti için referans gösterilen bağlantı değiştirilerek yönlendirmenin yapılıp
yapılmadığı tespit edilebilir.
Doğrulanmamış bir yönlendirmeye açık bir uygulama aşağıdaki
gibi farklı bir uygulamaya yönlendirme gerçekleşecektir. Biz örneğimizde
bga.com.tr domainine yönlendirdik.