소개
Burp Repeater 사용법에 대한 실습에 오신 것을 환영합니다. Burp Repeater 는 Burp Suite 내에서 개별 HTTP 요청을 수동으로 조작하고 재발행하며 애플리케이션의 응답을 분석하는 간단하지만 강력한 도구입니다. 웹 애플리케이션 보안 테스터에게는 필수적인 도구로, 서버가 다양한 입력에 어떻게 응답하는지 관찰하여 취약점을 탐색할 수 있습니다.
이 실습에서는 Burp Repeater 의 핵심 워크플로우를 배우게 됩니다. 웹 애플리케이션에서 표준 요청을 캡처하고, 이를 Repeater 로 보내고, 매개변수를 수정한 다음, 서버로 다시 보내는 것부터 시작합니다. 마지막으로 수정된 요청에 대한 서버의 응답을 분석하고 요청 기록을 탐색하는 방법을 배우게 됩니다.
Repeater 탭에서 요청 선택하기
이 단계에서는 샘플 웹 애플리케이션에서 요청을 캡처하여 Burp Repeater 로 보내 조작합니다. 실습 환경에서는 이미 웹 애플리케이션과 Burp Suite 가 시작되었습니다. 브라우저는 Burp Suite 를 통해 트래픽을 프록시하도록 구성되어 있습니다.
먼저 트래픽을 생성해 보겠습니다.
- 데스크톱에서 웹 브라우저를 엽니다.
- 주소 표시줄에
http://127.0.0.1:5000을 입력하여 대상 애플리케이션으로 이동합니다. - 간단한 로그인 양식이 표시됩니다. 기본값 (
user및pass) 을 그대로 두고Submit버튼을 클릭합니다.
이제 Burp Suite 에서 이 요청을 찾아보겠습니다.
- Burp Suite 창으로 전환합니다.
Proxy탭으로 이동한 다음HTTP history하위 탭을 클릭합니다. 브라우저에서 만든 요청 목록이 표시됩니다./login엔드포인트로 가는POST요청을 찾습니다. 목록 상단 근처에 있어야 합니다. 해당 요청을 클릭하여 아래 패널에서 세부 정보를 확인합니다.- 요청 패널의 아무 곳이나 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서
Send to Repeater를 선택합니다. 단축키Ctrl+R을 사용할 수도 있습니다.
새 탭이 나타나고 Repeater 도구에서 주황색으로 깜박입니다. Repeater 탭을 클릭하여 방금 보낸 요청을 확인합니다.
헤더 또는 매개변수 값 수정하기
이 단계에서는 Repeater 탭으로 보낸 요청을 수정합니다. Repeater UI 는 왼쪽의 요청 패널과 오른쪽의 응답 패널이라는 두 개의 주요 섹션으로 나뉩니다. 현재 응답 패널은 비어 있는데, 이는 아직 Repeater 에서 요청을 보내지 않았기 때문입니다.
왼쪽의 요청 패널에 집중해 보겠습니다. 보내기 전에 요청의 어느 부분이든 여기서 편집할 수 있습니다. 여기에는 요청 라인, 헤더 및 요청 본문이 포함됩니다.
- 요청 패널 하단을 살펴보세요. 폼 데이터인
username=user&password=pass를 포함하는POST요청의 본문을 볼 수 있습니다. - 다른 사용자로 로그인할 수 있는지 테스트해 보겠습니다.
username매개변수의 값을user에서admin으로 변경합니다. 이제 해당 줄은 다음과 같이 보여야 합니다:username=admin&password=pass. - 헤더도 수정할 수 있습니다. 예를 들어,
User-Agent헤더를 찾아 값을My-Custom-Browser/1.0과 같이 사용자 지정 값으로 변경합니다.
이제 왼쪽 패널에 있는 수정된 요청을 보낼 준비가 되었습니다.
수정된 요청을 보내기 위해 'Send' 버튼 클릭하기
이 단계에서는 수정된 HTTP 요청을 서버로 보냅니다. 왼쪽 패널에서 요청을 편집한 후 다음 작업은 이를 전송하는 것입니다.
요청 패널 상단에서 Send 버튼을 찾을 수 있습니다. 이 버튼은 패널에 표시된 현재 요청을 발행하는 데 사용됩니다.
- 이전 단계에서 설명한 대로 요청이 수정되었는지 확인합니다 (예:
username이admin으로 설정됨). Send버튼을 클릭합니다.
Burp Repeater 는 이제 이 수정된 요청을 대상 서버인 127.0.0.1:5000으로 보냅니다. 잠시 후 서버의 응답이 오른쪽에 있는 응답 패널에 나타납니다.
서버 응답 분석하기
이 단계에서는 수정된 요청에 대한 서버의 응답을 분석합니다. Send를 클릭한 후 오른쪽 응답 패널에 서버에서 반환된 데이터가 채워졌습니다.
- 응답 패널을 살펴보세요. 상태 라인 (예:
HTTP/1.0 200 OK), 응답 헤더 및 응답 본문을 포함한 전체 HTTP 응답을 볼 수 있습니다. - 응답 본문을 보세요. 테스트 애플리케이션은 출력에 사용자 이름을 반영하므로 다음과 같은 메시지가 표시되어야 합니다:
Login attempt for user: 'admin' failed. Please try again.. 이는 서버가 수정된 입력을 처리했음을 확인합니다. - 응답 본문 위에는
Pretty,Raw,Hex,Render와 같은 여러 보기 옵션이 있습니다.Pretty: HTML 및 JSON 에 유용한 형식화된 응답을 보여줍니다.Raw: 서버에서 받은 정확한 바이트를 보여줍니다.Render: 웹 브라우저가 응답을 렌더링하는 것처럼 시도합니다.Render를 클릭하여 실패 메시지가 포함된 로그인 페이지의 시각적 표현을 확인합니다.
응답 분석은 중요한 기술입니다. 다른 페이로드를 보내고 응답을 관찰함으로써 애플리케이션이 어떻게 작동하는지 발견하고 잠재적인 취약점을 식별할 수 있습니다.
히스토리 화살표를 사용하여 보낸 요청 간 이동하기
이 단계에서는 Repeater 탭 내에서 히스토리 탐색 기능을 사용하는 방법을 배웁니다. Repeater 는 현재 탭에서 보낸 모든 요청의 히스토리를 유지하며, 이는 약간 다른 요청에 대한 응답을 비교하는 데 매우 유용합니다.
Send 버튼 옆에 숫자 (현재 1) 와 뒤로/앞으로 화살표 (< 및 >) 가 보입니다. 이를 통해 요청 히스토리를 단계별로 이동할 수 있습니다.
- 다른 히스토리 항목을 만들어 보겠습니다. 요청 패널에서
username을 다시user로 변경합니다. - 다시
Send를 클릭합니다.user에 대한 로그인 시도를 반영하도록 응답이 업데이트되는 것을 볼 수 있습니다.Send버튼 옆의 숫자가 이제2로 표시됩니다. - 이제 뒤로 화살표 (
<) 를 클릭합니다. 요청 및 응답 패널이 업데이트되어 첫 번째 요청 (username=admin포함) 과 해당 응답을 표시합니다. 숫자가1로 다시 변경됩니다. - 앞으로 화살표 (
>) 를 클릭하여 두 번째 요청 (username=user포함) 으로 돌아갑니다.
이 기능을 사용하면 변경 사항을 수동으로 다시 입력하거나 여러 Repeater 탭을 관리할 필요 없이 요청의 변형을 빠르게 테스트하고 결과를 비교할 수 있습니다.
요약
이 실습에서는 Burp Suite 의 핵심 구성 요소인 Burp Repeater 의 기본 작동 방식을 배웠습니다.
웹 애플리케이션에서 HTTP 요청을 캡처하여 Repeater 로 보내는 데 성공했습니다. 그런 다음 요청의 매개변수와 헤더를 수정하고, 수정된 요청을 서버에 다시 발행하고, 결과 응답을 분석하는 연습을 했습니다. 마지막으로 히스토리 탐색을 사용하여 보낸 다양한 요청 간에 효율적으로 전환하는 방법을 배웠습니다.
Burp Repeater 를 숙달하는 것은 수동 웹 애플리케이션 보안 테스트에 능숙해지는 데 중요한 단계입니다. 이는 광범위한 취약점을 탐색하는 데 필요한 제어 기능을 제공하기 때문입니다.
