본문 바로가기

Learning/└◆WEB Service

DVWA 01. 리눅스에 DVWA 설치하기

 

 

DVWA(Damn Vulnerable Web Application)은 취약한 웹 어플리케이션으로

웹 모의해킹을 학습/연구 목적으로 개발된 환경이다.

 

목적

- 웹 사이트의 취약점을 알고 웹해킹을 이해

 

환경

- Apache + PHP + MySQL

 

시작하기

- Kali Linux 를 이용한 Apache 웹 서버와 MySQL DB구축

 

 

 PHP에 대한 전반적인 이해

- 웹 페이지는 크게 두 분류로 나눌수 있습니다.
  첫 번째는 프론트 앤드(front-end) 개발 즉, 디자인입니다.
  클라이언트에게 직접적으로 노출되는 부분들입니다.
  주로 CSS, HTML같은 언어가 있고

 
- 두 번째는 백 앤드(back-end)입니다. 클라이언트에게 보여지진 않지만
  웹의 동작과 기능을 담당하는 언어입니다.
  예를들면 로그인,검색,회원가입,세션유지 등 입니다.


- 백 앤드는 서버 스크립트 와 클라이언트 스크립트 로 나뉩니다.
  유저 언어로는 자바스크립 이런게 있고 서버 스크립트로는
  ASP,PHP,JSP등이 있습니다.


- 웹 언어를 입문할때 php & mysql 부터 시작하는 것을 권장합니다.
  다른 언어와 밀접한 문법이라 어렵지 않고
  호환성이 좋고 가장 많이 쓰이고 있습니다.
  많은 웹사이트가 PHP로 구현되고 있습니다.


- 직접 웹 사이트를 구축해봐야 웹에 대한 분석을 할 때
  많은 도움이 됩니다.

 

 

 

1. 칼리 리눅스 기동 후 DVWA 홈페이지 접속 및 다운로드 (http://www.dvwa.co.uk/)

2. unzip -> /var/www 로 복사

# mv ~/Desktop/DVWA /var/www

3. chmod -R 755 DVWA 하위디렉터리 까지 퍼미션 부여

4. service apache2 start && service mysql start

 

다음 http://localhost/DVWA/setup.php 에 가서 create를 하면 문제가 발생한다.

Could not connect to the database. plase check the config file.

mySQL 비밀번호 설정이 되지 않아 연결이 안된다.

 

# mysql -u root -p

Enter password: (Enter)

 

mysql > show databases;
+--------------------+
| Database                |
+--------------------+
| information_schema  |
| mysql                      |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

mysql DB를 사용한다.

 

mysql > use mysql;

mysql > show tables;

 

Database changed
MariaDB [mysql]> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| column_stats              |
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| gtid_slave_pos            |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| index_stats               |
| innodb_index_stats        |
| innodb_table_stats        |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| roles_mapping             |
| servers                   |
| slave_master_info         |
| slave_relay_log_info      |
| slave_worker_info         |
| slow_log                  |
| table_stats               |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
34 rows in set (0.00 sec)

 

테이블을 확인할 수 있는데, 해당 쿼리문을 날리면 root에 pw가 입력되지 않음을 알 수 있다.

mysql > select user,password from user;

 

update문을 이용해 패스워드를 설정하도록 한다.

mysql > update user set password=password('toor') where user='root';

 

MariaDB [mysql]> select user,password from user;
+------------------+-------------------------------------------+
| user             | password                                  |
+------------------+-------------------------------------------+
| root             |                                           |
| root             |                                           |
| root             |                                           |
| root             |                                           |
| debian-sys-maint | *99275283984309FCE0C780DA0E6D53F3E057776A |
+------------------+-------------------------------------------+
5 rows in set (0.00 sec)

 

 

MariaDB [mysql]> select user,password from user;
+------------------+-------------------------------------------+
| user             | password                                  |
+------------------+-------------------------------------------+
| root             | *9CFBBC772F3F6C106020035386DA5BBBF1249A11 |
| root             | *9CFBBC772F3F6C106020035386DA5BBBF1249A11 |
| root             | *9CFBBC772F3F6C106020035386DA5BBBF1249A11 |
| root             | *9CFBBC772F3F6C106020035386DA5BBBF1249A11 |
| debian-sys-maint | *99275283984309FCE0C780DA0E6D53F3E057776A |
+------------------+-------------------------------------------+
5 rows in set (0.00 sec)
 

 

 

다음 mysql 데몬을 재시작하고 DVWA/setup.php 에서 Create 버튼을 누르면 정상적 설치가 완료된다.

root@kali:/var/www/html# service mysql restart

CREATE후 login 해주면 끝

 

login.php의 초기 암호는 admin / password 로 세팅되어 있다.

 

 

 

 

처음 진입하게 되면 메인 index.php가 출력 되는데 DVWA security를 눌러 보안 수준을 낮출 수 있다.

Low로 낮추었으면 DVWA 학습을 하기위한 준비는 끝났다.

 

'Learning > └◆WEB Service' 카테고리의 다른 글

bee-box  (0) 2017.02.10
[PHP]PHP웹 보안 취약점 TOP5(웹해킹)  (1) 2016.10.28