들어가며
SQL 인젝션 개념 글에서 원리를 정리했는데, 직접 실습해보고 싶어서 DVWA를 Docker로 띄워봤다. 버퍼 오버플로우 실습 때처럼 Docker를 활용하면 내 PC에 영향 없이 취약한 환경을 만들 수 있다. 생각보다 환경 구성이 간단해서 금방 실습까지 들어갈 수 있었다.
⚠️ 주의: DVWA는 의도적으로 취약하게 만들어진 실습용 애플리케이션이다. 반드시 로컬 환경에서만 사용하고 인터넷에 노출되는 서버에는 절대 올리지 말 것.
SQL 인젝션 개념 글: CWE-89: SQL 인젝션 완전 정리
1. DVWA란?
Damn Vulnerable Web Application의 줄임말
→ 의도적으로 취약하게 만들어진 웹 애플리케이션
목적:
→ SQL 인젝션, XSS, CSRF, Command 인젝션 등
다양한 웹 취약점을 안전한 환경에서 실습
→ 난이도 조절 가능 (Low / Medium / High)
왼쪽 메뉴에서 확인 가능한 취약점 목록:
| 항목 | 설명 |
| SQL Injection | SQL 인젝션 실습 |
| SQL Injection (Blind) | Blind SQL 인젝션 실습 |
| XSS (DOM/Reflected/Stored) | XSS 세 가지 유형 실습 |
| Command Injection | OS 명령어 인젝션 실습 |
| Brute Force | 무차별 대입 공격 실습 |
| File Upload | 악성 파일 업로드 실습 |
2. 사전 준비
Docker가 설치되어 있어야 한다. Docker 설치 방법은 아래 글 참고.
Docker 환경 구성 글: 버퍼 오버플로우 실습 1편 - 환경 구성
3. DVWA 실행
CMD에서 아래 명령어 입력:
docker run -it --privileged -p 80:80 --name dvwa vulnerables/web-dvwa
명령어 설명:
-it : 터미널 입출력 활성화
--privileged : 컨테이너에 높은 권한 부여
(Apache, MySQL 내부 서비스 실행 목적)
-p 80:80 : 컨테이너 80 포트를 내 PC 80 포트로 연결
→ 브라우저에서 http://localhost 로 접속 가능
--name dvwa : 컨테이너 이름 지정
vulnerables/web-dvwa : Docker Hub의 DVWA 공식 이미지
4. 브라우저에서 접속 및 로그인
브라우저에서:
http://localhost
접속하면 로그인 화면이 뜬다.

ID: admin
PW: password
5. DB 초기화
로그인하면 Database Setup 화면으로 이동한다.

Create / Reset Database 버튼 클릭.
클릭하면 DB가 생성되고 로그인 화면으로 이동
6. 다시 로그인
ID: admin
PW: password

7. 메인 화면 확인
로그인하면 DVWA 메인 화면이 뜬다. 좌측 하단에서 현재 설정을 확인할 수 있다.
Username: admin
Security Level: low
PHPIDS: disabled
Security Level 설명:
| 레벨 | 설명 |
| Low | 입력값 검증 없음. 가장 취약한 상태. 실습 시작에 적합 |
| Medium | 일부 필터링 적용. 우회 기법 필요 |
| High | 강한 보안 적용. 고급 우회 기법 필요 |
PHPIDS란?
PHP Intrusion Detection System
→ SQL 인젝션, XSS 같은 공격 패턴을 탐지/차단하는 보안 모듈
→ disabled = 꺼진 상태 → 공격이 그대로 통과
→ 실습에 최적화된 상태
8. SQL Injection 메뉴 접속
왼쪽 메뉴에서 SQL Injection 클릭.
User ID 입력창이 있는 화면이 뜨면 환경 구성 완료.

9. 컨테이너 재접속 방법
Docker Desktop을 껐다가 다시 켤 때:
docker start dvwa
브라우저에서 http://localhost 접속하면 바로 사용 가능하다.
마무리
DVWA 환경 구성이 완료됐다. 다음 글에서는 실제로 SQL 인젝션 공격을 단계별로 진행한다. Low 레벨에서 기본 공격부터 시작해서 DB 전체 정보를 추출하는 과정까지 다룬다.
'정보 보안 > 모의해킹' 카테고리의 다른 글
| SQL 인젝션 실습 2편 - DVWA Low 레벨 공격 (0) | 2026.07.15 |
|---|---|
| 버퍼 오버플로우 실습 2편 - 32비트/64비트 익스플로잇 과정 (0) | 2026.07.08 |
| 버퍼 오버플로우 실습 환경 구성 - Docker 설치부터 컨테이너 생성까지 (0) | 2026.07.08 |
| Burp suite(버프스위트) 설치 및 기본 설정 (0) | 2025.04.02 |