Burp Suite는 웹 애플리케이션 보안 테스트를 위한 통합 침투 테스트 플랫폼입니다
영국 보안 회사인 PortSwigger에서 개발하였으며 웹 해킹, 취약점 분석, 모의해킹 등에서 널리 사용됩니다
대표적인
웹 프록시 도구이며, 웹 트래픽을 중간에서 가로채고 분석하거나 조작할 수 있습니다
Proxy는 사용자의 웹 요청과 서버 응답을 중간에서 가로채고 분석 및 수정할 수 있는 기능입니다Repeater는 가로챈 요청을 반복해서 전송하며 다양한 값을 테스트할 수 있습니다Intruder는 다양한 페이로드를 자동으로 입력하여 취약점 스캐닝을 수행합니다 (예: SQL Injection, XSS, Brute Force 등)Sequencer는 Burp Suite에서 웹 애플리케이션이 생성하는 토큰의 무작위성(랜덤성)을 분석하는 도구입니다 Proxy 기능을 사용하기 위해서는 인증서를 다운받아야 합니다
방법은 아래 2가지 방법이 있습니다
Burp Suite를 켠 상태에서 localhost:8080/cert에 접속을 하면 바로 인증서를 다운받을 수 있습니다
위 사진과 같이 경로를 지정해서 다운로드하면 됩니다
Burp Suite에서 우측 상단의 Setting을 들어간 후 Proxy - Options에서 Import / export CA certificate를 클릭하여 다운로드 합니다

다운받은 인증서인 cacert.der을 열면 키체인이 나타납니다
- View Certificates를 클릭해 Trust(신뢰) 부분을
Always Trust(항상 신뢰)로 바꿔줍니다- Keychain의 경우
System으로 설정하여 추가해줍니다
System Settings - WI-FI - Current network details - Proxies - Web proxy (HTTP), Secure web proxy (HTTPS)에서 아래의 사진과 같이 설정해주시면 됩니다
이제 초기 설정이 완료되었습니다!
Burp Suite를 켜고 Proxy - Intercept로 들어갑니다
아래의 Intercept off 버튼을 누르면 Intercept on으로 바뀌게 됩니다
이후 사이트 접속 시 아래의 사진처럼 확인이 가능합니다
GET 요청을 확인할 수 있습니다!
위의 사진으로 GET 요청에 대해서 분석을 해봅시다
GET /?client=safari HTTP/2
- GET: 메서드이며 서버로부터 리소스를 가져옵니다
- /: 요청 경로로 Google의 루트 페이지에 접속하겠다는 뜻 입니다
- ?client=safari: 쿼리 파라미터로 Google이 Safari 브라우저에서 요청이 왔음을 식별하는데 사용됩니다
- HTTP/2: 사용된 HTTP 프로토콜 버전입니다
HostHost: www.google.com
- 요청 대상 호스트로 www.google.com입니다
CookieCookie: NID=...; AEC=...
- 브라우저가 서버에게 보내는 쿠키 값입니다
- NID, AEC는 Google이 사용자 세션 및 보안 유지를 위해 사용하는 쿠키입니다
Sec-Fetch-DestSec-Fetch-Dest: document
- 이 요청의 목적이 HTML 문서임을 의미합니다
즉 웹 페이지 전체를 요청한 것입니다
User-AgentUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.4 Safari/605.1.15
- 사용자의 브라우저 정보입니다
- 운영체제: macOS 10.15.7
- 브라우저: Safari 18.4
- 렌더링 엔진: WebKit
AcceptAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
- 브라우저가 받아들일 수 있는 콘텐츠 타입(MIME type)을 나타냅니다
- HTML, XHTML, XML 우선순위가 높고 그 외 모든 파일은 낮은 우선순위로 허용합니다.
Sec-Fetch-Site Sec-Fetch-Site: none
- 요청이 현재 페이지와 같은 출처 (Origin)에서 온 것이 아님을 의미합니다
즉, 사용자가 직접 주소창에 입력했거나 북마크에 접속한 경우 등 입니다
Sec-Fetch-ModeSec-Fetch-Mode: navigate
- 전체 페이지 이동을 위한 요청이라는 의미입니다 (탐색 목적)
Accept-LanguageAccept-Language: en-US,en;q=0.9
- 사용자가 선호하는 언어입니다
여기서는 영어 (미국)이 우선이고, 일반 영어도 포함됩니다
PriorityPriority: u=0, i
- 요청의 우선순위를 나타냅니다
u=0은 기본 우선순위 (0),i는incremental의 의미로 일부 브라우저에서 리소스를 점진적으로 로드하는 데 관련됩니다
Accept-EncodingAccept-Encoding: gzip, deflate
- 브라우저가 압축된 응답을 허용함을 의미합니다
gzip또는deflate방식으로 압축된 응답을 받을 수 있음을 서버에게 알립니다
이 요청은 Safari 브라우저가 Google 메인 페이지를 열기 위해 보낸 GET 요청입니다
쿠키를 통해 로그인 상태를 유지하고 브라우저 및 OS 정보와 콘텐츠 우선순위 등을 서버에 전달해 적절한 응답을 받기 위한 메타데이터가 포함되어 있습니다
여기서 공격자는 내용을 바꿀 수 있습니다
내용을 바꾼 후 Forward를 누르면 전송이 됩니다
프록시 서버를 켜두면, 컴퓨터의 모든 트래픽 (예: 카카오톡, ChatGPT 웹, 브라우저 등)이 프록시를 통해 흐르게 됩니다
프록시 서버에서 Forward 안해주면 멈추거나 일부 앱/사이트가 접속 오류가 발생할 수 있습니다
Mac: WI-FI 세부설정 들어가서 프록시 끄기Window: 네트워크 및 인터넷 - 프록시 - 프록시 서버 사용 끄기Burp Suite는 웹 애플리케이션 보안 테스트의 주요한 도구입니다
HTTP 요청 분석을 해보았으니 이제 더 나아가 다양한 실습을 해보도록 합시다!