반응형
**Directory Traversal(경로 조작 공격)**을 실무 관점에서 정리할게.
이번에도 원리 → 공격 예시 → 공격 목표 → 방어 방법/WAF 대응까지 포함했어.
🔥 1. Directory Traversal 개념
정의:
Directory Traversal은 웹 애플리케이션에서 파일 경로 입력값을 조작하여, 원래 접근이 제한된 서버 파일이나 디렉토리에 접근하는 공격을 말해.
쉽게 말하면:
- 공격자가 ../ 같은 경로 조작으로 상위 디렉토리로 이동
- 서버 내부 중요한 파일(설정, 비밀번호, 로그 등)을 읽거나 다운로드 가능
🔹 2. 공격 원리
[사용자 입력: 파일 경로] → [서버 파일 접근] → [검증 미비] → [상위/민감 파일 접근]
예시:
GET /download?file=report.pdf HTTP/1.1
공격자가:
GET /download?file=../../../../etc/passwd HTTP/1.1
- 서버가 입력값 검증 없이 처리하면 /etc/passwd 파일 내용이 노출됨
🔹 3. 실무 공격 예시
1) Linux / Unix
../../../../etc/passwd ../../../../var/www/html/config.php
2) Windows
..\..\..\Windows\System32\drivers\etc\hosts ..\..\..\inetpub\wwwroot\web.config
3) URL 인코딩 우회
..%2f..%2f..%2fetc%2fpasswd
🔹 4. 공격 목표
- 서버 민감 정보 획득: /etc/passwd, DB 설정 파일
- 웹 애플리케이션 설정 파일 탈취: config.php, web.config
- 소스 코드 유출 → 추가 취약점 공격 발판
- 로그, 인증 정보 탈취
🔹 5. WAF / 보안관제 대응
- 경로 패턴 탐지
- ../, ..\\, %2e%2e%2f, %252e%252e%252f
- URL 인코딩 디코딩 후 탐지
- 허용 경로 제한
- 서버 파일 접근 시 화이트리스트 경로만 허용
- 상대경로/상위경로 사용 금지
- 이상 행위 탐지
- 반복적으로 상위 디렉토리 접근 시도
- 공격 IP 차단, 알람 발생
- 권한 제한
- 웹서버 계정으로 접근 가능한 디렉토리 최소화
- 민감 파일은 접근 불가
🔹 6. 개발 단계 방어
- 입력값 검증: .. 또는 / 사용 제한
- 정규식/화이트리스트 경로만 허용
- realpath() 등 함수로 실제 경로 확인 후 접근
- 민감 파일 디렉토리는 웹 서버 밖에 저장
// PHP 예시: realpath로 경로 검증 $baseDir = '/var/www/uploads/'; $filePath = realpath($baseDir . $_GET['file']); if(strpos($filePath, $baseDir) !== 0) { die("Invalid file path"); }
🎯 한 문장 요약
Directory Traversal = 입력값으로 파일 경로를 조작하여 원래 접근이 제한된 서버 파일을 읽거나 다운로드하는 공격이며, 입력 검증과 화이트리스트, 경로 제한, WAF 룰로 방어 가능하다.
반응형
'2. 보안 > 2. 보안 관제' 카테고리의 다른 글
| [보안_GPT] SSRF(Server-Side Request Forgery)란? (0) | 2025.11.14 |
|---|---|
| [보안_GPT] RCE(Remote Code Execution) 란? (0) | 2025.11.14 |
| [보안_GPT] File Upload Vulnerability 이란? (0) | 2025.11.14 |
| [보안_GPT] Command Injection 이란? (0) | 2025.11.14 |
| [보안_GPT] CSRF(Cross-Site Request Forgery)란? (0) | 2025.11.14 |