본문 바로가기
일상속힐링/Tools

Kali Linux에 DVWA 애플리케이션 설치하기

by 사이테일 2020. 5. 21.

 

출처 : https://neetech18.blogspot.com/2019/09/installing-dvwa-application-in-kali.html


DVWA(Damn Vulnerable Web Application)은 취약한 PHP/MySQL 웹 애플리케이션으로 웹 모의해킹 학습 목적으로 개발된 환경이다.

DVWA의 목표는 간단한 인터페이스를 통해 다양한 난이도로 가장 일반적인 웹 취약점을 연습하는 것이다. 이 소프트웨어에는 문서화 된 취약점 뿐만 아니라 문서화되지 않은 취약점 또한 존재한다. 이는 의도적인 것으로 가능한 많은 취약점을 발견하는 것을 추구한다.


1. 설치 환경

 - VirtualBox 6.1.2

 - Kali Linux 2019.4

 - Apache2 / PHP 7.3.15

 

2. DVWA 다운로드

DVWA 홈페이지에 접속하면 다운로드가 가능하다. 

링크 : http://www.dvwa.co.uk/

 

DVWA - Damn Vulnerable Web Application

 

www.dvwa.co.uk

하지만 압축 풀기조차 귀찮으니 터미널에서 직접 받아보자.

웹 서버 경로는 /var/www/html 이다. 이 곳에 dvwa를 다운로드 받으면 된다. 다운로드 받았다면, 해당 폴더에 쓰기 권한을 부여한다.

(git이 설치되어 있지 않다면, sudo apt install git 명령어를 이용해 설치해야 한다.)

# cd /var/www/html
# git clone https://github.com/ethicalhack3r/DVWA
# mv DVWA dvwa			;귀찮으니 소문자로 폴더명을 변경하고...
# chmod -R 777 dvwa

 

3. 웹서버 접속 테스트

다음의 명령어를 이용해 apache 서버를 구동시킨다.

# service apache2 start

주소창에 localhost(혹은 127.0.0.1) 를 입력하면, 웹 서버 구동 여부를 알 수 있다.

하지만 localhost/dvwa 를 접속해보면, dvwa config 파일(config.inc.php)을 찾을 수 없다는 에러 메시지가 뜬다.

만들어 주자.

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

 

4. 서버 설정

4-1. php.ini 파일 수정

find 명령어를 통해 php.ini 파일을 검색하면, 아래와 같이 3개의 파일이 출력된다.

# find / -name php.ini
/var/www/html/dvwa/php.ini
/etc/php/7.3/cli/php.ini
/etc/php/7.3/apache2/php.ini

위 3개의 파일을 열어보면 allow_url_include(fopen) = Off 옵션을 확인할 수 있다. 이를 allow_url_include(fopen) = On 으로 수정한 뒤, apache2를 재시작한다(아마 3번째 파일만 Off로 설정되어 있을 것이다).

# vi /etc/php/7.3/apache2/php.ini
; allow_url_include = Off -> allow_url_include = On
; allow_url_fopen = Off -> allow_url_fopen = On
# service apache2 restart

4.2. php-gd module 설치

php-gd 모듈이 설치되어 있지 않다면 다음의 명령어를 통해 설치해야 한다.

# apt install php7.3-gd && service apache2 restart

4.3. 데이터베이스 설정

다음의 명령어를 이용해 dvwa 라는 데이터베이스를 생성하고, 'user'라는 유저를 생성한다.

# service mysql start
# mysql -u root -p
mysql > create database dvwa;
mysql > CREATE USER 'user'@'127.0.0.1' IDENTIFIED BY 'p@ssword';
mysql > grant all on dvwa.* to 'user'@'127.0.0.1';
mysql > flush privileges;
mysql > exit
# service mysql restart

<추가 : With kali MariaDB do the following->

Kali는 디폴트로 MariaDB를 사용한다. 그리고 root 유저로 데이터베이스를 사용할 수 없다. 따라서 반드시 새로운 데이터베이스 유저를 생성해야 한다.

mysql> create database dvwa;
mysql> grant all on dvwa.* to dvwa@localhost identified by 'SuperSecretPassword99';
mysql> flush privileges;
mysql > exit
# service mysql stop

그리고 config 파일을 업데이트 한다.

$_DVWA[ 'db_user' ] = 'dvwa';
$_DVWA[ 'db_password' ] = 'SuperSecretPassword99';
$_DVWA[ 'db_database' ] = 'dvwa';

4.4 reCAPTCHA 

reCAPTCHA를 적용시키기 위해 google reCAPTCHA를 이용한다.

접속 링크 : https://www.google.com/recaptcha/intro/v3.html

 

reCAPTCHA

reCAPTCHA is a free security service that protects your websites from spam and abuse.

www.google.com

새 사이트 등록에 들어가 reCAPTCHA v2 를 선택하고, 표시되지 않는 reCAPTCHA 배지를 선택한다(원하는것을 선택해도 무관하다).

사이트키(site key)를 복사하고, 앞서 생성한 dvwa config 파일에 이를 적용한다(site key, secret key에 각각 붙여넣으면 된다).

 

5. 기타 설정

파일 업로드 취약점 등을 테스트하기 위해 php.ini 파일을 수정한다.

# vi /etc/php/7.3/apache2/php.ini

852번째 라인에 allow_url_fopen과 856번째에 allow_url_include를 각각 On으로 설정해둔다(라인넘버는 조금씩 다를 수 있으니 vi의 /allow_url 명령어로 검색하면 된다). 

 

마지막으로 서비스를 모두 재시작해주고 설정을 확인해보자.

# service apache2 stop && service mysql stop
# service apache2 restart && service mysql restart
# service apache2 start && service mysql start
# firefox http://127.0.0.1/dvwa/setup.php