DVWA – Kurulum

Damn Vulnerable Web Application(DVWA), savunmasız olan bir PHP/MySQL web uygulamasıdır. Temel hedefi güvenlik profesyonellerinin yeteneklerini ve araçlarını yasal bir ortamda test etmelerine yardımcı olmak, web geliştiricilerinin, web uygulamalarını güvenli hale getirme süreçlerini daha iyi anlamalarına yardımcı olmak ve öğretmenler/öğrenciler için bir sınıf ortamında web uygulama güvenliğini öğretmek/öğrenmek için yardımcı olmaktır.

 

Github Sayfasındaki Açıklamalardan Alıntılar:

DVWA’nın amacı, basit ve kolay bir arayüzle, çeşitli zorluk dereceleriyle, en yaygın web güvenlik açıklarından bazılarını uygulamaktır. Lütfen, bu yazılımla birlikte belgelenmiş ve belgesiz güvenlik açıkları olduğunu unutmayın. Bu kasıtlı. Mümkün olduğunca çok sayıda sorunu denemeniz ve keşfetmeniz önerilir.

Uyarı:

Damn Vulnerable Web Application çok savunmasız! Güvenliği ihlal edeceğinden, barındırma sağlayıcınızın genel html klasörüne veya Internet’e bakan sunuculara yüklemeyin. NAT ağ moduna ayarlanmış bir sanal makine (VirtualBox veya VMware gibi) kullanılması önerilir. Misafir makinede, web sunucusu ve veritabanı için XAMPP’yi indirip yükleyebilirsiniz.

Feragat:

Bu uygulamayı(DVWA) kullanan herhangi biri için sorumluluğunu üstlenmiyoruz. Uygulamanın amacını açık bir şekilde belirledik ve kötü amaçlı kullanmayınız. Kullanıcıların DVWA’yı canlı web sunucularına kurmasını önlemek için uyarılar ve önlemler aldık. Eğer web sunucunuz bir DVWA kurulumu ile tehlikeye giriyorsa, bu bizim sorumluluğumuzda değildir, yükleyen kişi veya kişilerin sorumluluğundadır.

Lisans:

DVWA GNU lisansı altındadır ve yeniden dağıtabilir veya değiştirilebilir.

Live CD:

DVWA ayrıca live cd imajı olarak ta indirilebilir. Güncel iso dosyası için github sayfasına bakın. Normal kurulum için yazının devamına bakın.

 

Docker Kurulumu

docker run --rm -it -p 80:80 vulnerables/web-dvwa

Docker Hub sayfası: hub.docker.com/r/vulnerables/web-dvwa

 

Windows Kurulum

DVWA’yı Windows’ta WampServer veya XAMPP ile birlikte kurabilirsiniz. Bu anlatım linux’a yöneliktir.

 

Kurulum Adımları

Linux Paketleri:

Debian tabanlı bir Linux dağıtımı kullanıyorsanız, aşağıdaki paketleri (veya bunların eşdeğerlerini) yüklemeniz gerekir:

apt-get -y install apache2 mysql-server php php-mysqli php-gd libapache2-mod-php

 

www.dvwa.co.uk sitesinden arşivi indirip dvwa olarak adlandırın.

* dvwa dizinini /var/www/html içerisine atın. /var/www/html apache2 nin DocumentRoot niteliği ile ayarlı olan web sunucusunun varsayılan kök dizinidir.

* Apache ve MySql servislerini başlatın.

service apache2 start
service mysql start

* Artık localhost/dvwa üzerinden erişebilirsiniz.

* localhost’tan eriştiğinizde dvwa aşağıdaki gibi bir config hatası verecektir:

DVWA System error - config file not found. Copy config/config.inc.php.dist to config/config.inc.php and configure to your environment.

* Sizden config dosyasının uzantısını php.dict ten php ye çevirmenizi ve ortamınıza göre yapılandırmanızı söylüyor.

cd /var/www/html/dvwa/config/
cp config.inc.php.dist config.inc.php

* localhost/dvwa/ sizi setup.php sayfasına veritabanı oluşturmak ve sıfırlamak için yönlendirecektir.

Veritabanı Kurulumu

* Veritabanını kurmak için Create/Reset Database butonuna tıklayınız. Bu, veritabanını sizin için bazı verilerle oluşturacak/sıfırlayacaktır.

* Veritabanınızı oluşturmaya çalışırken bir hata alırsanız, veritabanı kimlik bilgilerinizin doğru olduğundan emin olun.

* Veritabanı zaten mevcutsa, silinecek ve veriler sıfırlanacaktır.

* Bunu, herhangi bir aşamada yönetici kimlik bilgilerini sıfırlamak için de kullanabilirsiniz.

* Değişkenler varsayılan olarak aşağıdakilere ayarlanır:

$_DVWA[ 'db_server' ]   = '127.0.0.1';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ]     = 'root';
$_DVWA[ 'db_password' ] = 'p@ssw0rd';

* Eğer MySQL yerine MariaDB kullanıyorsanız (MariaDB Kali’de varsayılan), veritabanı root kullanıcısını kullanamazsınız, yeni bir veritabanı kullanıcısı oluşturmanız gerekir. Bunu yapmak için, veritabanına kök kullanıcı olarak bağlanın, ardından aşağıdaki komutları kullanın:

mysql> create database dvwa;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on dvwa.* to dvwa@localhost identified by 'xxx';
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

* Veritabanı ismi, kullanıcı adı ve parolayı config dosyasına aşağıdaki şekilde yazın:

$_DVWA[ 'db_server' ]   = '127.0.0.1';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ]     = 'dvwa';
$_DVWA[ 'db_password' ] = 'xxx';

 

Diğer Yapılandırmalar

Klasör İzinleri :

Bu izinlerin durumunu setup.php sayfasında görebiliriz.

* ./hackable/uploads/ – Web servisi tarafından yazılabilir olması gerekiyor (Dosya Yükleme için).

* ./external/phpids/0.6/lib/IDS/tmp/phpids_log.txt – Web servisi tarafından yazılabilir olması gerekiyor (PHPIDS kullanmak istiyorsanız).

* /var/www/html/dvwa/config – Web servisi tarafından yazılabilir olması gerekiyor.

chmod o+w /var/www/html/dvwa/hackable/uploads/
chmod o+w /var/www/html/dvwa/external/phpids/0.6/lib/IDS/tmp/phpids_log.txt
chmod o+w /var/www/html/dvwa/config

 

PHP Yapılandırması :

* allow_url_include = on – Uzak Dosya Eklemeleri (RFI) için izin verir [allow_url_include]
* allow_url_fopen = on – Uzak Dosya Eklemeleri (RFI) için izin verir [allow_url_fopen]
* safe_mode = off – (PHP <= v5.4 ise) SQL Enjeksiyonuna (SQLi) izin verir [safe_mode]
* magic_quotes_gpc = off – (PHP <= v5.4 ise) SQL Enjeksiyonuna (SQLi) izin verir [magic_quotes_gpc]
* display_errors = off – (İsteğe bağlı) Daha az ayrıntılı hale getirmek için PHP uyarı mesajlarını gizler [display_errors]

allow_url_fopen veya allow_url_include devre dışı bırakıldıysa, php.ini dosyanıza aşağıdakileri ayarlayın ve Apache’yi yeniden başlatın. (Sizdeki php versiyonu farklı olabilir.)

sed -i 's/allow_url_fopen = Off/allow_url_fopen = On/' /etc/php/7.0/apache2/php.ini
sed -i 's/allow_url_include = Off/allow_url_include = On/' /etc/php/7.0/apache2/php.ini
service apache2 restart

 

reCAPTCHA Yapılandırması:

Google’ın robot doğrulama servisi olan reCAPTCHA, insecure reCAPTCHA zafiyetinde kullanılmak için yapılandırılması gerekir.

* $_DVWA[ ‘recaptcha_public_key’ ] & $_DVWA[ ‘recaptcha_private_key’ ] – Bu değerlerin şu adresten oluşturulması gerekir: www.google.com/recaptcha/admin

Güvenliğiniz için daha önceden kendi siteniz için kullandığınız bir reCAPTCHA varsa, DVWA için kullanmayın. Yeni bir tane oluşturun.

 

* Tüm ayarları doğru bir şekilde yaptıktan sonra setup sayfasında butona basınca veritabanı başarılı bir şekilde oluşması gerekir.

Varsayılan Kimlik Bilgileri

Varsayılan kullanıcı adı = admin

Varsayılan şifre = password

Giriş URL’si: http://127.0.0.1/dvwa/login.php

Güvenlik Seviyesi

* Login olduktan sonra aşağıdaki ana ekran gelecek.

* DVWA Security kısmından güvenlik seviyesini düşük, orta, yüksek veya imkansız olarak ayarlayabilirsiniz. Güvenlik düzeyi DVWA’nın güvenlik açığı seviyesini değiştirir:

1. Düşük – Bu güvenlik seviyesi tamamen savunmasızdır ve hiç güvenlik önlemi yoktur. Kullanımı, web uygulama zafiyetlerinin kötü kodlama uygulamalarıyla nasıl ortaya çıktığı ve temel sömürü tekniklerini öğretmek ya da öğrenmek için bir platform olarak nasıl hizmet ettiğinin bir örneği olmaktır.

2. Orta – Bu ayar esas olarak geliştiricinin denediği ancak bir uygulamayı güvenli hale getiremediği kötü güvenlik uygulamalarına bir örnek vermektir . Ayrıca, kullanıcıların kendi sömürü tekniklerini iyileştirmek için bir meydan okuma görevi görmektedir.

3. Yüksek – Bu seçenek, kodun güvenliğini sağlamaya çalışmak için daha zor veya alternatif kötü uygulamaların bir karışımı ile orta zorlukların bir uzantısıdır . Savunmasızlık, çeşitli Capture The Flags (CTFs) yarışmalarında olduğu gibi, aynı ölçüde sömürüye de izin vermeyebilir.

4. İmkansız – Bu seviye tüm güvenlik açıklarına karşı güvenli olmalıdır . Savunmasız kaynak kodunu güvenli kaynak koduna karşılaştırmak için kullanılır.
DVWA v1.9’dan önce, bu seviye ‘yüksek’ olarak biliniyordu.

 

PHPIDS

PHPIDS v0.6 (PHP-Intrusion Detection System) PHP tabanlı web uygulamaları için bir güvenlik katmanıdır.

PHPIDS, kullanıcı tarafından sağlanan herhangi bir girdiyi, potansiyel olarak zararlı olabilecek kodun kara listesinin bir filtresine göre filtreleyerek çalışır. Web Uygulaması Güvenlik Duvarlarının (WAF’ler) güvenliği artırmaya nasıl yardımcı olabileceğine ve bazı durumlarda WAF’lerin nasıl engellenebileceğine dair canlı bir örnek olarak DVWA’da kullanılır.

PHPIDS’i bu site boyunca oturumunuzun süresi boyunca etkinleştirebilirsiniz.

DVWA Security kısmından açıp kapatabilirsiniz.

 

Web Güvenlik Açıkları

DVWA’yı kurduktan sonra aşağıda listelenen web güvenlik açıklıklarını, güvenlik seviyelerini değiştirerek test edebilirsiniz. Ayrıca her bir güvenlik açığı sayfasında kaynak kodu inceleyebilir ve ipuçlarına bakabilirsiniz.

Bir cevap yazın

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