상세 컨텐츠

본문 제목

DVWA (Damn Vulnerable Web Application) 수동 설치

Vulnerability Assessment/Web Application

by DarkSoul.Story 2024. 12. 28. 19:21

본문

반응형

1. 필수 패키지 설치

DVWA를 사용하기 위해서는  Apache 등 필수 패키지를 설치해야 한다.

 yum install -y httpd  mariadb-server php php-mysqli php-gd php-xml php-mbstring

[그림 1] 필수 패키지 설치

 

2.  설치된 Apache 실행

# 부팅 시 Apache 자동 실행
systemctl enable httpd

# Apache 실행
systemctl start httpd

# Apache 상태 확인
systemctl status httpd

[그림 2] Apache 실행 및 상태 확인

 

3.  설치된 Mariadb 실행

# 부팅 시 Mariadb 자동 실행
systemctl enable mariadb

# Mariadb 실행
systemctl start mariadb

# Mariadb 상태 확인
systemctl status mariadb

[그림 3] Mariadb 실행 및 상태 확인

 

4. DVWA에서 사용할 데이터베이스 생성

Mariadb에 로그인하면, 초기 Password는 설정하지 않았기 때문에 Password를 묻는 질문이 나오면 Enter를 입력한다.

mysql -u root -p

[그림 4] Mariadb 로그인

# 데이터베이스 dvwa 생성
CREATE DATABASE dvwa;

# dvwauser라는 계정을 생성하고, Password를 password로 설정
CREATE USER 'dvwauser'@'localhost' IDENTIFIED BY 'password';

# 데이터베이스 dvwa에 대한 모든 권한을 dvwauser에게 부여
GRANT ALL PRIVILEGES ON dvwa.* TO 'dvwauser'@'localhost';

# 변경된 권한 설정을 데이터베이스 서버에 즉시 적용
FLUSH PRIVILEGES;

# Mariadb 세션 종료
EXIT;

[그림 5] 데이터베이스 생성

 

5. DVWA 다운로드 및 설치

DVWA에는 여러 가지 버전이 있지만, 유일하게 지원되는 버전은 공식 GitHub 저장소에서 제공하는 최신소스이다.

# html 폴더로 이동
cd /var/www/html

# DVWA 소스 코드 다운로드
git clone https://github.com/digininja/DVWA.git

[그림 6] DVWA 다운로드

 

만약 git clone을 사용할 수 없는 경우에는 패키지를 설치한다.

yum install -y git

[그림 7] git 설치

 

6. DVWA 설정 파일 수정

# DVWA 설정 파일 폴더로 이동
cd DVWA/config/

# DVWA 설정 파일 탬플릿을 복사 
cp config.inc.php.dist config.inc.php

[그림 8] DVWA 설정 파일 복사

 

복사한 config.inc.php 파일을 열어 아래와 같이 4. DVWA에서 사용할 데이터베이스 생성 부분에서 생성한 정보로 수정한다.

[그림 9] config.inc.php 파일 수정 전
[그림 10] config.inc.php 파일 수정 후

 

7. Apache에서 DVWA 소스코드를 읽을 수 있도록 권한 설정 

# /var/www/html/DVWA/ 하위에 존재하는 모든 파일들의 파일 소유권을 apache로 변경
chown -R apache:apache /var/www/html/DVWA/

# /var/www/html/DVWA/ 하위에 존재하는 모든 파일들의 권한을 755로 변경
chmod -R 755 /var/www/html/DVWA/

[그림 11] /var/www/html/DVWA/ 하위에 존재하는 파일 소유권 및 권한 설정

 

8. php 설정 파일 수정

/etc/php.ini 파일을 열어 allow_url_include  값을 On으로 변경한다.

vi /etc/php.ini

[그림 12] allow_url_include 설정 변경 전
[그림 13] allow_url_include 설정 변경 후

원격 파일 포함 (RFI)을 허용하려면 allow_url_includ = On, allow_url_fopen = On
PHP가 모든 오류 메시지를 표시하도록 하려면 display_errors = On, display_startup_errors = On

 

9. Apache 재시작

모든 설정을 마쳤으면, Apache를 재시작한다.

systemctl restart httpd

 

10. Firewall 설정 변경

별다른 설정을 하지 않았다면, Firewall에서는 http 서비스를 차단하고 있기 때문에 http Port를 허용해줘야 한다. Firewall에서 허용해 주지 않으면 localhost레서는 DVWA에 접근이 가능하나 외부에서는 접근이 불가능하다. (Firewall을 중지하고 사용해도 무방함)

# Firewall 상태 확인
firewall-cmd --state

# 영구적으로 http 서비스 허용
firewall-cmd --add-service=http --permanent

# Firewall 재로드
firewall-cmd --reload

[그림 14] Firewall에 영구적으로 http 서비스 허용 추가

 

11. 마무리

웹 브라우저에서 http://[DVWA가 설치된 시스템IP]/DVWA를 입력하면 DVWA 로그인 페이지가 나타나며, Username : admin, Password : password를 입력하면 초기 세팅 페이지를 확인할 수 있다.

[그림 15] 로그인 페이지

반응형

관련글 더보기