Pentest Playbook

File Upload 취약점 교육 커리큘럼

목적: 파일 업로드 취약점을 찾는 기본 과정부터 고도화 기법까지 (초/중급)
범위: 블랙박스 기반 → 침투 테스트 단계 진입까지
분량: 약 100페이지
언어/환경: PHP 기반 웹 애플리케이션


Part 1. 개요 및 환경 구성 (~10p)

Ch 1. 교육 개요 (2p)

Ch 2. 실습 환경 구성 (4p)

Ch 3. 파일 업로드 프로세스 이해 (4p)


Part 2. 정찰 및 열거 (~10p)

Ch 4. 업로드 포인트 발견 (5p)

Ch 5. 업로드 파일 경로 확인 (5p)


Part 3. 기본 공격 기법 (~18p)

Ch 6. 웹쉘 이해 및 작성 (8p)

Ch 7. 웹쉘 실행 결과 활용 (5p)

Ch 8. 서버 설정 미흡 사례 분석 (5p)


Part 4. 방어 우회 기법 (~22p)

Ch 9. 확장자 기반 우회 — Blacklist Bypass (6p)

확장자 설명
.php3, .php4, .php5, .php7 PHP 버전별 대체 확장자
.phtml PHP 코드 포함 가능한 HTML
.phar PHP Archive (실행 가능)
.phps PHP Source (설정에 따라 실행)
.inc Include 파일 (설정에 따라 실행)

Ch 10. Whitelist Bypass (5p)

Ch 11. Content-Type Bypass (4p)

확장자 Content-Type
.jpg image/jpeg
.png image/png
.gif image/gif
.pdf application/pdf
.php application/x-httpd-php

Ch 12. Magic Number (File Signature) Bypass (4p)

파일 형식 매직 넘버 (Hex) 매직 넘버 (ASCII)
GIF 47 49 46 38 39 61 GIF89a
PNG 89 50 4E 47 0D 0A 1A 0A .PNG....
JPEG FF D8 FF
PDF 25 50 44 46 %PDF
ZIP 50 4B 03 04 PK..

Ch 13. 복합 우회 (3p)


Part 5. 고도화 기법 (~22p)

Ch 14. Reverse Shell 연결 (6p)

Ch 15. 공격 지속성 확보 (5p)

Ch 16. 웹쉘 탐지 우회 (5p)

Ch 17. 숨겨진 업로드 기능 공격 (6p)


Part 6. 자동화 (~13p)

Ch 18. 업로드 가능 확장자 탐색 자동화 (5p)

Ch 19. 서버 정보 일괄 추출 자동화 (4p)

Ch 20. 업로드 공격 자동화 확장 (4p)


Part 7. 방어 및 탐지 관점 (~5p)

Ch 21. 대응방안 종합 (5p)


Part 8. 정리 (~3p)

Ch 22. 요약 및 실무 적용 (3p)

정찰/열거 → 업로드 포인트 발견 → 서버 스택 식별
     ↓
기본 공격 → 웹쉘 작성 → 업로드 → 경로 확인 → 명령 실행
     ↓
방어 우회 → 확장자/Content-Type/Magic Number/복합 우회
     ↓
고도화 → 리버스쉘 → 지속성 확보 → 탐지 우회
     ↓
자동화 → 확장자 퍼징 → 정보 수집 자동화 → 복합 퍼징
     ↓
침투 테스트 → 권한 상승 → 내부 피봇 → 목표 달성

페이지 배분 요약

Part 챕터 페이지
Part 1. 개요 및 환경 구성 Ch 1~3 10p
Part 2. 정찰 및 열거 Ch 4~5 10p
Part 3. 기본 공격 기법 Ch 6~8 18p
Part 4. 방어 우회 기법 Ch 9~13 22p
Part 5. 고도화 기법 Ch 14~17 22p
Part 6. 자동화 Ch 18~20 13p
Part 7. 방어 및 탐지 관점 Ch 21 5p
Part 8. 정리 Ch 22 3p
합계 ~103p

실습 목록 요약

# 챕터 실습 내용
1 Ch 2 환경 접속 및 정상 동작 확인
2 Ch 3 Burp Suite로 멀티파트 요청 구조 분석
3 Ch 4 디렉토리 스캔 + 서버 환경 파악
4 Ch 5 업로드 파일 접근 경로 탐색
5 Ch 6 기본 웹쉘 작성 → 업로드 → 명령 실행
6 Ch 7 웹쉘을 통한 서버 정보 수집 (수동)
7 Ch 8 서버 설정별 공격 성공/실패 비교
8 Ch 9 블랙리스트 환경에서 확장자 우회
9 Ch 10 .htaccess / .user.ini 업로드로 실행 우회
10 Ch 11 Content-Type 변조로 웹쉘 업로드
11 Ch 12 Magic Number 삽입 웹쉘 제작 및 업로드
12 Ch 13 다중 검증 환경에서 복합 우회
13 Ch 14 리버스쉘 연결 수립 및 대화형 쉘 획득
14 Ch 15 crontab 등록 및 백도어 은닉
15 Ch 16 난독화 웹쉘 제작 및 탐지 우회 테스트
16 Ch 17 숨겨진 API 엔드포인트 발견 및 업로드
17 Ch 18 확장자 퍼징 스크립트 작성 및 실행
18 Ch 19 서버 정보 일괄 추출 스크립트 작성
19 Ch 20 복합 조건 퍼징 및 Burp Intruder 활용
ESC

💡 검색 팁

  • #T1572 - 태그로 검색
  • persistence - 키워드로 검색