Burp Suite로 HTTP 요청 분석하기

맑음·2025년 5월 2일
post-thumbnail

Burp Suite란?

Burp Suite는 웹 애플리케이션 보안 테스트를 위한 통합 침투 테스트 플랫폼입니다
영국 보안 회사인 PortSwigger에서 개발하였으며 웹 해킹, 취약점 분석, 모의해킹 등에서 널리 사용됩니다

대표적인 웹 프록시 도구이며, 웹 트래픽을 중간에서 가로채고 분석하거나 조작할 수 있습니다

주요 도구

1. Proxy

  • Proxy는 사용자의 웹 요청과 서버 응답을 중간에서 가로채고 분석 및 수정할 수 있는 기능입니다
  • 브라우저에 Burp의 프록시 주소를 설정하여 사용합니다

2. Repeater

  • Repeater는 가로챈 요청을 반복해서 전송하며 다양한 값을 테스트할 수 있습니다
  • 수동 테스트에 적합합니다

3. Intruder

  • Intruder는 다양한 페이로드를 자동으로 입력하여 취약점 스캐닝을 수행합니다 (예: SQL Injection, XSS, Brute Force 등)
  • 로그인 우회, 인증 우회 등에 자주 사용됩니다

4. Sequencer

  • Sequencer는 Burp Suite에서 웹 애플리케이션이 생성하는 토큰의 무작위성(랜덤성)을 분석하는 도구입니다
  • 세션 ID, CSRF 토큰, 인증 링크 등 예측 불가능해야 하는 값들이 실제로 얼마나 안전한지를 평가할 수 있습니다

Burp Suite로 HTTP 요청 분석하기

초기 설정

Proxy 기능을 사용하기 위해서는 인증서를 다운받아야 합니다

1. 인증서 설치

방법은 아래 2가지 방법이 있습니다

방법 1. localhost:8080/cert 접속을 통한 다운로드

Burp Suite를 상태에서 localhost:8080/cert에 접속을 하면 바로 인증서를 다운받을 수 있습니다
위 사진과 같이 경로를 지정해서 다운로드하면 됩니다

방법 2. Burp Suite에서 직접 다운로드

Burp Suite에서 우측 상단의 Setting을 들어간 후 Proxy - Options에서 Import / export CA certificate를 클릭하여 다운로드 합니다

2. 인증서 신뢰 (Mac 기준)

다운받은 인증서인 cacert.der을 열면 키체인이 나타납니다

  • View Certificates를 클릭해 Trust(신뢰) 부분을 Always Trust(항상 신뢰)로 바꿔줍니다
  • Keychain의 경우 System으로 설정하여 추가해줍니다

3. 웹 프록시 서버 설정 (Mac 기준)

System Settings - WI-FI - Current network details - Proxies - Web proxy (HTTP), Secure web proxy (HTTPS)에서 아래의 사진과 같이 설정해주시면 됩니다
이제 초기 설정이 완료되었습니다!

HTTP 요청 분석하기

Burp Suite를 켜고 Proxy - Intercept로 들어갑니다
아래의 Intercept off 버튼을 누르면 Intercept on으로 바뀌게 됩니다
이후 사이트 접속 시 아래의 사진처럼 확인이 가능합니다
GET 요청을 확인할 수 있습니다!

요청 분석하기

위의 사진으로 GET 요청에 대해서 분석을 해봅시다

요청 라인

GET /?client=safari HTTP/2
  • GET: 메서드이며 서버로부터 리소스를 가져옵니다
  • /: 요청 경로로 Google의 루트 페이지에 접속하겠다는 뜻 입니다
  • ?client=safari: 쿼리 파라미터로 Google이 Safari 브라우저에서 요청이 왔음을 식별하는데 사용됩니다
  • HTTP/2: 사용된 HTTP 프로토콜 버전입니다

헤더

  1. Host
Host: www.google.com
  • 요청 대상 호스트로 www.google.com입니다
  1. Cookie
Cookie: NID=...; AEC=...
  • 브라우저가 서버에게 보내는 쿠키 값입니다
  • NID, AEC는 Google이 사용자 세션 및 보안 유지를 위해 사용하는 쿠키입니다
  1. Sec-Fetch-Dest
Sec-Fetch-Dest: document
  • 이 요청의 목적이 HTML 문서임을 의미합니다
    즉 웹 페이지 전체를 요청한 것입니다
  1. User-Agent
User-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
  1. Accept
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  • 브라우저가 받아들일 수 있는 콘텐츠 타입(MIME type)을 나타냅니다
    • HTML, XHTML, XML 우선순위가 높고 그 외 모든 파일은 낮은 우선순위로 허용합니다.
  1. Sec-Fetch-Site
Sec-Fetch-Site: none
  • 요청이 현재 페이지와 같은 출처 (Origin)에서 온 것이 아님을 의미합니다
    즉, 사용자가 직접 주소창에 입력했거나 북마크에 접속한 경우 등 입니다
  1. Sec-Fetch-Mode
Sec-Fetch-Mode: navigate
  • 전체 페이지 이동을 위한 요청이라는 의미입니다 (탐색 목적)
  1. Accept-Language
Accept-Language: en-US,en;q=0.9
  • 사용자가 선호하는 언어입니다
    여기서는 영어 (미국)이 우선이고, 일반 영어도 포함됩니다
  1. Priority
Priority: u=0, i
  • 요청의 우선순위를 나타냅니다
    u=0은 기본 우선순위 (0), iincremental의 의미로 일부 브라우저에서 리소스를 점진적으로 로드하는 데 관련됩니다
  1. Accept-Encoding
Accept-Encoding: gzip, deflate
  • 브라우저가 압축된 응답을 허용함을 의미합니다
    gzip 또는 deflate 방식으로 압축된 응답을 받을 수 있음을 서버에게 알립니다

요약

이 요청은 Safari 브라우저가 Google 메인 페이지를 열기 위해 보낸 GET 요청입니다
쿠키를 통해 로그인 상태를 유지하고 브라우저 및 OS 정보와 콘텐츠 우선순위 등을 서버에 전달해 적절한 응답을 받기 위한 메타데이터가 포함되어 있습니다

Forward

여기서 공격자는 내용을 바꿀 수 있습니다
내용을 바꾼 후 Forward를 누르면 전송이 됩니다

프록시 서버 사용 시 주의사항

프록시 서버를 켜두면, 컴퓨터의 모든 트래픽 (예: 카카오톡, ChatGPT 웹, 브라우저 등)이 프록시를 통해 흐르게 됩니다
프록시 서버에서 Forward 안해주면 멈추거나 일부 앱/사이트가 접속 오류가 발생할 수 있습니다

프록시 작업 끝났을 때 꼭 해야 할 것

  • 컴퓨터의 프록시 설정을 해제해야 정상적으로 인터넷 사용 가능!
  • Burp suite 끄기
  • Mac: WI-FI 세부설정 들어가서 프록시 끄기
  • Window: 네트워크 및 인터넷 - 프록시 - 프록시 서버 사용 끄기

마무리

Burp Suite는 웹 애플리케이션 보안 테스트의 주요한 도구입니다
HTTP 요청 분석을 해보았으니 이제 더 나아가 다양한 실습을 해보도록 합시다!

profile
내일도 맑음

0개의 댓글