Register Now

Login

Lost Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Login

Register Now

Canyoupwn.me ~

TR | Infosecinstitute CTF – 2 Write Up

Selamlar.

İlk yazımı web üzerine beginner seviyenin biraz üzerinde bir online ctfin çözümlerini yaparak yazmak istedim.

Öncelikle CTFe buraya tıklayarak ulaşabilirsiniz.

En solda üst kısımda bir ‘Levels’ kısmı var. Oradan levelleri seçerek ilerlememiz gerekiyor.

Level 1 – Vulnerability: A3 Cross-Site Scripting (XSS)

İlk challengeda bizi aşağıdaki gibi bir sayfa karşılıyor olacak.

1

Sitename ve Siteurl kısımlarını ‘Öğeyi Denetle’ seçeneği ile biraz incelediğimizde ‘pattern=”[A-Za-z]+”‘ isimli kısmı görüyoruz ve ‘pattern=”*”‘ şekline getirerek sadece a-z arası karakterleri değil, tüm karakterleri ( /, ‘, vs) yazabilmeyi sağlıyoruz.

Ardından, Mozilla tarayıcımızda FireBug isimli eklentiyi yine Sitename ve Siteurl kısımlarını incelemek üzere kullanıyoruz ve dikkatimizi ext1.js dosyası dikkatimizi çekiyor. Firebug ile onu incelemeye devam ettiğimizde ise aşağıdaki gibi bir çıktıyla karşılaşıyoruz:

2

Burada aslında yapılan şey bir değiştirme olayı < > karakterlerini değiştiriyor eğer bu karakterleri girersek input alanlarına. Bunu aşmak için, bu kısmı aşağıdaki gibi editliyor ve kaydediyoruz.

3

Ardından, alanlara XSS payloadlarımızdan birisini yazarak alerti alıp leveli tamamlıyoruz.

 

Level 2 – Vulnerability: A1 Injection

Bu kısımda ise bizi bir hesap makinesi karşılıyor olacak.

4

 

Burada ben ‘Get a Hint’ kısmını spamleyerek tüm hintleri almayı tercih ettim. 😀

İlk ipucunda bir eval kısmını bypass etmemiz gerektiğini söylüyor.

İkinci ipucunda boşlukların ikisininde rakamlarla doldurulması gerektiğini bize şimdi neyi değiştireceğimizi soruyor.

Üçüncü ve son ipucunda ise phpinfo() okumamız gerektiğini söylüyor ve bizde burda bir ‘Code Injection’ zaafiyetinin bulunduğunu ve bunu sömürmemiz gerektiğini anlıyoruz. Burada bize en yardımcı olacak araç şüphesiz ki BurpSuite.

BurpSuitei açıyoruz. ‘Proxy’ sekmesinden ‘Intercept On’ olarak ayarlıyoruz. Ardından, herhangi 2 rakamla işlem yapmaya çalışıyoruz ve BurpSuite ile araya girmişken değerleri aşağıdaki gibi ayarlıyoruz ve sayfaya gönderiyoruz.

5

Leveli tamamlayınca şu şekilde bir çıktı alacaksınız:

6

 

Level 3 – Vulnerability: Data Validation; Parameter Delimiter

Bu challengeda ise bizi aşağıdaki gibi bir ekran karşılayacak.

7

İpucu almak istediğimizde ise bize şunu veriyor ‘The delimiter used to separate fields like username and password is just a newline’ yani diyor ki olay şundan ibaret, kullanıcı adı ve şifreleri yeni satırlarmış gibi ayıran bir ayıraç var. Yani bizim kendimizi ‘admin’ rolünde kayıt ettirmek için ‘role’ değişkenini yeni bir satır olarak eklememiz gerek. Bunun için yine canımız ciğerimiz BurpSuite ile araya giriyoruz ve aşağıdaki şekilde manupile edip veriyi gönderiyoruz ardından leveli geçmiş oluyoruz.

8

 

Level 4 – Vulnerability: A4 Insecure Direct Object References

4.levele yöneldiğimizde aşağıdaki gibi bir sayfa ile karşılaşıyor ve okumaya koyuluyoruz.

9

Şimdi yukarıdaki kısımda sayfalarını görüntülemek için .txt uzantılı dosyalar yükleyen bir websitesiyle karşı karşıya olduğumuzu söylüyor. Görevimizi de sitenin ‘root’ kısmındaki bir PHP dosyasını hata almadan oraya injecte etmemizi istemiş.

URL’i şu şekle getirip leveli geçiyoruz:

http://ctf.infosecinstitute.com/ctf2/exercises/ex4.php?file=HTTP://infosecinstitute.com/dosya.txt.php

 

Level 5 – Vulnerability: A7 Missing Function Level Access Control 

Bizi şu şekilde bir sayfa karşılayacak.

10

İpucu olarak da HTTP Headerlar ile oynamamız gerektiğini söylüyor. Yukarıda bu sayfayı görmek için lütfen giriş yapın diyor. Oradaki loginin buton tarzında konulmuş olmasının bir sebebi olacağını düşünüp biraz ‘Ögeyi Denetle’ ile kurcaladım. Ve aşağıdaki /login.html sayfası olduğunu gösteren kısmı yakaladım.

11

Ardından bize HTTP Headerlar ile alakalı bir olay olduğunu açıklamıştı. Burada kullanmamız gereken HTTP Headeri Refferer. Reffererın ne işe yaradığını küçük bir google araştırması ile görebilirsiniz. Burp ile araya girip veriyi aşağıdaki şekle getiriyor ve leveli geçiyoruz.

12

 

Level 6 – Vulnerability: A8 Cross-Site Request Forgery (CSRF) 

Levela girdiğimizde bizi aşağıdaki gibi bir ekran karşılıyor:

14

CSRF zaafiyetini kullanarak site.com üzerinden bank.php dosyası ile ‘555’i hesabımıza geçirmemiz gerekiyor. Biraz Stored XSS zaafiyetini CSRF’ye çevirme tarzı bir soru olmuş. Aşağıdaki şekle getirip leveli geçiyoruz.

13

 

Level 7 – Vulnerability: A3 Cross-Site Scripting (XSS)

Challenge sayfasında bizi böyle bir ekran karşılayacak.

15

İpuçlarını aldığımıza ise, PHP_Self bugu olduğunu bildiriyor. Burada yapmamız gereken şey çok basit. URL kısmını aşağıdaki şekle getirdiğimizde leveli tamamlamış oluyoruz.

16

 

Level 8 – Vulnerability: File inclusion

Aşağıdaki gibi bir ekran challenge sayfasında bizi bekliyor olacak:

17

Bu level gerçekten çok fazla zamanımı aldı. Çok basit bir çözümü olduğunu görünce ekranı kırasım dahi geldi.

Bir txt dosyasının içine xss payloadı yazıp .jpeg olarak kaydediyoruz.

Ardından, dosyamıza şu şekilde ulaşıyor ve leveli geçiyoruz:

http://ctf.infosecinstitute.com/ctf2/exercises/ex8.php?file=dosyamız

 

 

Level 9 – Vulnerability: A2 Broken Authentication and Session Management

Challenge kısmı şu şekilde bizi karşılayacak:

19

John Doe olarak giriş yaptığımızı, Mary Jane olarak girmemiz gerektiğini söylüyor. Burada yine Burp ile araya giriyor ve sayfayı tekrar yüklüyoruz.

21

Burada işaretlemiş olduğumuz ‘user’ kısmındaki değer Base64 şifrelemesi ile encode edilmiş. Bunu çözdüğümüzde aşağıdaki gibi bir ekranla karşılaşıyoruz.

22

Yapmamız gereken şey ‘MARY+JANE’ değerini Base64 encode hale getirip, Burp ile araya girdikten sonra yine ‘user’ değişkenine eklemek olacak. Bu şekilde leveli tamamlıyoruz.

 

Level 10 – Vulnerability: Source Code Tampering

Beni en çok zorlayan soru buydu. Aşağıdaki gibi bir ekranla karşılaşıyoruz girince:

23

Oradaki sarı kısmı ‘Öğeyi Denetle’me kısmından detaylıca incelediğimizde ‘Hata Ayıklama’ kısmında bir bölüm var o bölümde, puanımızı 9999 yapmamız gerekecek. Gerekli şekilde orayı editliyoruz.

24

Ardından, oyunu başlattıktan sonra gelen renk kısımlarını da yine ‘Öğeyi Denetle’den aynı renk yapıp levelimizi geçiyoruz.

25
Level 11 – Vulnerability: Bypassing blacklists

Bu kısımda bizi biraz daha farklı bir ekran karşıladı. Burada aklıma ilk gelen şey yine HTTP trafiğini dinlemek oldu ve Burp ile araya girip siteyi tekrar açmaya çalıştım.

26

 

Tekrar açmaya çalışırken, Burpte Cookie değerinde ‘welcome=no’ yazısını ‘welcome=yes’ olarak değiştirdim ve devam ettim. Böylece leveli geçmiş bulundum.

27
Level 12 – Vulnerability: Dictionary Attack

Bu level klasik bir brute-force leveli. Bunun üzerinde fazla duracak bir şey yok. BurpSuite ile yine brute-force atak gerçekleştirebilirsiniz.

28

Yapmamız gereken şey ‘admin’ kullanıcı ismine brute force atak yapmak. Şifre olarak ‘princess’ değerini elde edebilirsiniz. Bu şekilde leveli tamamlamış oluyoruz.

29

 

Level 13 – Vulnerability: A10 Unvalidated Redirects and Forwards

Burada bizi karşılayan sayfa aşağıdaki şekilde:

30

İpuçlarından ve yazılardan da anlaşılacağı üzere burada bir ‘Open Redirection’ yani yönlendirme zaafiyeti söz konusu. Bunu URL’i şu şekle getirerek bypass ediyor ve CTF’i tamamlıyoruz:

http://ctf.infosecinstitute.com/ctf2/exercises/ex13.php?redirect=//canyoupwn.me

31

 

Anlamadığınız, eleştirmek istediğiniz, abi şunu neden şöyle yapmadın yaaa dediğiniz yerleri lütfen yorum olarak belirtiniz.

Yazımız burda sona eriyor.

About CanYouPwnMe

Hero!

Follow Me