DVWA – Medium&High Level | WriteUp

DVWA (Damn Vulnerable Web App) zafiyetli web uygulamasıdır. Ücretsiz olan bu web uygulamasını işletim sisteminize kurup, kendinizi geliştirebilir, zafiyetleri öğrenme ve sömürme konusunda çalışabilirsiniz.

DVWA uygulamasında yapmış olduğum zafiyet başlıkları;

  • CSRF
  • Command Injection
  • File Inclusion
  • XSS (Stored)
  • XSS (Reflected)
  • XSS (DOM)

Adım adım zafiyet çözümlerinin ekran görütünlerini sizlerle paylaştım. Tabii bir zafiyetin birden fazla şekilde exploit(zafiyeti sömürmek) türü olabilir. Yapmış olduğum örneklerle sınırlı kalma zorunluluğu yok yani :’) Umarım sizler için yararlı olur.

Medium Level

CSRF

Step 1;

Step 2;

Step 3;

Step 4;

Açıklama :
Şifreyi 123 olarak değiştirdim ve yukarıda ki linki, aşağıda ki gözüken not defterine kopyaladım. XSS sekmesine gelip txtName inputunun maxlength’ini 12 den 100’e çıkarttım ve okeyledim. Name yerine <img src=” “> yazdım ve o 2 tırnak arasına kopyalamış olduğum linki yapıştırdım. “123”yazan değeri “000” olarak değiştirdim ve “sign guestbook” tuşuna tıkladım. CSRF çalıştı ve şifre değişmiş oldu. Sonrasında DVWA’dan çıkış yaptım ve admin&şifreyide “000” olarak girdiğimde tekrar DVWA’ya login olabildim.

Command Injection

Step 1;

Step 2;

Açıklama :
Normalde yaptığı işlemden farklı bir işlem yaptırmak için komut satırını manipüle edeceğiz. Sayfa kaynak kodlarını incelediğimizde “&&” ve “;” operatörlerinin filtrelendiğini görüyoruz. Burada “127.0.0.1 & ls -la” komutunu yazıp Submit’e bastığımızda Command Injection’u gerçekleştirmiş olduk.

File Inclusion

Step 1;

Step 2;

Step 3; Bonus olarak “passwd” dosyasını da okuyabiliriz.

Açıklama :
Sayfa kodunu incelediğimizde “../” ve “..\” girdilerinin filtrelendiğini görüyoruz. Ekran görüntüsünde gözüktüğü gibi biz girdimizi “…/./…/./” gibi yaptığımızda, bir filtrelemeyle karşılaşmayıp Dizin Gezinimi yapabiliyoruz.

XSS (Stored)

Step 1;

Step 2;

Step 3;

Step 4;

Açıklama :
XSS’i gerçekleştirebilmek için girdimizi yazacağımız alanın MaxLength değerini yükseltiyoruz. Ardından XSS payload’ını yazdıktan sonra saldırıyı gerçekleştiriyoruz.

XSS (Reflected)

Step 1;

Step 2;

Step 3;

Açıklama :
Sayfa kaynak kodunu incelediğimizde <script> tag’inin filtrelendiğini görüyoruz. Script tag’inin baş harfini büyük yazarak bu filtreden kurtuldum ve XSS’i gerçekleştirdim.

XSS (DOM)

Step 1;

Step 2;

Step 3;

Step 4;

Açıklama :
Sayfanın kaynak koduna baktığımızda <script> tag’inin filtrelenmiş olduğunu görüyoruz. XSS’i gerçekleştirmek için farklı bir payload kullanmamız gerekecek. Burada XSS’i gerçekleştirmek için “Select” tag’lerinin dışına çıkmamız gerekiyor. Bu sebeple kullandığım payload “</select><img src=bariss onError=alert(1)>” şeklinde oldu ve XSS gerçekleşti.

High Level

CSRF

Step 1;

Step 2;

Step 3;

Step 4;

Step 5;

Açıklama :
Başta şifreyi “yenisifre” olarak değiştirdim. Sonra sayfanın kaynak koduna giderek, “token” değerine ulaştım. Sonra o token koduyla beraber form sayfasını kopyalayıp, üzerinde ekran görüntülerinde belli olacak şekilde değişiklikler yaptım. Geriye kalan adım ise bu formu, kullanıcıya yedirtmek olacak. Bu forma tıklayıp işlem yaptığında biz Value değerini ne verdiysek şifre ona değişmiş oldu.

Command Injection

Step 1;

Step 2;

Açıklama :
Sayfa kaynak kodlarına baktığımızda her türlü operatörün filtrelenmiş olduğunu görüyoruz. Fakat kodlama sırasında yapılan bir yanlışlık sayesinde burada da Command Injection’u gerçekleştirebileceğiz. Filtreleme yapılırken Pipe(|) karakterinin yanında bir adet boşluk bırakılmış. Burada ki açığı kullanarak yazdığımız “127.0.0.1|ls” komutu ile saldırıyı gerçekleştirdik.

File Inclusion

Step 1;

Step 2;

Açıklama :
Sayfa kodunu incelediğimizde URL başlangıcında “file” kelimesi eşleşiyorsa, istenen sayfaya erişilebileceğini söyleyen kod satırlarını görüyoruz. “file:///etc/passwd” komutu ile Dizin Gezinimini yapabilmiş olduk.

XSS (Stored)

Step 1;

Step 2;

Step 3;

Step 4;

Açıklama :
XSS Payload’ımızı yazabilmek için MaxLength değerini arttırıyoruz. Sayfa kodunu incelediğimizde her türlü <Script> tag’lerinin filtrelendiğini görüyoruz. Ben de burada farklı bir XSS payload’ı olarak “img src=x onError=alert(‘hackedbybaris’)” ı kullandım ve saldırıyı gerçekleştirdim.

XSS (Reflected)

Step 1;

Step 2;

Step 3;

Açıklama :
Sayfanın kaynak kodlarını incelediğimizde <script>tag’lerinin Regex kuralları ile filtrelendiğini görüyoruz. O yüzden burada “<img src=a onError=alert(‘hckd’)>” payload’ını kullanarak XSS’i gerçekleştirdim.

XSS (DOM)

Step 1;

Step 2;

Step 3;

Step 4;

Açıklama :
“#” karakterinden sonra yazılan kodlar sunucuya gönderilmiyor. Payloadmızı yazmadan önce URL’e “#” karakterini ekledik. Bu sayede internet uygulaması filtrelemelerini atlatmış olduk ve XSS saldırısını basit bir payload ile gerçekleştirebildik.

0x014

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

WordPress.com'da bir web sitesi veya blog oluşturun

Yukarı ↑

%d blogcu bunu beğendi: