
OWASP ZAP을 사용한 DVWA 웹 애플리케이션 보안 평가 — 취약점 스캐닝, RCE(CVE-2012-1823) 분석 및 수정 보고서.
**DVWA(Damn Vulnerable Web App)**에 대한 실습형 웹 애플리케이션 보안 평가로, OWASP ZAP(Zed Attack Proxy) 2.17.0을 사용하여 수행했습니다. 이 프로젝트는 전체 워크플로우를 문서화합니다: 정찰(스파이더링), 자동 취약점 스캔, 그리고 발생한 경고 분석 — 원격 코드 실행(CVE-2012-1823) 발견을 포함합니다.
⚠️ 면책 조항: 이 평가는 교육 목적으로 의도적으로 취약하게 만들어진 애플리케이션인 DVWA를 대상으로 격리된 실습 환경에서 수행되었습니다. 소유하지 않거나 명시적인 서면 허가를 받지 않은 시스템을 절대 스캔하거나 공격하지 마십시오.
OWASP ZAP의 스파이더링 및 능동 스캔 기능을 사용하여 DVWA의 일반적인 웹 애플리케이션 취약점을 식별하고 문서화하며, 자동화된 보안 스캔 결과를 읽고 해석하고 보고하는 방법을 연습합니다.
| 도구 | 목적 |
|---|
| OWASP ZAP 2.17.0 | 웹 애플리케이션 취약점 스캐너 (스파이더 + 능동 스캔) |
| DVWA | 의도적으로 취약하게 만들어진 PHP/MySQL 웹 앱 (대상) |
| Kali Linux | 공격자/테스트 플랫폼 |
http://192.168.109.115/dvwa/index.phpadmin능동 스캔은 1,157개의 요청을 전송하고 72개의 새로운 경고를 발생시켰으며, ZAP은 이를 17개의 개별 경고 유형으로 그룹화했습니다:
| # | 경고 | 인스턴스 | 위험도 |
|---|---|---|---|
| 1 | 원격 코드 실행 — CVE-2012-1823 | 2 | 🔴 높음 |
| 2 | 소스 코드 노출 — CVE-2012-1823 | 2 | 🔴 높음 |
| 3 | Anti-CSRF 토큰 부재 | 2 | 🟠 중간 |
| 4 | Content Security Policy (CSP) 헤더 미설정 | 4 | 🟠 중간 |
| 5 | 디렉터리 브라우징 | 3 | 🟠 중간 |
| 6 | HTTP 전용 사이트 | 1 | 🟠 중간 |
| 7 | 숨김 파일 발견 | 1 | 🟠 중간 |
| 8 | Anti-clickjacking 헤더 누락 | 2 | 🟠 중간 |
| 9 | 쿠키 HttpOnly 플래그 없음 | 2 | 🟡 낮음 |
| 10 | SameSite 속성이 없는 쿠키 | 2 | 🟡 낮음 |
| ... | (정보/낮음 경고 7개 추가 — 전체 ZAP 내보내기 참조) | ⚪ 정보 |
각 경고에 대한 자세한 내용은
docs/findings.md에 있습니다.
식별된 가장 심각한 문제는 CVE-2012-1823로 추적되는 높은 위험도의 원격 코드 실행 취약점입니다 (잘 알려진 PHP-CGI 쿼리 문자열 구문 분석 결함).
http://192.168.109.115/dvwa/login.php?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input= 문자가 없는 쿼리 문자열을 올바르게 처리하지 못합니다. 이로 인해 공격자가 PHP 인터프리터에 원시 명령줄 스타일 플래그(-d allow_url_include=1 -d auto_prepend_file=php://input)를 전달하여 임의의 PHP 코드 실행 및 소스 코드 노출을 가능하게 합니다.mod_rewrite와 RewriteCond/RewriteRule 지시문을 사용하여 잘못된 형태의 쿼리 문자열이 PHP-CGI에 도달하기 전에 차단합니다.| 스크린샷 | 설명 |
|---|---|
![]() | 로그인 후 DVWA 홈 페이지 |
![]() | OWASP ZAP 2.17.0 환영 화면 |
![]() | 대상 입력 전 자동 스캔 탭 |
![]() | 공격 시작 전 DVWA로 대상 URL 설정 |
![]() | 17개의 경고 유형 발견 (위험도별 그룹화) |
![]() | RCE (CVE-2012-1823) 경고 — URL, 위험도, 공격 페이로드, 증거 |
![]() | RCE (CVE-2012-1823) — 설명, 기타 정보 및 해결 방법 |
![]() | 능동 스캔 100% — 1,157개 요청, 72개 새 경고 |
![]() | 스파이더 결과 — 9개 URL 발견, 7개 노드 추가 |
X-Frame-Options / frame-ancestors).HttpOnly 및 SameSite 속성을 설정하여 세션 하이재킹 및 CSRF 위험을 줄입니다.dvwa-zap-pentest/
├── README.md # 이 파일 — 프로젝트 개요 및 요약
├── docs/
│ └── findings.md # 각 경고에 대한 전체 상세 보고서
├── screenshots/ # 위에서 참조된 번호가 매겨진 스크린샷
└── LICENSE
이 프로젝트는 웹 애플리케이션 보안 학습 연습의 일환으로 교육 목적으로 생성되었습니다.