Hoşgeldin Misafir

WEB | OWASP TOP 10 |Host Header Injection

Reisci

Reisci

Yerli Ve Milli Hacker
11 Mar 2020
6,569 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
WEB | OWASP TOP 10 | Host Header Injection


Başlık anlamına gelen Header bir web sitesindeki bazı bilgileri ve genel tanımlamaların bulunduğu metindir. Bu bilgi üzerinde değişiklik yaparak zaafiyet oluşturma durumuna Host Header Injection denir.

Application.security üzerinden bu zaafiyeti nasıl sömürdüğümüzü inceleyelim.


DesignDECK adlı bir tasarım sitesi üzerinde Host Header Injection zaafiyeti arayacağız. Saldırganımız Bob giriş sayfası üzerinden Forgot my password tıklayarak şifre sıfırlama bağlantısı göndermeyi dener.

4jwv3ts.png


mail adresini girerek devam ettikten sonra

hamneno.png


Bir web proxy kullanarak HTTP isteklerini inceler. Email değişkeniyle verdiğimiz değerin gönderildiğini görüyoruz. İlerlemeden önce parola sıfırlama işleminin kaynak kodlarını bir inceleyelim.

s3tuklh.png


Altı çizili yerlerde görüldüğü üzere alınan değerler sendEmail methoduna parametre olarak veriliyor. Header içinde gönderilen host değişkenini kendimiz manipüle etmeyi deneyelim.

7zs6hfo.png


Görüldüğü gibi host değerini www.abcd.com ile değiştirdik ve gönderdiğimizde

hyrn531.png


Şifre sıfırlama bağlantısının e-posta adresimize gönderildiği uyarısını aldık.Ardından e-posta adresimize girip gelen maili açtığımızda

enrcda8.png


Şifre sıfırlama bağlantısının bizim verdiğimiz host değeri alınarak oluşturulduğu gözüküyor.Zaafiyet bulduğumuza göre sömürmeyi deneyelim.

e3owx2z.png


saldırganımız www.designdeck1.com adıyla fake bir web sitesi oluşturduktan sonra sunucuda tail -f /www/access.log komutunu çalıştırarak son gelen istekleri dinleyeme başlar.

34zlukz.png


Şifre sıfırlama bağlantısını gönderirken host bilgisini kendi oluşturduğumuz web sitesi ile değiştiriyoruz.

hku0m1r.png


E-posta adresini kontrol ettiğimizde şifre sıfırlama bağlantısında oluşturduğumuz fake adres gözüküyor. Bağlantıya tıkladığımızda

1ot4b71.png


Access.log dosyasına GET isteğiyle şifre sıfırlama tokenini düştüğü gözüküyor.Bu şekild zaafiyeti sömürmüş oluyoruz.Gelin kodları fixlemek için nasıl bir yol izlendiğine bakalım.

1gfdzqa.png


Bir önceki kaynak kodlar ile karşılaştırıldığında kırmızı ile işaretlediğim yerde bir array içerisine kullanıcak host(domain) adresleri sabit olarak belirtiliyor bu şekilde dışarıdan host injection saldırısı yapmanın önüne geçiliyor.​