Walkthrough

[TR] Root Me Web-Server Write Up

Reklam

[TR] Root Me Web-Server Write Up

HTML – Source code

 

Merhaba arkadaşlar siteye https://www.root-me.org/ ‘ den ulaşabilirsiniz.

Sayfaya girdikten sonra soruya Challenges > Web-Server kısmından erişebilirsiniz.

1.soru flag
1.soru flag

Sorunun adında verilen ipucundan dolayı Start Challenge dedikten sonra açılan sayfa da CTRL+U ile sayfa kaynağına gittikten sonra en alttaki çubuğu sağa doğru kaydırdığımız da karşımıza flag çıkmaktadır.

Flag = nZ^&@q5&sjJHev0

HTTP – Open redirect

 

Gördüğünüz üzere farklı sitelere yönlendirmeler yapıyor. Burp Suit ile araya girip inceledikten sonra url ve parametre olarak url’i md5 encode edilmiş olarak gönderiyor. Biz de bunu kendi isteğimiz doğrultusunda değiştiriyoruz ve flag karşımıza çıkıyor.

 

2.soru flag
2.soru flag

 

Flag = e6f8a530811d5a479812d7b82fc1a5c5

HTTP – User-agent

 

Soruda admin olmadığımız için erişemediğimizi söylüyor. Burp ile biraz inceliyoruz ve request kısmında

User-Agent diye bir yer görüyoruz. Burayı admin olarak değiştirip send ettikten sonra flag karşımıza çıkıyor.

3.soru flag
3.soru flag

 

Flag = rr$Li9%L34qd1AAe27

 

Weak password

 

Soruda belirtildiği gibi zayıf bir şifre olduğu yazıyor. Tabii ki akla gelen ilk şey;

kullanıcı: admin, password: admin olarak deniyoruz ve flag karşımıza çıkıyor.

 

4.soru flag
4.soru flag

 

Flag = admin

 

PHP – Command injection

Bize verilen input ve soruda verilen ipucundan dolayı komutlarla flag bulmamızı istiyor. 127.0.0.1&&ls ile olduğumuz dizinde her şeyi göstersin istiyoruz. Karşımıza index.php diye bir şey çıkıyor. index.php’nin içinde ne olduğunu öğrenmek için 127.0.0.1&&ls&&cat index.php ile içinde ne olduğuna dair bakıyoruz ve kaynak kodunda karşımıza flag çıkıyor.
5.soru flag
5.soru flag
Flag = S3rv1ceP1n9Sup3rS3cure

Backup file

Adından anlaşıldığı gibi yedek bir dosya olduğunu söylüyor yani bir dosya download edip flagin içinde olduğunu söylüyor. Url’nin sonuna index.php eklediğimiz zaman hiç bir şey değişmediğini görüyoruz dolayısıyla dosyanın adı index.php fakat download etmemiz gerekiyor bu yüzden dosyanın sonuna bir şey ekleyerek bulmaya çalışıyoruz. Uzun denemeler sonucunda tilde işareti olduğunu buldum. Yani url sonuna index.php~ yazdıktan sonra otomatik olarak index.php adında bir dosya iniyor.
Dosyayı notepad++ ile açtıktan sonra karşımıza kullanıcı adı ve şifrenin çıktığını görüyoruz.
6.soru flag
6.soru flag

Karşımıza çıkan kullanıcı adı ve şifreyi web sayfasında girdikten sonra flag’i password olarak veriyor.

Flag = OCCY9AcNm1tj

HTTP – Directory indexing

 

Soruda dediği gibi herhangi bir kod kullanmadan diğer dizinlere gidip flag’i bulacağız. Sayfa kaynağın da bize verdiği bilgi;

<!– include(“admin/pass.html”) –>

Url sonuna admin/pass.html ekleyip baktığımız da bize hala aramamızı söylüyor. admin/pass.html sonundaki pass.html silerek admin de ne var diye baktığımızda karşımıza dizinlerin bulunduğu sayfa geliyor.

7.soru flag
7.soru flag

 

pass.html içinde olmadığını biliyoruz dolayısıyla backup/admin.txt’e geçiş yaptığımız da karşımıza flag veriyor.

Flag = LINUX

 

HTTP – Headers

 

Sayfaya bir istek gönderirken, değeri yok olarak ayarlanmış “Header-Rootme-Admin” adlı bir başlık görüyorum.

Request kısmında Headers’a yeni bir Header-Rootme-Admin Header’i ekleyerek değerine de herhangi bir url ekliyorum.

8.soru flag
8.soru flag

 

Böyle bir istekte bulunduğum da ise bana flag’i dönüyor.

Flag = HeadersMayBeUseful

 

HTTP – POST

 

Give a try’a her bastığımız da bize farklı bir sayı dönüyor. Sayfa kaynağını görüntüleyip baktığımız da karşımıza

Js matematik işlemi
Js matematik işlemi

kod parçacığı çıkıyor. Bu kod, puan değişkenine her seferinde 0’dan 1000001’e (dahil değil) rastgele bir değer atar. Buna göre 999999 puandan fazlasını almak için pek şansınız yok. Bu komut dosyasını kaldırabilir ve değeri puan değişkenine kendimiz atayabiliriz.

9.soru flag
9.soru flag

Flag = H7tp_h4s_N0_s3Cr37S_F0r_y0U

 

HTTP – Improper redirect

 

Biraz inceledikten sonra Request’te GET /web-serveur/ch32/login.php?redirect HTTP/1.1 kısmında bir yönlendirme hatası olduğu bariz belliydi login.php yerine index.php yazdım ve karşıma flag çıktı.

10.soru flag
10.soru flag

 

Flag = ExecutionAfterRedirectIsBad

 

 

Reklam
Reklam

İlgili Makaleler

2 Yorum

Bir cevap yazın

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

Başa dön tuşu