본문 바로가기

웹해킹/DVWA

DVWA 환경 구축

DVWA는 Damn Vulnerable Web Application의 약자로 모의해킹 테스트를 위한 환경이다.

모의해킹을 위해서 의도적으로 취약하게 구성된 웹사이트이다.

low, medium, high, impossible의 보안 단계가 있다.

 

https://github.com/digininja/DVWA

 

GitHub - digininja/DVWA: Damn Vulnerable Web Application (DVWA)

Damn Vulnerable Web Application (DVWA). Contribute to digininja/DVWA development by creating an account on GitHub.

github.com

다운로드는 이 깃허브 링크에서 할 수 있다.

 

DVWA를 실행하기 위해서는 apache와 mysql이 필요한데 이를 위해서 XAMPP를 사용할 것이다.

https://www.apachefriends.org/index.html

 

XAMPP Installers and Downloads for Apache Friends

What is XAMPP? XAMPP is the most popular PHP development environment XAMPP is a completely free, easy to install Apache distribution containing MariaDB, PHP, and Perl. The XAMPP open source package has been set up to be incredibly easy to install and to us

www.apachefriends.org

여기서 XAMPP를 다운받을 수 있다. 

설치할 때 특별히 설정해야 할 건 없으니 그냥 next를 계속 눌러서 설치를 완료하면 된다.

설치를 완료하고 실행해보면 이런 식으로 화면이 보이는데 

Apache와 MySQL 옆의 Start 버튼을 눌러주면 된다.

근데 사진 속의 로그를 보면 알겠지만 MYSQL은 정상적으로 Start가 안된다. 

3306 포트가 이미 사용중이기 때문이다.

이전에 게시판을 만들면서 MYSQL을 이미 설치했기 때문에 3306 포트에서 그 MYSQL이 실행중인 것이다.

(나중에 안 사실이지만 이걸 굳이 XAMPP에서 실행할 필요가 없다.)

일단 실행 포트 번호를 바꾸려면 MYSQL 옆에 있는 Config를 클릭해서 my.ini 파일을 열고 포트 번호를 3307로 바꿔준다.

그리고 오른쪽에 전체 Config 버튼을 눌러서 

Service and Port Settings를 누른 뒤 MYSQL에 들어가서 Main Port를 3307로 바꾸면 된다.

Apache에서도 포트 에러가 발생할 경우 똑같이 하면 된다.

 

아까 DVWA 깃허브 페이지에서 다운 받은 DVWA-master 파일의 이름을 DVWA로 바꾸고,

C드라이브의 xampp 폴더로 들어가서 htdocs 폴더 안에 DVWA 폴더를 옮겨준다.

DVWA의 config 폴더 안에 가보면 config.inc.php.dist 파일이 있을 텐데 이 파일의 이름을 config.ini.php로 바꿔주면 된다.

이 파일을 열고

$_DVWA[ 'db_server' ]   = 'localhost';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ]     = 'root';
$_DVWA[ 'db_password' ] = '';
$_DVWA[ 'db_port']      = '3306';

이렇게 하면 되야 한다.

이렇게 설정을 하고 http://localhost/DVWA로 접속하면 잘 되야 하는데 에러가 발생한다.

일단 첫번째 에러는 Acess Denied와 관련된 에러이다. 3306 포트는 이전에 설치한 MYSQL이 돌아가고 있기 때문에 

root 계정에 대한 권한이 없다는 뜻인거 같아서 config.ini.php 파일에서 포트를 3307로 바꿔주었다.

그래도 안된다. 왜 안되는지 모르겠어서 이것저것 찾아봤더니 포트 번호는 3306으로 해야 하는 것 같다.

(아닐 수도 있다. 근데 포트 번호를 3307로 하면 내부적으로 mysql을 사용할 때 뭔가 문제가 생기는 것처럼 보였다.)

그래서 포트를 3306으로 하고 db_password를 예전에 설정한 vkfksshdmf0207로 바꿔주었다.

$_DVWA[ 'db_server' ]   = 'localhost';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ]     = 'root';
$_DVWA[ 'db_password' ] = 'vkfksshdmf0207';
$_DVWA[ 'db_port']      = '3306';

 이렇게 했는데 이번에는 Undefined database dvwa라는 에러가 생겼다.

사실 엄청나게 단순한 에러였는데 인터넷에 찾아보니 db_user를 root가 아니라 dvwa로 바꾼다던지,

mysql을 재실행한다던지 다양한 해결책이 있어서 다 해봤는데 전부 안됐다.

고민하다 보니 그냥 말 그대로 dvwa라는 데이터베이스가 없어서 생기는 문제인 것 같아서

mysql에서 CREATE database dvwa; 로 데이터베이스를 만들어주고

http://localhost/DVWA

여기로 접속했더니 이제 된다.

이런 창이 뜨면 밑에 Create/Reset Database 버튼을 누르면 된다.

그리고 여기서 admin, password로 로그인을 해주면 된다.

이런 화면이 뜨고 다양한 모의해킹 실습을 할 수 있다.

 

근데 설치 방법을 알아보려고 이것저것 보다 보니까

저 위에 Create/Reset Database 버튼을 누르기 전에 빨간색으로 된 설정 부분들을 고쳐야 한다는 경우도 있고 그냥 진행하는 경우도 있었다. 일단 나는 그냥 진행해 봤는데 혹시 나중에 문제가 생길까봐 다시 돌아갔다.

http://localhost/dvwa/setup.php 링크로 접속했다.

우선 PHP function allow_url_include: Disabled 부분부터 고친다.

XAMPP에서 PHP의 설정파일은 

여기에 있다.

원래 Off였던 allow_url_include를 On으로 바꿔준다.

저장하고 나서 새로고침을 했는데 반영이 안된다.

여기서 또 한참 헤맸는데 그냥 XAMPP에서 Apache를 Stop했다가 Start 해서 재시작해주면 된다.

 

reCAPTCHA 키는

https://www.google.com/recaptcha/about

이 링크에서 발급받으면 된다.

이렇게 하고 제출을 눌러서

공개키와 비밀키를 받는다.

그리고 config.ini.php 파일에 가서

이렇게 해주면 된다.

 

마지막으로 PHP module gd: Missing을 해결하기 위해 php.ini 파일에 extension=gd를 찾아서

주석을 해제하고 apache 서버를 재실행해주면 된다.

이제 모든 setup이 끝났으니 다시 버튼을 눌러서 Create를 해주면 된다.

 

난이도 변경은 DVWA Security에서 바꿀 수 있다.

'웹해킹 > DVWA' 카테고리의 다른 글

DVWA File Upload(low) 롸업  (0) 2023.11.07
DVWA File Inclusion(low) 롸업  (0) 2023.11.07
DVWA CSRF(low) 롸업  (0) 2023.11.07
DVWA Command Injection(low) 롸업  (0) 2023.11.06
DVWA Brute Force(low) 롸업  (0) 2023.11.06