[TryHackMe] Burp Suite

코준·2025년 7월 17일

TryHackMe

목록 보기
28/32

Burp Suite

웹 애플리케이션의 보안 테스팅 프레임워크인 Burp Suite에 대한 기초를 이해해보자

물론 이전 Room에서 종종 Burp Suite의 사용이 있었지만, 이론적인 내용과 실질적으로 사용하는 방법에 대해서 자세하게 알아보자.

What Is Burp Suite

Burp Suite(버프 슈트)는 브라우저와 웹 서버 간의 HTTP/HTTPS 트래픽을 캡처하고 조작할 수 있는 프레임워크이다.

웹 애플리케이션 침투 테스트(Pen-Test)를 위한 종합적인 솔루션으로 설계된 프레임워크로, API를 사용하는 애플리케이션의 수동 보안 평가를 위한 업계 표준 도구가 되었다.

웹 서버에 리퀘스트가 도착하기 전에 가로채고, 살펴보고, 수정하고, 심지어 브라우저가 응답을 받기 전에 조작하는 능력을 통해서 수동 웹 애플리케이션 테스트에는 중요한 도구로 작용한다.

후술할 내용의 대부분은 Burp Suite Community Edition을 기준하여 서술한다.

Feature

  • Proxy : Burp Suite의 가장 유명한 기능으로 웹 애플리케이션과 상호작용하는 동안에 Request와 Response를 가로채고 수정할 수 있다.

  • Repeater : 동일한 Request를 여러 번 캡처하고 수정, 전송할 수 있게 한다. 여러 번의 페이로드를 작성하거나, SQLi 취약점 등을 찾기 위해서 엔드포인트의 기능을 테스트할 때 유용하다.

  • Intruder : Request로 엔드포인트를 공격할 수 있다. Brute Force 공격이나 Endpoint Fuzzing에 사용된다.

  • Decoder : 데이터 변환을 제공한다. 캡처된 정보를 디코딩하거나 전송 대상에 보내기 전에 페이로드를 인코딩할 수 있다.

  • Comparer : 두 데이터를 단어 혹은 바이트 단위에서 비교할 수 있다.

  • Sequencer : 세션 쿠키 값이나 다른 무작위로 생성된 것으로 추정되는 데이터처럼 토큰의 무작위성을 평가할 대 사용된다.

Community Edition에서는 기능의 제약이 있거나 라이선스가 부족할 수 있다. 하지만 Burp Suite Extender 모듈은 Extension을 프레임워크에 로드할 수 있고, 마켓플레이스에서 타사 모듈을 다운로드할 수도 있다.

대시보드(Dashborad)에서는 크게 Task와 Event log로 나눌 수 있다.

  • Tasks : Burp Suite가 애플리케이션 사용 중 수행할 백그라운드 작업을 정의한다. 방문 페이지를 자동으로 기록하는 Live Passive Crawl 작업이 있다.

  • Event log : 탐색할 Target 사이트의 상태를 기록하고 수행한 작업에 대한 정보와 연결 세부 정보를 제공한다.

탐색

메뉴바를 보면 여러 기능의 모듈을 선택할 수 있다.

Proxy 모듈이 선택된 상태에서는 하위 탭도 보이는데, 모듈별 설정과 옵션을 포함한다.

무려 따로 보고 싶으면 분리도 가능하다.

Setting

Burp Suite의 설정 옵션은 Global과 Project로 나뉜다.

Global 옵션은 애플리케이션 전체에 영향을 미치며
Project 옵션은 현재 프로젝트 세션에만 적용된다.(Community Edition은 적용되지 않는다.)

각 모듈의 하위 탭에서는 해당 모듈의 설정창을 바로 열 수 있다.

Proxy

가장 기본적이고 핵심적인 Burp Suite의 도구이다. 웹 서버와 유저간 request와 response를 가로챌 수 있다.

가로챈 트래픽을 조작하거나 다른 도구로 보내거나 목적지로 보낼 수 있다.

  • Intercepting : request를 가로채서 전달(Forwarding), 삭제(Dropping), 편집(Editing), 혹은 다른 모듈로 보내는 등의 작업이 가능하다.

  • Taking Control : 요청을 가로챌 수 있는 능력은 테스터에게 웹 트래픽에 대한 완전한 제어건을 부여한다.

  • Capture and Logging : Intercept가 꺼져 있어도 프록시 요청을 캡쳐하고 기록할 수 있다.

  • WebSockets : 웹 소켓 통신도 캡쳐하고 기록할 수 있다.

  • Logs and History : HTTP History와 WebSockets History에서 캡쳐된 기록을 열람할 수 있고, 필요하면 다른 모듈로 보낼 수 있다.

프록시 설정

기본적으로는 Response를 가로채지 않는데, 위 이미지와 같이 설정하면 Response를 가로챌 수 있다.
Match and Replace 섹션에서 정규표현식을 사용해 들어오고 나가는 요청을 수정할 수 있다. !

Target

타겟은 테스트 범위를 제어하는 기능과 이하 세 가지 탭으로 구성된다.

  • Site map : 웹 애플리케이션을 트리 구조로 매핑한다. 프록시가 켜진 상태로 방문하는 모든 페이지가 표시되고 사이트 맵을 생성한다. 웹 애플리케이션이 접근하는 모든 API 엔드포인트가 사이트맵에 캡쳐된다.

  • Issue definitions : Community에는 Professional에 있는 취약점 스캐닝 기능은 없지만, 스캐너가 찾는 모든 취약점 목록에는 접근 가능하다. 웹 취약점의 광범위한 목록을 제공한다.

  • Scope settings : 타겟 범위를 제어할 수 있다. 특정 도메인/IP를 포함하거나 제외해 테스트 범위를 제어한다. 특별하게 목표하는 웹 애플리케이션에 집중하고 불필요한 트래픽 캡처를 피할 수 있다.

Scoping and Targeting

모든 트래픽을 캡처하고 기록하는 것을 방지하려면 특정 웹 애플리케이션에 집중해 테스트하도록 범위를 설정해야 한다.

위에서 언급한 타겟을 이용해 Add To Scope을 선택한다.

스코프에 포함되지 않는 타겟에 대한 기록을 중단하기 위해 Yes를 선택해야 한다.

프록시에서 request와 response의 설정을 위처럼 선택해야 정해진 스코프 내에 없는 모든 트래픽을 무시해 깔끔하게 잡아낼 수 있다.

HTTPS Proxying

HTTP 트래픽을 가로챌 때는 TLS가 활성화된 사이트 (HTTPS)로 이동하면 문제가 발생할 수 있는데, PortSwigger CA가 연결을 보호할 권한이 없다는 오류가 나타날 수 있다.

브라우저가 Burp Suite가 제시하는 인증서를 신뢰하지 않기 때문인데, 브라우저의 신뢰 인증 기관 목록에 수동으로 추가할 수 있다.

  • CA 인증서 다운로드 : Burp Proxy가 활성화된 상태에서 http://burp/cert로 이동해 cacert.der 파일을 다운로드한다.
  • firefox 인증서 설정 접근 : Firefox URL 바에 about:preferences를 입력해 설정 페이지로 이동하고 certificates를 검색해 View Certificates를 클릭한다.
  • CA 인증서 가져오기 : Import 버튼으로 이미 다운로드한 cacert.der 파일을 가져온다.
  • CA 인증서 신뢰 설정 : Trust this CA to identify websites를 체크하고 OK를 클릭한다.

브라우저의 신뢰할 수 있는 인증 기관 목록에 PortSwigger CA 인증서를 추가했다. TLS가 활성화된 모든 웹사이트에 접속할 때 인증서 오류 없이 탐색할 수 있다.

기본적인 Burp Suite의 인터페이스, 설정, 프록시에 대해서 다루었다.
이는 매우 기본적인 기술이고, 여러 기능을 시도해보면서 모듈에 익숙해져야 한다.
다음 포스팅에서는 수동 테스트와 요청 조작을 위해 Burp Suite Repeater에 대해서 다루어보자.

profile
Hi !

0개의 댓글