
💡 Burp Suite (버프 스위트) 심층 분석 및 실무 가이드
📌 핵심 요약 (TL;DR)
- 본질: 웹 브라우저와 타겟 서버 사이에 프록시(Proxy)로 개입하여, 오고 가는 모든 HTTP/HTTPS 트래픽을 가로채고 조작 및 퍼징(Fuzzing)하는 업계 표준 웹 보안 진단 플랫폼임.
- 위협 및 목적: 해커는 클라이언트 측 검증을 우회하고 서버로 전송되는 파라미터를 변조하여 SQLi, XSS, IDOR 등의 치명적인 취약점을 발굴 및 익스플로잇함.
- 대응 방안: L7 웹 방화벽(WAF)을 통해 비정상적인 페이로드 패턴을 차단하고, 서버사이드(Server-side) 파라미터 무결성 검증 및 인증서 피닝(Certificate Pinning)을 강제해야 함.
📑 목차 (Table of Contents)
⚠️ 면책 조항 (Disclaimer)
본 포스팅의 보안/해킹 관련 실습은 허가된 통제 환경(개인 VM 및 합법적 모의해킹 계약 범위)에서만 수행됨.
허가되지 않은 타인의 웹 서비스에 대해 파라미터를 변조하거나 취약점 스캐너를 사출하는 행위는 「정보통신망 이용촉진 및 정보보호 등에 관한 법률」 제48조 위반으로 형사처벌 대상임.
모든 분석은 벤더사 공식 레퍼런스 및 NVD 공인 데이터를 기반으로 작성됨.📖 학습 목적: 보안 취약점의 동작 원리를 이해하고 방어 전략을 수립하기 위한 학습 및 지식 공유 목적임. 모든 실습은 허가된 통제 환경에서만 진행함.
자주 등장하는 용어 (초보자 참고)
| 약어 | 전체 명칭 | 한 줄 설명 |
|---|---|---|
WAF |
Web Application Firewall | 웹 애플리케이션으로 들어오는 악성 페이로드 트래픽을 차단하는 방화벽 |
Proxy |
Intercepting Proxy | 클라이언트와 서버 사이에서 트래픽을 중계하며 패킷을 멈추고 변조할 수 있는 대기소 |
Repeater |
Burp Repeater | 캡처한 HTTP 요청을 수동으로 조작하여 서버에 반복적으로 재전송(Replay)하는 핵심 모듈 |
Intruder |
Burp Intruder | 특정 파라미터 위치에 대량의 사전 파일을 무차별 대입(Brute-force)하는 자동화 퍼징 도구 |
CA |
Certificate Authority | HTTPS 트래픽을 평문으로 가로채기 위해 브라우저에 강제 설치해야 하는 자체 루트 인증서 |
BApp |
Burp App Store | 버프 스위트의 기능을 확장하기 위해 작성된 서드파티 플러그인 스토어 |
OAST |
Out-of-Band AST | 외부 서버(Collaborator)와의 통신을 유발하여 블라인드 취약점을 비동기적으로 탐지하는 기법 |
1. 🏗️ 아키텍처 및 랩(Lab) 토폴로지
- 난이도: 중급 / 고급
- 주제 분류: 웹 보안 / 오펜시브 툴 / 취약점 스캐너
- 핵심 키워드:
#BurpSuite#웹해킹#프록시 - 사전 지식: HTTP 프로토콜 구조, 웹 세션(Cookie) 메커니즘, TLS/SSL 인증서 체인 원리
(💡 모바일 환경에서는 표를 좌우로 스크롤하여 상세 내용을 확인 권장.)
| 구분 | OS / 플랫폼 (버전 필수) | 컨테이너 / 네트워크 환경 | IP 대역 | 인프라 내 역할 |
|---|---|---|---|---|
| 공격 (Red) | Kali Linux 2026.x | 네이티브 모의 공격망 | 10.0.0.50/24 |
Burp Suite 구동, 로컬 프록시(8080) 설정 후 타겟 트래픽 변조 및 익스플로잇 사출 |
| 타겟 (Target) | Ubuntu 24.04 / Nginx | 취약 웹(DVWA) 환경 | 10.0.0.100/24 |
조작된 페이로드를 검증 없이 수용하는 웹 취약점 발현 노드 |
| 방어 (Blue) | ModSecurity / OPNsense | 온프레미스 망분리 구성 | 10.0.0.200/24 |
L7 WAF 룰셋을 통한 스캐너 고유 패턴 및 악성 파라미터 차단 관제 |
아키텍처 통신 흐름도
[공격자 브라우저] [Burp Suite (Proxy: 8080)] [타겟 웹 서버 : 10.0.0.100]
| | |
|-- (1) 요청: 파라미터 정상 전송 (id=1) --------->| (패킷 캡처 및 Intercept 상태 대기) |
| |-- (2) 변조: Repeater로 악성 구문 삽입 후 사출 ->|
| | |
|<- (4) 응답: 브라우저에 최종 결과 렌더링 -------|<- (3) 응답: 200 OK (DB 쿼리 결과 덤프) -------|
2. 🧠 핵심 개념 및 기술적 정의
2-1. 상세 정의 및 동작 메커니즘
- 정의: Java 기반으로 작성된 통합형 웹 애플리케이션 보안 테스트(DAST) 플랫폼으로, 프록시, 스캐너, 무차별 대입 엔진을 단일 툴킷에 집약한 도구임.
- 탄생 배경: Dafydd Stuttard가 분절되어 있던 웹 해킹 도구들을 하나로 통합하기 위해 개발하였으며, 현재 전 세계 모의해킹 실무의 90% 이상을 장악한 표준임.
- 인프라 내 역할: 클라이언트(프론트엔드) 브라우저 트래픽을 로컬 포트로 우회시켜, 자바스크립트 유효성 검사를 무력화하고 원시 패킷을 변조하는 MITM(중간자) 역할을 수행함.
- 메커니즘: 로컬 루프백에 리스너를 개방하고 트래픽을 수신함. HTTPS 통신을 복호화하기 위해 동적으로 위조된 SSL 인증서를 브라우저에 주입하며, 변조된 패킷을 서버로 재암호화 전송함.
- 버전 히스토리: Community(무료), Professional(유료, 고속 Intruder/스캐너 지원), Enterprise(CI/CD 파이프라인 자동화 특화) 에디션으로 분리 발전함.
2-2. MITRE ATT&CK & Kill Chain 매핑
| Kill Chain Phase | MITRE Tactic (전술) | Technique (기법) | ID |
|---|---|---|---|
| Reconnaissance | Reconnaissance | Active Scanning: Vulnerability Scanning | T1595.002 |
| Delivery | Initial Access | Exploit Public-Facing Application | T1190 |
| Exploitation | Credential Access | Brute Force: Password Guessing | T1110.001 |
| Exploitation | Defense Evasion | Modify System Process (WAF Evasion) | T1055 |
| Actions on Objectives | Collection | Data from Local System | T1005 |
3. ⚙️ 주요 특징 및 통신 규격
3-1. 기술적 핵심 특징
특징 1 — 아키텍처 모델: OAST(Out-of-Band AST) 아키텍처를 내장하여 외부 서버(Collaborator)와의 비동기 통신을 유발, 블라인드 취약점을 정확히 탐지함.특징 2 — 인증·암호화 방식: HSTS 및 최신 TLS가 적용된 타겟을 가로채기 위해 Burp 고유의 Root CA를 브라우저 신뢰 저장소에 강제 등록하는 방식을 취함.특징 3 — 버전별 보안 차이: Pro 버전은 능동형(Active) 스캐너를 통해 Payload를 직접 주입하나, Community 버전은 수동 분석 기능에만 제약됨.특징 4 — 에러 처리 및 로깅: Logger 탭을 통해 스캐너 및 모든 모듈이 사출한 요청/응답의 원시 패킷과 HTTP 상태 코드를 실시간 감사(Audit)함.특징 5 — 성능 및 확장성: BApp 스토어를 통해 Python, Ruby, Java 기반의 서드파티 플러그인(예: JSON Web Token Attacker)을 원클릭으로 통합함.특징 6 — 의존성 및 통합 포인트: Java Runtime Environment (JRE)에 종속되어 구동됨.특징 7 — 기본 보안 설정 (Default Security Posture): 로컬 프록시 리스너는 기본적으로127.0.0.1:8080에 바인딩되어 외부망에서의 무단 프록시 접근을 통제함.
3-2. 실무 관점 장단점 (Pros & Cons)
| 구분 | 시스템 관점 특성 | 보안 및 실무 관점의 트레이드오프 |
|---|---|---|
| 장점 1 | 업계 표준의 절대성 | 모의해커들이 가장 신뢰하는 플랫폼으로, 전 세계 레퍼런스가 방대함 |
| 장점 2 | 독보적인 수동 분석 효율 | Repeater와 Proxy를 오가는 직관적인 워크플로우로 비즈니스 로직 진단에 최적화 |
| 장점 3 | 강력한 확장성 (BApp) | 암호화된 파라미터도 커스텀 확장 플러그인을 통해 런타임에 자동 복호화 후 퍼징 |
| 단점 1 | 평문 통신 또는 취약한 암호화 | 프록시 중계를 위해 자체 인증서를 브라우저에 강제 주입해야 하는 번거로움 발생 |
| 단점 2 | 치명적인 메모리 누수 | JVM 기반이므로 거대한 사이트맵 스캐닝 시 OOM(Out of Memory) 크래시 빈번 |
| 단점 3 | 초보자의 라이브 서버 훼손 | 능동형 스캐너를 맹목적으로 구동 시 대량의 가비지 데이터 인젝션으로 인한 DoS 유발 |
3-3. 서비스 포트 및 통신 규격 (IANA Protocol Specification)
| 포트 | 프로토콜 | 서비스명 | IANA 공식 역할 | 보안 위협 및 공격 벡터 |
|---|---|---|---|---|
8080 |
TCP | HTTP-Alternate | 웹 프록시 및 대안 포트 | 로컬에서 브라우저 트래픽을 가로채는 MITM 진입점 |
80/443 |
TCP | HTTP/S | 웹 데이터 통신 | Burp Suite가 파라미터 변조 후 서버로 사출하는 타겟 포트 |
1337 |
TCP | REST API | 임의 할당 포트 | Headless 모드 시 API 제어 포트로 활용되며 노출 시 RCE 위험 |
4. 🛠️ 인프라 셋업 및 구축 명세
4-1. 사전 요구 사항 (Dependencies)
- 패키지:
default-jre(Java Runtime Environment) 및burpsuite실행 JAR 파일. - 환경 변수: 대규모 타겟 메모리 붕괴 방지를 위한 JVM Heap 할당 옵션(
-Xmx) 필수. - 버전 제약: 타겟의 최신 TLS 1.3 암호화를 원활히 복호화하기 위해 최신 버전(v2024.x 이상) 유지 권장.
4-2. 시스템 구축 (Step-by-Step)
# [Step 1: 시스템 패키지 업데이트 및 Java 의존성 설치]
apt update && apt install -y default-jre burpsuite
# [Step 2: 대규모 스캐닝을 위한 JVM Heap 메모리 4GB 강제 할당 구동]
java -jar -Xmx4G /usr/bin/burpsuite
# [Step 3: Headless 모드 (GUI 없이 REST API 자동화 봇 구동 시)]
java -Djava.awt.headless=true -jar /usr/bin/burpsuite --project-file=scan.burp &
(📝 동작 해설: -Xmx 옵션은 Burp가 거대한 HTTP 히스토리를 로드할 때 발생하는 메모리 고갈 장애를 커널 레벨에서 방지함.)
5. 📖 상세 명세 (명령어 / API / 프로토콜)
5-1. 기본 구문 및 명령어 구조 (Syntax)
📌 Syntax 표기법: <필수항목> = 반드시 입력 (Required) · [선택항목] = 생략 가능 (Optional)
# CLI 툴킷(Java 런타임) 명령어 구조
<바이너리명> [옵션_플래그] [서브_파라미터] <타겟>
파라미터별 상세 설명
| 파라미터 | 필수 여부 | 타입 | 역할 및 설명 | 실전 값 예시 |
|---|---|---|---|---|
<바이너리명> |
필수 | 실행 파일 | JVM 엔진 구동 명령어. | java |
[옵션_플래그] |
선택 | 스위치 | 메모리 할당 및 헤드리스(Headless) 모드 제어 플래그. | -Xmx8G, -jar |
[서브_파라미터] |
선택 | 값 | 실행할 jar 파일의 절대 경로. | burp.jar |
<타겟> |
필수 | 주소 | 프로젝트 파일(.burp) 로드 등 종단점 인자. |
--project-file=app.burp |
실전 명령어 예시 — 구성 요소 대조
| 전체 명령어 | 바이너리 | 옵션 플래그 | 서브 파라미터 | 타겟 |
|---|---|---|---|---|
java -Xmx4G -jar burp.jar --project-file=app.burp |
java |
-Xmx4G -jar |
burp.jar |
--project-file=app.burp |
java -Djava.awt.headless=true -jar burp.jar |
java |
-D... -jar |
burp.jar |
(없음) |
5-2. 실행 옵션 및 제어 플래그 전체 목록 (Execution Flags)
(Burp는 GUI 내 컨피그가 핵심이므로 실무에서 WAF 우회 및 스캔 정밀도를 제어하는 핵심 파라미터를 명세함.)
🔗 연결 옵션 — 타겟 호스트·포트 지정 및 연결 방식 제어
| 플래그 (GUI 경로) | 동작 원리 및 공식 매뉴얼 기반 설명 | 완전한 실전 사용 예시 | 실무/보안 활용 관점 |
|---|---|---|---|
Proxy > Bind to port |
로컬 리스너 포트 및 인터페이스 바인딩 | 127.0.0.1:8080 지정 |
브라우저 트래픽 가로채기를 위한 진입점 통제 |
Network > Upstream proxy |
타겟 도달 전 거쳐야 할 사내망 프록시 체이닝 설정 | Proxy: 10.1.1.1:3128 |
폐쇄망 내부에서 외부로 타격 시 필수 우회로 세팅 |
Project > Match & Replace |
오가는 패킷의 특정 정규식을 런타임 자동 치환 | User-Agent → Googlebot |
WAF의 디폴트 탐지 차단 기만 및 스텔스 스캐닝 |
🔐 인증 옵션 — 자격증명 및 세션 제어
| 플래그 (GUI 경로) | 동작 원리 및 공식 매뉴얼 기반 설명 | 완전한 실전 사용 예시 | 실무/보안 활용 관점 |
|---|---|---|---|
Network > Platform Auth |
NTLM, Basic 인증이 걸린 망 진입 시 헤더 자동 주입 | Type: NTLM, User: root |
인증을 돌파하고 내부망 개발 서버 취약점 스캐닝 강행 |
Network > Client SSL |
mTLS를 요구하는 API 타격 시 클라이언트 인증서 로드 | P12 파일 로드 및 PW 입력 |
금융권/공공망 폐쇄 API 모의해킹 시 인증서 피닝 우회 |
📄 출력 옵션 — 결과 포맷·상세도·저장 경로 제어
| 플래그 (GUI 경로) | 동작 원리 및 공식 매뉴얼 기반 설명 | 완전한 실전 사용 예시 | 실무/보안 활용 관점 |
|---|---|---|---|
Scanner > Crawl Limit |
JS 렌더링 및 크롤링 뎁스(Depth) 상한선 조정 | Fastest / Limit 뎁스 3 |
방대한 레거시 서버 스캔 시 무한 루프 붕괴 방지 |
Target > Save as XML |
맵핑된 도메인 트리 및 취약점 증거를 파일로 덤프 | HTML/XML 리포트 저장 |
모의해킹 최종 산출물 및 개발팀 이관용 포렌식 리포팅 |
⏱ 타이밍 옵션 — 스캔 속도·스레드·딜레이 제어
| 플래그 (GUI 경로) | 동작 원리 및 공식 매뉴얼 기반 설명 | 완전한 실전 사용 예시 | 실무/보안 활용 관점 |
|---|---|---|---|
Intruder > Resource Pool |
동시 사출 스레드(Threads) 수 및 요청 딜레이 조정 | Threads: 1, Delay: 1.5s |
WAF의 속도 제한(Rate Limiting) 우회 및 스텔스 퍼징 |
자주 쓰는 옵션 조합
| 목적 | 조합 예시 (GUI 로직) |
|---|---|
| 비파괴 안전 스캐닝 | Scanner > Audit Issues 에서 Light Active Scan 체크로 DB 훼손 방지 |
| 브루트포스 타격 극대화 | Intruder > Payloads > Type: Cluster Bomb + ID/PW 사전 파일 결합 |
5-3. 비대화형 명령어 (Non-Interactive Commands)
(최신 DevSecOps 파이프라인에서 CLI 및 REST API로 자동화하는 명령어 명세임.)
🔍 정찰 및 열거
| 명령어 | 파싱 메커니즘 및 런타임 결과 | 완전한 실전 사용 예시 |
|---|---|---|
curl -X POST |
JSON 페이로드로 타겟 URL을 REST API에 전송하여 백그라운드 자동 크롤링 킥오프함 | curl -X POST -k "http://127.0.0.1:1337/v0.1/scan" -d '{"urls":["http://10..."]}' |
💥 익스플로잇 및 페이로드 전달
| 명령어 | 파싱 메커니즘 및 런타임 결과 | 완전한 실전 사용 예시 |
|---|---|---|
sqlmap --proxy |
외부 해킹 툴(SQLmap)의 트래픽을 Burp 로컬 포트로 라우팅하여 공격 패킷을 디버깅함 | sqlmap -u "http://10.0.0.100/vuln.php?id=1" --proxy="http://127.0.0.1:8080" |
🎯 포스트 익스플로잇 및 유틸리티
| 명령어 | 파싱 메커니즘 및 런타임 결과 | 완전한 실전 사용 예시 |
|---|---|---|
curl -X GET |
킥오프된 스캔 태스크의 진행 상태(%, 발견된 이슈 수)를 JSON 형식으로 파싱하여 반환함 | curl -X GET -k "http://127.0.0.1:1337/v0.1/scan/1/status" | jq |
5-4. 대화형 내부 명령어 (Interactive Commands)
(Burp Suite 실무 템포를 장악하는 모의해커의 핵심 단축키 명세임.)
🗂 탐색 및 열거
| 내부 명령 | 기술적 동작 및 설명 | 실전 타이핑 예시 | 적용 시나리오 |
|---|---|---|---|
[Ctrl] + [R] |
캡처한 패킷을 수동 조작 모듈(Repeater)로 전송함 | 단축키 입력 |
의심스러운 파라미터(예: id=1)를 직접 변조 및 재전송할 때 |
[Ctrl] + [I] |
패킷을 무차별 대입 모듈(Intruder)로 전송함 | 단축키 입력 |
로그인 실패 폼을 캡처하여 브루트포스 공격을 세팅할 때 |
[Ctrl] + [Space] |
Repeater 탭에서 조작된 패킷을 타겟 서버로 즉시 사출함 | 단축키 입력 |
마우스 클릭 없이 패킷 반응을 밀리초 단위로 확인할 때 |
6. 🚀 핵심 페이로드 치트시트 (Cheat Sheet)
실전 모의해킹 시 Intruder를 활용하여 WAF를 뚫고 취약점을 타격하는 조합 페이로드 및 우회 로직 치트시트임.
| 페이로드 (Intruder / Match & Replace) | 파싱 메커니즘 및 런타임 결과 | 목적 / 우회 기법 |
|---|---|---|
Pitchfork 타입 + ID/PW Wordlist |
2개의 파라미터 위치에 각기 다른 사전 파일을 1:1로 매칭하여 동시 무차별 대입함 | 가장 효율적인 크리덴셜 스터핑(Credential Stuffing) 계정 탈취 |
Transfer-Encoding: chunked |
Chunked BApp 확장을 통해 악성 페이로드(<script>)를 바이트 단위로 쪼개서 전송 |
시그니처 정규식에 의존하는 구형 L7 방화벽 검사 완벽 기만 |
X-Forwarded-For: 127.0.0.1 |
헤더 치환을 통해 모든 요청이 로컬에서 온 것처럼 위조하여 서버에 인젝션 | 관리자 페이지 IP 접근 통제(ACL) 및 Rate Limiting 일괄 무력화 |
7. 🎯 심층 킬체인 워크플로우 (Deep Dive)
7-1. 취약점 식별 (CVE / CWE)
Burp Suite의 Intercept 기능을 통해 즉각적으로 노출되고 장악당하는 치명적 웹 설계 결함(CWE) 목록임.
| 식별 코드 | 취약점 명칭 및 익스플로잇 연계 원리 | 파급력 (Impact) | 대응/패치 방안 |
|---|---|---|---|
CWE-89 |
SQL Injection — 폼 파라미터(id=admin'--)를 Repeater로 변조 전송하여 DB 쿼리 논리 우회 |
백엔드 데이터베이스 덤프 및 관리자 권한 완전 장악 | MyBatis/JPA 등 프레임워크 기반의 Prepared Statement 구조 강제화 |
CWE-79 |
Cross-Site Scripting (XSS) — 클라이언트 JS 길이 제한을 Proxy에서 우회하여 스크립트 강제 주입 | 타 사용자의 세션 쿠키 탈취 및 브라우저 강제 악성코드 드롭 | 출력되는 모든 사용자 입력값에 대해 HTML Entity 멸균 인코딩 적용 |
CWE-601 |
Open Redirect — 리다이렉트 파라미터(next=)를 해커 도메인으로 변조하여 전송 |
피싱 사이트로 유도하여 사용자 자격 증명 2차 탈취 | 리다이렉트 대상 도메인을 서버 내 화이트리스트 배열로 하드코딩 |
7-2. 킬체인 전개 스텝 분석
- 난이도: 초급
- 전제: 타겟망(
10.0.0.100) 쇼핑몰 결제 모듈에서 '상품 가격'이 클라이언트 측에서 서버로 평문 전송되는 아키텍처 결함 존재함. - 탐지 가능성:
Medium(WAF에 비정상 파라미터 룰셋 부재 시 탐지 불가)
Phase 1 — 통신 Intercept 및 파라미터 파악 (Reconnaissance)
# 브라우저에서 '결제' 버튼을 클릭하는 순간 Burp Proxy가 트래픽을 정지(Intercept)시킴
POST /checkout.php HTTP/1.1
Host: 10.0.0.100
...
item_id=1024&price=50000&qty=1
Phase 2 — 비즈니스 로직 수동 변조 (Weaponization)
# 해커가 패킷을 풀어주기 전, 에디터에서 price 값을 '0'으로 수동 조작 후 Forward(전송)함
item_id=1024&price=0&qty=1
Phase 3 — 로직 우회 및 횡적 이동 (Actions on Objectives)
# [결과 렌더링: 서버사이드 무결성 검증 누락으로 인한 0원 결제 승인 완료]
HTTP/1.1 200 OK
{"status": "success", "message": "결제가 완료되었습니다. 금액: 0원"}
8. ⚔️ 실전 심화 시나리오
📘 Scenario: WAF 시그니처 룰셋 우회를 위한 HTTP Parameter Pollution (HPP) 공격
- 학습 목표: 타겟 앞단 ModSecurity WAF가
UNION SELECT시그니처를 차단할 때, Repeater를 이용해 파라미터 변수를 중복 전송하는 HPP 기법으로 파서(Parser)의 맹점을 찔러 우회함.
# [Step 1: 기본 페이로드 사출 및 WAF 차단 확인]
# Burp Repeater 전송:
GET /vuln.php?id=1 UNION SELECT password FROM users HTTP/1.1
# 결과: WAF가 악성 문자열 감지 후 HTTP 403 Forbidden 반환
# [Step 2: HPP 페이로드 분리 인젝션]
# 파라미터 'id'를 두 번 선언하여 WAF와 WAS(PHP)의 파싱 해석 차이를 유도함.
# WAF는 첫 번째 id(=1)만 검사하지만, 백엔드는 마지막 파라미터(UNION...)를 병합 실행함.
GET /vuln.php?id=1&id=UNION SELECT password FROM users HTTP/1.1
# [결과 검증]
# L7 방화벽의 시그니처 정규식을 완벽히 우회하고 타겟 서버의 DB 비밀번호 해시 테이블을 덤프 탈취함.
9. 🩹 트러블슈팅 및 장애 대응 (RCA)
| 에러 로그 (Symptom) | 발생 원인 (Root Cause) | 해결책 (Resolution) |
|---|---|---|
Your connection is not private (NET::ERR_CERT_AUTHORITY_INVALID) |
브라우저가 Burp Suite가 동적으로 생성한 가짜 인증서를 신뢰하지 않아 HTTPS 통신 하드 브레이크 | http://burp 에 접속하여 PortSwigger CA 인증서를 다운로드 후 브라우저 '루트 인증기관'에 수동 등록 |
java.lang.OutOfMemoryError: Java heap space |
거대한 사이트맵 스캐닝 누적으로 인해 JVM 기본 메모리(1GB) 한계 도달 붕괴 | CLI 기동 시 java -Xmx8G -jar burp.jar 옵션을 부여하여 램 점유 한계치를 오버라이드 |
The client failed to negotiate a TLS connection... |
타겟 서버가 레거시 TLS 1.0 등 비표준 알고리즘을 사용하여 Burp Java 엔진과 호환 실패 | Project Options > TLS 메뉴에서 구형 프로토콜 및 모든 Cipher Suite를 강제 활성화 조치 |
10. 🛡️ 방어 아키텍처 및 위협 헌팅 엔지니어링
10-1. MITRE D3FEND 매핑
| 방어 전술 (Tactic) | 방어 기법 (Technique) | 차단 원리 및 메커니즘 | ID (Code) |
|---|---|---|---|
Isolate |
Network Traffic Filtering | WAF를 전진 배치하여 알려진 스캐너의 시그니처 및 헤더 패턴 원천 차단 | D3-NTF |
Detect |
Rate Limiting | Intruder 봇 퍼징이 유발하는 짧은 시간 내 대규모 동일 파라미터 요청 임계치 격리 | D3-RL |
Harden |
Connection Authentication | API 통신 시 인증서 피닝(Certificate Pinning)을 강제하여 Burp 프록시 중계 무력화 | D3-CA |
Harden |
Message Encryption | 파라미터 난독화 및 AES 전송을 통해 Repeater 수동 조작 시 무결성 검증 에러 유도 | D3-ME |
10-2. 인프라 하드닝 및 방어 기준
- 파라미터 무결성 아키텍처:
- 클라이언트(브라우저)에서 넘어오는 모든 입력값은 절대 신뢰해서는 안 되며, 반드시 백엔드 서버의 세션 변수 및 데이터베이스 원본 값과 교차 검증(Server-side Validation)해야 함.
- 스캐너의 대량 폼(Form) 제출을 방어하기 위해 핵심 로직에 CSRF Anti-Token을 강제 인포싱함.
10-3. IaC 기반 자동화 보안 설정 (ModSecurity 방어 룰셋)
# [ModSecurity 방어 룰셋: Burp Scanner 고유 헤더 및 퍼징 트래픽 L7 차단 인포싱]
# 1. Burp 스캐너가 삽입하는 디폴트 헤더 문자열(Collaborator 핑거프린트 등) 즉각 차단
SecRule REQUEST_HEADERS:User-Agent "burpcollaborator" "id:1001,phase:1,deny,status:403,msg:'Burp Suite Scanner Detected'"
# 2. XSS 및 SQLi의 조작 특수문자(<, >, ', UNION)가 파라미터에 포함 시 Drop
SecRule ARGS|REQUEST_URI "@rx (?i)(union.*select.*|script.*>|onmouseover.*=)" "id:1002,phase:2,deny,status:406,msg:'Malicious Payload Injection Blocked'"
# 3. 단일 IP에서 10초 내 동일 로그인 URI에 20회 이상 접근 시 격리(Rate Limit)
SecRuleIP REQUEST_URI "/login.php" "id:1003,phase:1,pass,nolog,setvar:ip.login_count=+1,expirevar:ip.login_count=10"
SecRule IP:LOGIN_COUNT "@gt 20" "id:1004,phase:1,deny,status:429,msg:'Brute Force Attempt Detected by Intruder'"
10-4. 인시던트 대응 절차 (IR Playbook)
| 단계 | 대응 행동 | 담당 | 소요 시간 |
|---|---|---|---|
| 1. 탐지 | WAF 로깅에서 특정 외부 IP의 403/406 에러 폭주(Intruder 퍼징 징후) 알람 인지 | SOC Analyst | T+0 |
| 2. 격리 | 경보를 유발한 출발지 IP 대역 전체를 WAF 블랙리스트에 긴급 등록(Drop 처리) | IR Team | T+5분 |
| 3. 증거수집 | 스캐너가 타격한 파라미터 중 HTTP 200 OK 응답이 발생한 성공 엔드포인트 리버스 추적 분석 | Forensic Analyst | T+30분 |
| 4. 원인분석 | 조작된 파라미터가 DB 쿼리를 변조(SQLi)했는지 소스코드 레벨 교차 검증 | IR Team / Dev | T+2시간 |
| 5. 쇄신 | 타격당한 파라미터에 대한 서버사이드 유효성 검사 패치 긴급 배포 | SysAdmin | T+4시간 |
10-5. 위협 헌팅 탐지 룰셋 (Suricata NIDS)
# [Suricata 룰] Burp Collaborator 도메인 질의 시그니처 헌팅 (OAST 스캔 방어)
alert dns $HOME_NET any -> any any (msg:"ET HUNTING Burp Collaborator DNS Query Detected"; dns.query; content:".burpcollaborator.net"; nocase; classtype:attempted-recon; sid:5000001; rev:1;)
# [Suricata 룰] 웹 해킹 툴의 전형적인 User-Agent 패턴 헌팅
alert http $EXTERNAL_NET any -> $HOME_NET any (msg:"ET SCAN Burp Suite User-Agent Detected"; flow:established,to_server; http.user_agent; content:"BurpCollaborator"; nocase; classtype:attempted-recon; sid:5000002; rev:1;)
11. 🔗 글로벌 공식 레퍼런스 데이터베이스 (References)
- PortSwigger (Burp 공식 벤더사):
https://portswigger.net/burp - NVD (National Vulnerability Database):
https://nvd.nist.gov/ - MITRE ATT&CK 기술 분석:
https://attack.mitre.org/techniques/T1595/002/ - OWASP 공식 가이드:
https://owasp.org/ - IANA 공식 프로토콜 명세서 (RFC):
https://datatracker.ietf.org/doc/html/rfc2616 - CWE 공식 데이터베이스 (CWE-89 등):
https://cwe.mitre.org/data/definitions/89.html - Exploit-DB:
https://www.exploit-db.com/ - KISA 보안 취약점 가이드:
https://www.kisa.or.kr/
12. 🏁 결론 및 비즈니스 임팩트 (Wrap-up)
🎓 이 포스팅에서 배운 것
- 공격 관점: 클라이언트 측 데이터 검증을 우회하고 브라우저 트래픽을 가로채어 변조하는 프록시(Proxy) 기반 공격의 원리를 파악함.
- 방어 관점: WAF의 속도 제한 룰셋 설계법, 그리고 서버사이드 파라미터 무결성 검증 부재가 가져오는 킬체인 파급력을 익힘.
- 다음 단계: 통제된 랩 환경을 구축하고 Burp Repeater를 이용해 직접 파라미터 난독화 및 WAF 우회 인젝션을 수행하는 실습을 강력히 권장함.
🔰 엔지니어링 방어 철학
(✏️ Architected by Elpam.k)
"아름답게 코딩된 프론트엔드 UI와 자바스크립트 유효성 검증은, 해커가 Burp Suite 프록시를 켜는 순간 아무런 의미 없는 종이 쪼가리로 전락함." 웹 서비스 해킹의 90%는 개발자가 '클라이언트에서 넘어오는 데이터는 정상일 것'이라고 믿는 순진한 가정에서 비롯됨. 방화벽이 막아줄 것이라는 안일함은 WAF 우회 기법 앞에 처참히 무너짐. 진정한 보안 엔지니어는 브라우저가 보내는 단 1바이트의 파라미터조차 해커가 위조한 폭탄일 수 있다는 '제로 트러스트(Zero Trust)' 마인드셋을 가지고, 백엔드 DB에 도달하기 전 모든 데이터의 무결성을 서버사이드에서 강제 멸균 처리(Sanitization)하는 아키텍처를 영구적으로 인포싱해야 함.
'보안 기술 > 해킹 툴' 카테고리의 다른 글
| Netcat(nc) (0) | 2026.04.08 |
|---|---|
| cURL (0) | 2026.04.08 |
| Wireshark (1) | 2026.04.08 |
| Gobuster (고버스터) (0) | 2026.04.08 |
| Nmap (Network Mapper) (2) | 2026.04.08 |
Discussion 0