Web Security Academy | CSRF - Lab 2

19 Ağu 2021
63
2
44
İzmir
Merhabalar,

Bugünkü konuda Portswigger firmasının kendini geliştirmek isteyenler için oluşturmuş olduğu Web Security Academy içerisinde bulunan CSRF where token validation depends on request method adlı labın çözümünü anlatacağım.

İlgili lab linki: Lab: CSRF where token validation depends on request method | Web Security Academy

Bir önceki lab çözümünden farklı olarak lab ismine baktığımızda ne gibi bir içerikle karşılacağımızı kestirmek mümkün. Http request metoduna göre token doğrulaması. Bir önceki konumdan hatırlayacak olursak requestimiz POST metodu ile gitmişti. O zaman bu sefer diğer http metodlarını kullanmayı deneyebiliriz. Bir önceki konuyu okumayanlar buradan ulaşabilirler -> Web Security Academy | CSRF - Lab 1

Bir önceki labda olduğu gibi CSRF açığının web uygulamasındaki kullanıcıların email değiştirme fonksiyonunda ortaya çıktığını biliyoruz. Bu yüzden doğrudan web uygulamasına eriştikten sonra login olarak devam edebiliriz.

9jyp99o.png

f7a4bwx.png


Bu labın bir öncekinden farkı olarak zafiyetin giden request metodunda olduğunu biliyoruz. Bunun sebebi genellikle web uygulamarında POST metodu bilindiği üzere veri göndermek için kullanılmaktadır fakat GET'in asıl amacı veri göndermek değildir. Bu yüzden GET metodu üzerinden veri göndermeyi denediğimizde CSRF bypass durumu oluşabilmektedir.

Aşağıdaki görseldeki gibi basitçe giden pakete sağ tıklayarak Change request method dediğimiz zaman Burp bizim için metodu GET olarak uygun şekilde düzenliyor.

pro5ox6.png

fvxfdaz.png


Bunu yaptığımızda bizden POST metodu ile veri bekleyen back-end web uygulaması GET ile veri almayı beklemediği için üzerinde CSRF tokeni olup olmadığını incelemiyor. Bu yüzden parametreden csrf kısmını tamamen silebiliriz. Sildikten sonra giden talebin yanıtının başarılı olduğunu görebiliriz.

mczc3l2.png


Görüldüğü üzere 302 redirect aldık, follow redirection diyerek csrf tokensiz mail değiştirebildiğimizi artık kanıtlamış olduk. Bundan sonra CSRF PoC oluşturarak exploitimizi victim'a gönderebiliriz.
Bunun için kullandığım PoC bu şekilde;

HTML:
<html>
  <!-- CSRF PoC - generated by Burp Suite Professional -->
  <body>
  <script>history.pushState('', '', '/')</script>
    <form action="https://SIZIN-LAB-ID.web-security-academy.net/my-account/change-email">
      <input type="hidden" name="email" value="fahrettin&#64;altay&#46;tht" />
      <input type="submit" value="Submit request" />
    </form>
    <script>
      document.forms[0].submit();
    </script>
  </body>
</html>

Bir önceki lab gösterdiğim gibi exploit server kısmına gidiyoruz. Sunucuya kodumuzu upload etmek için Store seçiyor ve daha sonra seneryomuzdaki ilgili victim'a kendi upload ettiğimiz siteye yönlendiriyoruz.

buu8ixg.png


İşlemleri benim gibi uyguladığınız taktirde sorunsuz bir şekilde labı başarı ile çözdüğümüzü görüyoruz.

lo9sa7s.png


Okuduğunuz için teşekkür ederim, işinize yaradıysa ne mutlu bana. Anlamadığınız veya takıldığınız bir yer olursa sormaktan çekinmeyin, elimden geldiğince yardımcı olmaya çalışırım. :)
 
Son düzenleme:

Blwe

Uzman üye
17 Şub 2021
1,579
17
1,644
Green/Moderasyon
Merhabalar,

Bugünkü konuda Portswigger firmasının kendini geliştirmek isteyenler için oluşturmuş olduğu Web Security Academy içerisinde bulunan CSRF where token validation depends on request method adlı labın çözümünü anlatacağım.

İlgili lab linki: Lab: CSRF where token validation depends on request method | Web Security Academy

Bir önceki lab çözümünden farklı olarak lab ismine baktığımızda ne gibi bir içerikle karşılacağımızı kestirmek mümkün. Http request metoduna göre token doğrulaması. Bir önceki konumdan hatırlayacak olursak requestimiz POST metodu ile gitmişti. O zaman bu sefer diğer http metodlarını kullanmayı deneyebiliriz. Bir önceki konuyu okumayanlar buradan ulaşabilirler -> Web Security Academy | CSRF - Lab 1

Bir önceki labda olduğu gibi CSRF açığının web uygulamasındaki kullanıcıların email değiştirme fonksiyonunda ortaya çıktığını biliyoruz. Bu yüzden doğrudan web uygulamasına eriştikten sonra login olarak devam edebiliriz.

Vbhs8S.png

VbhDLs.png


Bu labın bir öncekinden farkı olarak zafiyetin giden request metodunda olduğunu biliyoruz. Bunun sebebi genellikle web uygulamarında POST metodu bilindiği üzere veri göndermek için kullanılmaktadır fakat GET'in asıl amacı veri göndermek değildir. Bu yüzden GET metodu üzerinden veri göndermeyi denediğimizde CSRF bypass durumu oluşabilmektedir.

Aşağıdaki görseldeki gibi basitçe giden pakete sağ tıklayarak Change request method dediğimiz zaman Burp bizim için metodu GET olarak uygun şekilde düzenliyor.

V4MzNq.png

V4MUmx.png


Bunu yaptığımızda bizden POST metodu ile veri bekleyen back-end web uygulaması GET ile veri almayı beklemediği için üzerinde CSRF tokeni olup olmadığını incelemiyor. Bu yüzden parametreden csrf kısmını tamamen silebiliriz. Sildikten sonra giden talebin yanıtının başarılı olduğunu görebiliriz.

V4M9mU.png


Görüldüğü üzere 302 redirect aldık, follow redirection diyerek csrf tokensiz mail değiştirebildiğimizi artık kanıtlamış olduk. Bundan sonra CSRF PoC oluşturarak exploitimizi victim'a gönderebiliriz.
Bunun için kullandığım PoC bu şekilde;

HTML:
<html>
  <!-- CSRF PoC - generated by Burp Suite Professional -->
  <body>
  <script>history.pushState('', '', '/')</script>
    <form action="https://SIZIN-LAB-ID.web-security-academy.net/my-account/change-email">
      <input type="hidden" name="email" value="fahrettin&#64;altay&#46;tht" />
      <input type="submit" value="Submit request" />
    </form>
    <script>
      document.forms[0].submit();
    </script>
  </body>
</html>

Bir önceki lab gösterdiğim gibi exploit server kısmına gidiyoruz. Sunucuya kodumuzu upload etmek için Store seçiyor ve daha sonra seneryomuzdaki ilgili victim'a kendi upload ettiğimiz siteye yönlendiriyoruz.

V4ZEAb.png


İşlemleri benim gibi uyguladığınız taktirde sorunsuz bir şekilde labı başarı ile çözdüğümüzü görüyoruz.

Vbi5mc.png


Okuduğunuz için teşekkür ederim, işinize yaradıysa ne mutlu bana. Anlamadığınız veya takıldığınız bir yer olursa sormaktan çekinmeyin, elimden geldiğince yardımcı olmaya çalışırım. :)
Eline sağlık..
 

JohnWick51

Uzman üye
20 Mar 2022
1,867
770
28
Merhabalar,

Bugünkü konuda Portswigger firmasının kendini geliştirmek isteyenler için oluşturmuş olduğu Web Security Academy içerisinde bulunan CSRF where token validation depends on request method adlı labın çözümünü anlatacağım.

İlgili lab linki: Lab: CSRF where token validation depends on request method | Web Security Academy

Bir önceki lab çözümünden farklı olarak lab ismine baktığımızda ne gibi bir içerikle karşılacağımızı kestirmek mümkün. Http request metoduna göre token doğrulaması. Bir önceki konumdan hatırlayacak olursak requestimiz POST metodu ile gitmişti. O zaman bu sefer diğer http metodlarını kullanmayı deneyebiliriz. Bir önceki konuyu okumayanlar buradan ulaşabilirler -> Web Security Academy | CSRF - Lab 1

Bir önceki labda olduğu gibi CSRF açığının web uygulamasındaki kullanıcıların email değiştirme fonksiyonunda ortaya çıktığını biliyoruz. Bu yüzden doğrudan web uygulamasına eriştikten sonra login olarak devam edebiliriz.

9jyp99o.png

f7a4bwx.png


Bu labın bir öncekinden farkı olarak zafiyetin giden request metodunda olduğunu biliyoruz. Bunun sebebi genellikle web uygulamarında POST metodu bilindiği üzere veri göndermek için kullanılmaktadır fakat GET'in asıl amacı veri göndermek değildir. Bu yüzden GET metodu üzerinden veri göndermeyi denediğimizde CSRF bypass durumu oluşabilmektedir.

Aşağıdaki görseldeki gibi basitçe giden pakete sağ tıklayarak Change request method dediğimiz zaman Burp bizim için metodu GET olarak uygun şekilde düzenliyor.

pro5ox6.png

fvxfdaz.png


Bunu yaptığımızda bizden POST metodu ile veri bekleyen back-end web uygulaması GET ile veri almayı beklemediği için üzerinde CSRF tokeni olup olmadığını incelemiyor. Bu yüzden parametreden csrf kısmını tamamen silebiliriz. Sildikten sonra giden talebin yanıtının başarılı olduğunu görebiliriz.

mczc3l2.png


Görüldüğü üzere 302 redirect aldık, follow redirection diyerek csrf tokensiz mail değiştirebildiğimizi artık kanıtlamış olduk. Bundan sonra CSRF PoC oluşturarak exploitimizi victim'a gönderebiliriz.
Bunun için kullandığım PoC bu şekilde;

HTML:
<html>
  <!-- CSRF PoC - generated by Burp Suite Professional -->
  <body>
  <script>history.pushState('', '', '/')</script>
    <form action="https://SIZIN-LAB-ID.web-security-academy.net/my-account/change-email">
      <input type="hidden" name="email" value="fahrettin&#64;altay&#46;tht" />
      <input type="submit" value="Submit request" />
    </form>
    <script>
      document.forms[0].submit();
    </script>
  </body>
</html>

Bir önceki lab gösterdiğim gibi exploit server kısmına gidiyoruz. Sunucuya kodumuzu upload etmek için Store seçiyor ve daha sonra seneryomuzdaki ilgili victim'a kendi upload ettiğimiz siteye yönlendiriyoruz.

buu8ixg.png


İşlemleri benim gibi uyguladığınız taktirde sorunsuz bir şekilde labı başarı ile çözdüğümüzü görüyoruz.

lo9sa7s.png


Okuduğunuz için teşekkür ederim, işinize yaradıysa ne mutlu bana. Anlamadığınız veya takıldığınız bir yer olursa sormaktan çekinmeyin, elimden geldiğince yardımcı olmaya çalışırım. :)
Ellerine saglik. Guzel olmus
 

Merve666**

Yeni üye
10 Haz 2022
11
31
Merhabalar,

Bugünkü konuda Portswigger firmasının kendini geliştirmek isteyenler için oluşturmuş olduğu Web Security Academy içerisinde bulunan CSRF where token validation depends on request method adlı labın çözümünü anlatacağım.

İlgili lab linki: Lab: CSRF where token validation depends on request method | Web Security Academy

Bir önceki lab çözümünden farklı olarak lab ismine baktığımızda ne gibi bir içerikle karşılacağımızı kestirmek mümkün. Http request metoduna göre token doğrulaması. Bir önceki konumdan hatırlayacak olursak requestimiz POST metodu ile gitmişti. O zaman bu sefer diğer http metodlarını kullanmayı deneyebiliriz. Bir önceki konuyu okumayanlar buradan ulaşabilirler -> Web Security Academy | CSRF - Lab 1

Bir önceki labda olduğu gibi CSRF açığının web uygulamasındaki kullanıcıların email değiştirme fonksiyonunda ortaya çıktığını biliyoruz. Bu yüzden doğrudan web uygulamasına eriştikten sonra login olarak devam edebiliriz.

9jyp99o.png

f7a4bwx.png


Bu labın bir öncekinden farkı olarak zafiyetin giden request metodunda olduğunu biliyoruz. Bunun sebebi genellikle web uygulamarında POST metodu bilindiği üzere veri göndermek için kullanılmaktadır fakat GET'in asıl amacı veri göndermek değildir. Bu yüzden GET metodu üzerinden veri göndermeyi denediğimizde CSRF bypass durumu oluşabilmektedir.

Aşağıdaki görseldeki gibi basitçe giden pakete sağ tıklayarak Change request method dediğimiz zaman Burp bizim için metodu GET olarak uygun şekilde düzenliyor.

pro5ox6.png

fvxfdaz.png


Bunu yaptığımızda bizden POST metodu ile veri bekleyen back-end web uygulaması GET ile veri almayı beklemediği için üzerinde CSRF tokeni olup olmadığını incelemiyor. Bu yüzden parametreden csrf kısmını tamamen silebiliriz. Sildikten sonra giden talebin yanıtının başarılı olduğunu görebiliriz.

mczc3l2.png


Görüldüğü üzere 302 redirect aldık, follow redirection diyerek csrf tokensiz mail değiştirebildiğimizi artık kanıtlamış olduk. Bundan sonra CSRF PoC oluşturarak exploitimizi victim'a gönderebiliriz.
Bunun için kullandığım PoC bu şekilde;

HTML:
<html>
  <!-- CSRF PoC - generated by Burp Suite Professional -->
  <body>
  <script>history.pushState('', '', '/')</script>
    <form action="https://SIZIN-LAB-ID.web-security-academy.net/my-account/change-email">
      <input type="hidden" name="email" value="fahrettin&#64;altay&#46;tht" />
      <input type="submit" value="Submit request" />
    </form>
    <script>
      document.forms[0].submit();
    </script>
  </body>
</html>

Bir önceki lab gösterdiğim gibi exploit server kısmına gidiyoruz. Sunucuya kodumuzu upload etmek için Store seçiyor ve daha sonra seneryomuzdaki ilgili victim'a kendi upload ettiğimiz siteye yönlendiriyoruz.

buu8ixg.png


İşlemleri benim gibi uyguladığınız taktirde sorunsuz bir şekilde labı başarı ile çözdüğümüzü görüyoruz.

lo9sa7s.png


Okuduğunuz için teşekkür ederim, işinize yaradıysa ne mutlu bana. Anlamadığınız veya takıldığınız bir yer olursa sormaktan çekinmeyin, elimden geldiğince yardımcı olmaya çalışırım. :)
Ellerine sağlık 😌
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.