Sitemap
İlteriş Kaan Pehlivan

İlteriş Kaan Pehlivan

3+ yıl kurumsal deneyime sahip, güvenlik açıklarının değerlendirilmesi ve azaltılmasına odaklanan, sonuç odaklı bir Sızma Testi Uzmanıyım.

Lab: DOM-based open redirection

4 min readNov 25, 2022

Merhabalar herkese,

Bugün sizlere “https://portswigger.net/web-security/dom-based/open-redirection/lab-dom-open-redirection” bağlantısındaki “Lab: DOM-based open redirection” başlıklı laboratuvar ortamının çözümünü aktaracağım.

HTML (Hypertext Markup Language/Hiper Metin İşaretleme Dili), internet üzerinden alınan materyalleri görüntülemek için kullanılan standart bir biçimlendirme sistemidir. İnternet üzerinden çağrılan her bir birim web sayfası olarak adlandırılmaktadır. HTML, web sayfasının yapısını tanımlamaktadır. Genellikle web sayfaları başka web sayfalarını çağırmayı sağlayan başka HTML bağlantıları da içermektedir.

JavaScript, web sayfası hareketleri için istemci (client) tarafında JavaScript kullanılmaktadır ve kullanılan kodlar genellikle üçüncü taraf kitaplıkları içermektedir.

DOM (Document Object Model/Belge Nesnesi Model), internet tarayıcıları kendi bünyesine girilen herhangi bir internet sitesini bir belge, söz konusu bu belge içerisinde bulunan tüm elemanları da nesne olarak kabul görmektedir.

Open Redirect (Açık Yeniden Yönlendirme), kısacası bir URL adresini farklı bir URL adresine veya adreslerine saldırgan veyahut saldırganların yönlendirebilmesini sağlayan güvenlik açığıdır.

Genellikle yalnızca JavaScript programlama diliyle de Open Redirect (Açık Yeniden Yönlendirme) zafiyeti sömürülebilse de tamamlayacağımız laboratuvar ortamının HTML içermesinden HTML türünü sizlerin huzurunda göstereceğiz fakat sanmayınız ki ekstradan farklılıklar baş gösterebildiğini. Hayır, farklılık yalnızca HTML kodlarını yerine JavaScript kodları yerleştirmeyle olmaktadır ki her iki farklı dili bütün halinde kullanıp zafiyetin sömürülebilme durumları da mantıksal perspektiften göz atmanızla apaçık ortadadır.

Aşağıdaki görselde yer alan “Access the lab” butonuna basarak laboratuvar ortamına giriş yapmayla başlıyoruz.

Press enter or click to view image in full size

İlgili butona basmamızla laboratuvar ortamının girişine yönlendirilmekteyiz.

Press enter or click to view image in full size

Adrese erişim sağlamamızın sonrasında aşağıdaki “https://portswigger.net/web-security/dom-based/open-redirection/lab-dom-open-redirection” bağlantısındaki “Solution” alanındaki yönlendirmelerle zafiyeti istismar etmeye başlıyoruz.

Press enter or click to view image in full size

“Access the lab” butonuna basarak yönlendirildiğimiz adreste herhangi bir gönderinin içeriğini -“View post” butonuna basarak- gidiyoruz. Bizler örnek olması açısından “https://0ad000b6041f2478c0dd162f005f00fa.web-security-academy.net/post?postId=4” bağlantısındaki “Passwords” başlıklı gönderinin (post) içeriğine gittik. İlgili adresimizdeyken sağ tıklayıp gelen seçenekler arasından “Sayfa kaynağını görüntüle” seçeneğine tıklayarak adresin kaynak kodlarını yeni sekme (new tab) açılmasıyla görüntüleyebilmekteyiz.

Press enter or click to view image in full size

“view-source:https://0ad000b6041f2478c0dd162f005f00fa.web-security-academy.net/post?postId=4” adresine gidip kodlar arasında bizlere “Soluiton” bölümünde belirtilen kod bloğunun varlığıyla karşılaşmaktayız. Ayrıca URL adresindeki “view-source” değeri sağ tıklayarak “Sayfa kaynağını görüntüle” butonuna tıklanmasıyla URL adresine tarayıcının anlayabilmesi amacıyla otomatikman başa eklenilen değeridir.

Press enter or click to view image in full size

a (anchor/çapa), yönlendirmeleri yapabilmemiz için kullanılan genel etikettir ve “href” kullanımamızdaki gayemiz ise farklı bir URL adresine yönlendirmemizdir. “location” yani Türkçe karşılığıyla lokasyon ise anlaşılacağı üzere yönlendirme konumu ifade etmektedir. “return” ise “if (eğer)” döngüsü içerisinde döndürülüp URL adresinin bloğa döndürmesini sağladığından zafiyetimize açık olduğunu bizlere “Solution” alanında belirtmişti de böylelikle doğrulayıp zafiyetin istismar edilme adımına doğru hızlıca geçiyoruz.

Get İlteriş Kaan Pehlivan’s stories in your inbox

Join Medium for free to get updates from this writer.

Öncelikle sayfa kaynak kodu sekmesini (tab) kapatarak sağ tıkladığımız sayfa orta üst bölümündeki “Go to exploit server” butonuna basmamızla “https://exploit-0a9400c9046024cac050161f0104006d.exploit-server.net/” adresine yönlendirilmekteyiz.

Press enter or click to view image in full size

“https://exploit-0a9400c9046024cac050161f0104006d.exploit-server.net/” bağlantısını “Acces the lab” butonuyla eriştiğimiz adresten seçtiğimiz “https://0ad000b6041f2478c0dd162f005f00fa.web-security-academy.net/post?postId=4” bağlantısındaki “Password” başlıklı gönderinin web sayfasına gelip URL adresinin sonuna “&” yani “ve” operatörü vasıtasıyla “url” değeri ekleyip karşısına “Go to exploit server” butonuyla yönlendirildiğimiz adresi girmemizle laboratuvar ortamını başarıyoruz.

Press enter or click to view image in full size

Tebrikler!

Not olarak geçilmesi gerektiğinden belirtmek isteriz ki kaynak okumadan yana zaman zaman problemler yaşayabiliyorsanız “https://portswigger.net/support/using-burp-to-test-for-open-redirections” adresindeki otomatize tarama metotu kullanımı konusuna göz atabilirsiniz.

Bu ve Benzeri Saldırılardan Hangi Yollarla Korunabiliriz?

  • Yönlendirmeleri olabildiğince kullanmamaya özen göstermelisiniz.
  • Bir hedef için kullanıcı girişi olarak URL girişlerine izin vermemelisiniz.
  • Kullanıcılardan bir URL’yi kabul etmek kesinlikle gerekliyse, kullanıcılardan sunucu tarafında tam hedef URL’ye eşlenen bir kısa ad, belirteç veya kimlik sağlamalarını istemelisiniz.
  • Kullanıcı girişi engellenemediğinde, sağlanan tüm değerlerin geçerli olduğundan, uygulamaya uygun olduğundan ve her kullanıcı için yetkilendirildiğinden emin olmalısınız.
  • Yönlendirmeleri, önce kullanıcılara web sitesinden yönlendirildiklerini bildiren bir sayfaya gitmeye zorlamalısınız.
  • Detaylı bilgiler için “https://brightsec.com/blog/open-redirect-vulnerabilities/” bağlantısını ziyaret edebilirsiniz.

Değerli vaktinizi ayırıp yazımı okuduğunuz için teşekkürlerimi takdim ederim ve iyi günler geçirmeniz dileklerimle.

--

--

İlteriş Kaan Pehlivan
İlteriş Kaan Pehlivan

Written by İlteriş Kaan Pehlivan

3+ yıl kurumsal deneyime sahip, güvenlik açıklarının değerlendirilmesi ve azaltılmasına odaklanan, sonuç odaklı bir Sızma Testi Uzmanıyım.