
Damn Vulnerable Web Application (DVWA) bir web uygulaması güvenliği öğrenme aracıdır. İçinde güvenlik açıklarının yer aldığı sanal bir web uygulamasıdır. Kullanıcılar bu açıkları keşfederek ve çözerek web uygulamalarının nasıl saldırıya uğrayabileceğini öğrenebilirler.
Ancak, bu aracın kullanımı ile ilgili bazı sınırlamalar vardır. Öncelikle, DVWA sadece eğitim amaçlı kullanılmalıdır ve gerçek sistemlerde saldırı yapmak yasaktır. Ayrıca, DVWA kullanırken sistemlerin güvenliği önemlidir ve güvenli bir ortamda kullanılması önerilir.
Sonuç olarak, DVWA web uygulama güvenliği öğrenme aracı olarak önemlidir. Öğrenciler ve araştırmacılar tarafından kullanılarak web uygulama güvenliği konusunda bilgi ve deneyim kazanılabilir. Ancak, bu aracın kullanımı ile ilgili sınırlamalar vardır ve güvenli bir ortamda kullanılması önerilir.
DVWA kurulumu için bir web sunucusu (örneğin, Apache ve PHP), ve bir veritabanı (örneğin, MySQL) gereklidir. Kurulum dosyalarını indirip kurulum yapılır. Daha sonra web tarayıcısı üzerinden http://localhost/dvwa/install.php adresine gidilir. Kurulum adımları takip edilir ve DVWA çalışmaya başlar.
DVWA, SQL injection, XSS, CSRF, File Inclusion gibi popüler güvenlik açıklarını içermektedir. DVWA kullanırken, kullanıcı düzeyi seçilerek farklı zorluk seviyelerindeki güvenlik açıklarını keşfedebilir. Örneğin, “low” seviyesinde SQL injection saldırılarının nasıl gerçekleştirilebileceğini görebilirsiniz. Aynı şekilde “medium” ve “high” seviyelerinde daha zorlu güvenlik açıklarını çözebilirsiniz.
OWASP Top 10’da bulunan zafiyetleri;

Kali Linux işletim sistemi üzerinde Damn Vulnerable Web Application (DVWA) kurulumu için aşağıdaki adımlar takip edilmelidir:
1-Gerekli paketlerin kurulması: Öncelikle Apache, PHP ve MySQL gibi gerekli paketlerin kurulması gerekir. Bunun için terminalde “sudo apt-get install apache2 php mysql-server php-mysql” komutu çalıştırılır.
2-DVWA indirilmesi: DVWA’nın resmi web sitesinden ya da GitHub’dan en son sürümü indirilir.
Resmi sitesi:https://dvwa.co.uk/
Github: https://github.com/ethicalhack3r/DVWA
3-DVWA kurulumu: İndirilen dosyalar /var/www/html dizinine kopyalanır.cd /var/www/html
Burada DVWA’yı Github deposundan kopyalıyoruz . Klonlamak için aşağıdaki komutu çalıştırıyoruz:
git clone https://github.com/ethicalhack3r/DVWA

Klonlama tamamlandıktan sonra, DVWA’yı dvwa olarak yeniden adlandırıyoruz (gerekli değil ama çabamızı kurtaracak).Ardından, aşağıdaki komutu kullanarak dvwa dizinindeki izni değiştiriyoruz:┌──(root㉿kali)-[/var/www/html]
└─# mv DVWA dvwa
┌──(root㉿kali)-[/var/www/html]
└─# mv DVWA dvwa

Şimdi bu web uygulamasının düzgün çalışması için /dvwa/config dizinine girmemiz gerekiyor.ls komutunu kullanarak dosyaların listesini yapabiliriz.┌──(root㉿kali)-[/var/www/html]
└─# cd dvwa/config
┌──(root㉿kali)-[/var/www/html/dvwa/config]
└─# ls
config.inc.php config.inc.php.bak config.inc.php.dist

Yukarıdaki ekran görüntüsünde config.inc.php.dist dosyasını görebiliriz. Bu dosya varsayılan yapılandırmayı içerir. Bu dosyanın .php uzantılı bir kopyasını yapmamız gerekiyor, bu dosyayı kopyalıyoruz çünkü gelecekte bir şeyler ters giderse varsayılan değerlere sahibiz. Bu nedenle, aşağıdaki komutu kullanarak bu dosyayı .php uzantılı adıyla kopyalıyoruz.┌──(root㉿kali)-[/var/www/html/dvwa/config]
└─# cp config.inc.php.dist config.inc.php
┌──(root㉿kali)-[/var/www/html/dvwa/config]
└─# ls
config.inc.php config.inc.php.bak config.inc.php.dist

Sonrasında bir text editörü yardımı ile config dosyasını açalım ve aşağıdaki resimde belirtilen alandaki gibi güncelleyelim.┌──(root㉿kali)-[/var/www/html/dvwa/config]
└─# nano config.inc.php /

Daha sonra CTRL+X ile kaydedip değişiklikleri kaydetmek için Y’ye, kaydedip çıkmak için Enter tuşuna basıyoruz.
4-Veritabanı oluşturma: MySQL üzerinde veritabanı oluşturmak için “mysql -u root -p” komutu çalıştırılır. Daha sonra “create database dvwa;” komutu ile veritabanı oluşturulur.
Burada öncekini kapatan yeni bir terminal penceresi açtık. İlk önce aşağıdaki komutu kullanarak mysql’i başlatıyoruz.Herhangi bir hata yoksa, hizmetin başlatıldığı anlamına gelir.Şimdi aşağıdaki komutu kullanarak mysql’de oturum açalım.┌──(root㉿kali)-[/var/www/html/dvwa/config]
└─# service mysql start
┌──(root㉿kali)-[/var/www/html/dvwa/config]
└─# mysql -u root -p

Şimdi bir veritabanı kurmak için, aşağıdaki komutu uygulayarak yeni bir kullanıcı oluşturmaya başlıyoruz.MariaDB [(none)]> create user ‘user’@’127.0.0.1’ identified by ‘pass’;
Query OK, 0 rows affected (0.013 sec)
Burada bu komutu kullanarak 127.0.0.1(localhost) üzerinde sunucu çalıştıran ‘user’ adında bir kullanıcı oluşturuyoruz ve şifresi ‘pass’. Bu kullanıcı adı ve şifrenin, dvwa web uygulamasının yapılandırma dosyasına girdiğimiz şifre ve kullanıcı adı ile tamamen aynı olması gerektiğini unutmayın.
Daha sonra bu kullanıcıya veritabanı üzerindeki tüm ayrıcalıkları veriyoruz. Bunun için aşağıdaki komutu yazıyoruz.grant all privileges on dvwa.* to ‘user’@’127.0.0.1’ identified by ‘pass’;
Evet, veritabanı işini bitirdik.┌──(root㉿kali)-[/etc/php/8.1/apache2]
└─# service mysql status

Şimdi sunucuyu yapılandırıyoruz. Bunun için apache2 sunucumuzu yapılandırmamız gerekiyor. Dizinimizi /etc/php/8.1/apache2 olarak değiştirelim
Burada 8.1sürümünü kullanıyoruz, başka bir sürüm kullanırsak yol değişebilir.┌──(root㉿kali)-[/etc/php]
└─# /etc/php/8.1/apache2
┌──(root㉿kali)-[/etc/php/8.1/apache2]
└─# nano php.ini

allow_url_fopen ve allow_url_include değerlerini değiştirmemiz gerekiyor . İkisini de ‘Açık’ olarak ayarladık. Bazı durumlarda ilk kez yapılandırdığımızda, bu yapılandırmalardan birinin veya her ikisinin ‘Kapalı’ olarak ayarlandığını görebiliriz. Aşağıdaki ekran görüntüsü gibi, bu yapılandırmaların her ikisini de ‘Açık’ duruma getirdik.

Ardından dosyayı kaydedip kapatıyoruz.
Ardından apache2 sunucusunu aşağıdaki komutu kullanarak başlatıyoruz.┌──(root㉿kali)-[/etc/php/8.1/apache2]
└─# service apache2 start
┌──(root㉿kali)-[/etc/php/8.1/apache2]
└─# service apache2 status

5-DVWA kurulum dosyasını çalıştırma: Tarayıcıda “http://localhost/dvwa/setup.php” adresine gidilir. Kurulum adımları takip edilir ve DVWA çalışmaya başlar.

Burada aşağı kaydırıyoruz ve “Veritabanı Oluştur/Sıfırla” seçeneğine tıklıyoruz.


Ardından veritabanını oluşturacak ve yapılandıracak ve DVWA oturum açma sayfasına yönlendirildik.
6-DVWA’yı çalıştırmak için “http://localhost/dvwa” adresine gidilir.

Varsayılan giriş
- kullanıcı adı: admin
- Şifre: password
Giriş yaptıktan sonra Damn Vulnerable Web Applications ana sayfasındayız. İşte bazı genel bilgiler ve uyarılar.

Sol tarafta, burada pratik yapabileceğimiz birçok savunmasız sayfa olduğunu görebiliriz.
DVWA güvenliğine gittiğimizi değiştirmek için DVWA’nın farklı güvenlik seviyeleri vardır. Düşük, orta, yüksek, imkansız gibi bazı güvenlik seviyeleri vardır. İhtiyacımız olan zorluğu seçebiliriz.