본문 바로가기
웹 해킹

웹 해킹 15

by 윤라경 2024. 8. 6.

[2024.08.05]

 

[DVWA]

 

01. 설치

 

# cd /var/www/html
   # wget https://github.com/ethicalhack3r/DVWA/archive/master.zip

 

> 압축 해제

#unzip master.zip

 

> 링크

#ln -s DVWA-master dvwa

 

 

 

기존의 구 버전인 dvwa 취약점 페이지가 아닌

최신 버전의 dvwa로 실습을 진행하기 위해 필요한 것들을 다운로드한다

 

 

*번외로 다운로드 안 될 시 해당 파일 열어서 dnsnameserver 맞는지 확인하기

 

 

02. 관련 패키지 다운로드 및 설치

 

#apt-get -y install php-mysql

#apt-get -y install php

#apt-get -y install php-gd

#apt-get -y install mariadb-server

 

 

03. 환경 설정

 

#find / -name php.ini
/etc/php/8.2/apache2/php.ini
/etc/php/8.2/cli/php.ini
/var/www/html/DVWA-master/php.ini

 

/var/www/html/DVWA-master/php.ini

safe mode = on

display_errors = off  <-- 추가

 

 

 

php.ini가 해당 경로들에 있는 것을 확인한다

 

 

그런 다음 해당 경로의 디렉터리로 들어가서 php.ini 파일을 열고  

 

 

870번 라인의 allow_url_include = Off 라고 되어 있던 부분을 On으로 변경시키고 저장한다 

 

 

위와 같이 apache2에 있는 php.ini 파일도 수정한다

 


870번 라인의 allow_url_include = Off 라고 되어 있던 부분을 On으로 변경시키고 저장한다

 

04. Mariadb 설정

 

> create database dvwa;
> create user 'dvwa'@'localhost' identified by '123456';

> grant all privileges on dvwa.* to 'dvwa'@'localhost';

> flush privileges;

 

 

mysql -p mysql 명령어를 통해 mariadb에 접속을 시도한다

 

 

mariadb 셸에서 databases 목록을 보지만 현재 아무것도 없는 상태다

 


그렇기 때문에 database dvwa를 생성한 후 user까지 생성하고

나머지는 위와 같이 명령어를 입력해 주고 실행한다 

 

 

05. DVWA 환경 설정

 

> /var/www/html/dvwa/config/config.inc.php

$_DVWA[ 'db_server' ]   = getenv('DB_SERVER') ?: '127.0.0.1';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ]     = 'dvwa';
$_DVWA[ 'db_password' ] = '123456';
$_DVWA[ 'db_port']      = '3306';

 

 

 

기존의 config.inc.php.dist는 존재하는 파일이기 때문에,

해당 파일을 php까지만 입력해서 복사한다

 


그런 다음 21번 라인에서 password 부분을 123456으로 수정시키고 저장한다 

 

 

06. 디렉터리 권한 변경

 

> /var/www/html/dvwa/hackable]

 

#chown www-data uploads

 

 

 

chown 명령어를 통해 uploads 파일을 www-data로 권한을 변경시켜 준다

 

 

여기까지 마무리했다면 mariadb와 apache2를 활성화시키고,

마지막 마무리로 Kali linux의 IP 주소까지 한 번 확인해 주면 좋다

 

 

Kali Linux의 firefox로 Kali Linux의 IP 주소/dvwa/setup.php를 입력하면 해당 페이지로 접속이 가능하다

이 상태의 페이지에 맨 마지막 부분에서 Create라는 버튼을 누른다

 

 

해당 버튼을 누르게 되면 로그인 페이지가 나타나면서

로그인을 시도하면 이렇게 접근이 가능해진다 

 

 

구 버전의 dvwa에서는 레벨이 총 세 가지로 low, medium, high로만 이루어져 있었지만,

반면에 최신 버전에는 세 가지에 추가로 Impossible이라는 레벨이 추가되어 있다

 

 

레벨을 low로 설정한 후 정상적으로 작동하는지 보기 위해 이전 실습에 이용했던 것을 실행시켰다

 

 

07. CAPTCHA 환경 설정

 

google.com/recaptcha/admin/create

 

 

CAPTCHA 실습을 진행하기 위해 차단되어 있는 것을 풀어야 하기 때문에,

Kali Linux의 내부 firefox나 외부의 브라우저를 통하여 구글에 접속을 시도했다

위의 url을 통하여 접속하게 되면 해당 화면이 나타난다

 

 

라벨을 dvwa로 입력하고, reCAPTCHA 유형을 테스트(v2), 로봇이 아닙니다 체크 박스 선택

도메인은 Kali Linux의 IP 주소를 입력한다

 

 

입력 후 약관에 동의하고 제출하기를 눌렀다면 해당 화면의 페이지로 넘어간다

이 상태로 놔두고 Kali Linux로 이동한다

 

 

해당 경로에서 config.inc.php 파일을 열어

 

 

왼쪽과 같이 비어 있던 27, 28번 라인에

각각 사이트 키와, 비밀 키를 복사하여 입력시킨 후 저장한다

 

 

여기까지 성공했다면 dvwa 페이지의 CAPTCHA의 오류가 풀리고

로봇이 아닙니다와 같은 창이 나타난다

 

 

[XSS(DOM)]

 

192.168.10.250/dvwa/vulnerabilities/xss_d/?default=English<script>alert('XSS')</script>

 

192.168.10.250/dvwa/vulnerabilities/xss_d/?default=English<script>alert('document.cookie')</script>

 

192.168.10.250/dvwa/vulnerabilities/xss_d/?default=English</select><img src=x onerror=alert('XSS')>

 

 

지금까지는 Reflected와 Stored로 실습을 진행했지만,

최신 버전의 dvwa에서는 DOM도 사용할 수 있게 됐다

 

 

DOM의 경우 url에서 직접 공격이 가능하다

그렇기 때문에 url 주소를 통해 공격을 시도할 수 있다

 

 

English 뒤에 바로 script 명령어를 실행하면 해당 화면이 나타난다

 

 

또한 명령어가 실행되면서 바뀌는 url을 zaproxy에서 Encode 하게 되면,

URL Decode 창을 통해 script 명령어인 것을 확인할 수 있다 

 

 

연속으로 document.cookie도 실행해 봤다

 

 

정상적으로 진행되는 화면

 

 

img의 경우 실행하려고 했으나 진행되지 않는 상태였는데,

English 뒤에 </select>로 구문을 막고 시작하여 img 명령어도 성공하게 되었다

 

 

해당 화면의 소스를 확인해 보면 Select가 열려 있기 때문에,

select를 막고 뒤에 실행 구문을 입력하게 되면 성공하게 되는 원리라고 볼 수 있다

 

 

이번에는 마지막으로 medium 레벨로 연습을 진행했다

 

 

</select>를 하게 되면 다른 명령어도 잘 실행된다

버튼을 눌러 실행시키는 것도 성공하였고

 

 

드래그 시에 나타나게 하는 것도 성공시켰다

 

 

English 뒤에 스페이스 바로 한 칸 띄우고 나서 #을 입력하고

실행 구문을 입력하게 되는 방법도 정상적으로 실행이 된다

 

*반드시 스페이스로 한 칸 띄어야 됨

 

 

해당 소스를 확인하면서 되는 것과 안 되는 것의 차이를 꼼꼼히 살피는 것도,

하나의 공부 방법이자 이 웹 해킹을 알아 가는 방법인 것 같다

 

 

 

강의 소감

오늘은 웹 해킹 강의 종강을 3일 남겨 두고 최신 버전의 dvwa 실습을 시작했다

구 버전에서의 실습이 모두 끝났기 때문에 최신 버전도 진행한다고 하셨다

  처음 보는 CAPTCHA의 환경 설정도 해 보고, XSS도 DOM으로 실습을 진행해 봤다

이런 실습을 진행하면서 강의 시간 외에도 해당 실습의 소스를 보고

소스를 익히는 방법을 공부해도 좋겠다고 생각했다

소스를 볼 줄 알게 되면 취약점을 보다 더 많이 찾아낼 수 있을 것 같다

그런 부분에 맞게 남는 시간에는 소스 코드를 읽으면서 취약점 분석을 시도해 봐야겠다

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

웹 해킹 17  (0) 2024.08.07
웹 해킹 16  (0) 2024.08.06
웹 해킹 14  (0) 2024.08.03
웹 해킹 13  (0) 2024.08.02
웹 해킹 12  (0) 2024.07.31