Burp Repeater 에서 요청 조작 및 재전송하기

Beginner
지금 연습하기

소개

Burp Repeater 사용법에 대한 실습에 오신 것을 환영합니다. Burp Repeater 는 Burp Suite 내에서 개별 HTTP 요청을 수동으로 조작하고 재발행하며 애플리케이션의 응답을 분석하는 간단하지만 강력한 도구입니다. 웹 애플리케이션 보안 테스터에게는 필수적인 도구로, 서버가 다양한 입력에 어떻게 응답하는지 관찰하여 취약점을 탐색할 수 있습니다.

이 실습에서는 Burp Repeater 의 핵심 워크플로우를 배우게 됩니다. 웹 애플리케이션에서 표준 요청을 캡처하고, 이를 Repeater 로 보내고, 매개변수를 수정한 다음, 서버로 다시 보내는 것부터 시작합니다. 마지막으로 수정된 요청에 대한 서버의 응답을 분석하고 요청 기록을 탐색하는 방법을 배우게 됩니다.

Repeater 탭에서 요청 선택하기

이 단계에서는 샘플 웹 애플리케이션에서 요청을 캡처하여 Burp Repeater 로 보내 조작합니다. 실습 환경에서는 이미 웹 애플리케이션과 Burp Suite 가 시작되었습니다. 브라우저는 Burp Suite 를 통해 트래픽을 프록시하도록 구성되어 있습니다.

먼저 트래픽을 생성해 보겠습니다.

  1. 데스크톱에서 웹 브라우저를 엽니다.
  2. 주소 표시줄에 http://127.0.0.1:5000을 입력하여 대상 애플리케이션으로 이동합니다.
  3. 간단한 로그인 양식이 표시됩니다. 기본값 (userpass) 을 그대로 두고 Submit 버튼을 클릭합니다.

이제 Burp Suite 에서 이 요청을 찾아보겠습니다.

  1. Burp Suite 창으로 전환합니다.
  2. Proxy 탭으로 이동한 다음 HTTP history 하위 탭을 클릭합니다. 브라우저에서 만든 요청 목록이 표시됩니다.
  3. /login 엔드포인트로 가는 POST 요청을 찾습니다. 목록 상단 근처에 있어야 합니다. 해당 요청을 클릭하여 아래 패널에서 세부 정보를 확인합니다.
  4. 요청 패널의 아무 곳이나 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 Send to Repeater를 선택합니다. 단축키 Ctrl+R을 사용할 수도 있습니다.

새 탭이 나타나고 Repeater 도구에서 주황색으로 깜박입니다. Repeater 탭을 클릭하여 방금 보낸 요청을 확인합니다.

헤더 또는 매개변수 값 수정하기

이 단계에서는 Repeater 탭으로 보낸 요청을 수정합니다. Repeater UI 는 왼쪽의 요청 패널과 오른쪽의 응답 패널이라는 두 개의 주요 섹션으로 나뉩니다. 현재 응답 패널은 비어 있는데, 이는 아직 Repeater 에서 요청을 보내지 않았기 때문입니다.

왼쪽의 요청 패널에 집중해 보겠습니다. 보내기 전에 요청의 어느 부분이든 여기서 편집할 수 있습니다. 여기에는 요청 라인, 헤더 및 요청 본문이 포함됩니다.

  1. 요청 패널 하단을 살펴보세요. 폼 데이터인 username=user&password=pass를 포함하는 POST 요청의 본문을 볼 수 있습니다.
  2. 다른 사용자로 로그인할 수 있는지 테스트해 보겠습니다. username 매개변수의 값을 user에서 admin으로 변경합니다. 이제 해당 줄은 다음과 같이 보여야 합니다: username=admin&password=pass.
  3. 헤더도 수정할 수 있습니다. 예를 들어, User-Agent 헤더를 찾아 값을 My-Custom-Browser/1.0과 같이 사용자 지정 값으로 변경합니다.

이제 왼쪽 패널에 있는 수정된 요청을 보낼 준비가 되었습니다.

수정된 요청을 보내기 위해 'Send' 버튼 클릭하기

이 단계에서는 수정된 HTTP 요청을 서버로 보냅니다. 왼쪽 패널에서 요청을 편집한 후 다음 작업은 이를 전송하는 것입니다.

요청 패널 상단에서 Send 버튼을 찾을 수 있습니다. 이 버튼은 패널에 표시된 현재 요청을 발행하는 데 사용됩니다.

  1. 이전 단계에서 설명한 대로 요청이 수정되었는지 확인합니다 (예: usernameadmin으로 설정됨).
  2. Send 버튼을 클릭합니다.

Burp Repeater 는 이제 이 수정된 요청을 대상 서버인 127.0.0.1:5000으로 보냅니다. 잠시 후 서버의 응답이 오른쪽에 있는 응답 패널에 나타납니다.

서버 응답 분석하기

이 단계에서는 수정된 요청에 대한 서버의 응답을 분석합니다. Send를 클릭한 후 오른쪽 응답 패널에 서버에서 반환된 데이터가 채워졌습니다.

  1. 응답 패널을 살펴보세요. 상태 라인 (예: HTTP/1.0 200 OK), 응답 헤더 및 응답 본문을 포함한 전체 HTTP 응답을 볼 수 있습니다.
  2. 응답 본문을 보세요. 테스트 애플리케이션은 출력에 사용자 이름을 반영하므로 다음과 같은 메시지가 표시되어야 합니다: Login attempt for user: 'admin' failed. Please try again.. 이는 서버가 수정된 입력을 처리했음을 확인합니다.
  3. 응답 본문 위에는 Pretty, Raw, Hex, Render와 같은 여러 보기 옵션이 있습니다.
    • Pretty: HTML 및 JSON 에 유용한 형식화된 응답을 보여줍니다.
    • Raw: 서버에서 받은 정확한 바이트를 보여줍니다.
    • Render: 웹 브라우저가 응답을 렌더링하는 것처럼 시도합니다. Render를 클릭하여 실패 메시지가 포함된 로그인 페이지의 시각적 표현을 확인합니다.

응답 분석은 중요한 기술입니다. 다른 페이로드를 보내고 응답을 관찰함으로써 애플리케이션이 어떻게 작동하는지 발견하고 잠재적인 취약점을 식별할 수 있습니다.

히스토리 화살표를 사용하여 보낸 요청 간 이동하기

이 단계에서는 Repeater 탭 내에서 히스토리 탐색 기능을 사용하는 방법을 배웁니다. Repeater 는 현재 탭에서 보낸 모든 요청의 히스토리를 유지하며, 이는 약간 다른 요청에 대한 응답을 비교하는 데 매우 유용합니다.

Send 버튼 옆에 숫자 (현재 1) 와 뒤로/앞으로 화살표 (<>) 가 보입니다. 이를 통해 요청 히스토리를 단계별로 이동할 수 있습니다.

  1. 다른 히스토리 항목을 만들어 보겠습니다. 요청 패널에서 username을 다시 user로 변경합니다.
  2. 다시 Send를 클릭합니다. user에 대한 로그인 시도를 반영하도록 응답이 업데이트되는 것을 볼 수 있습니다. Send 버튼 옆의 숫자가 이제 2로 표시됩니다.
  3. 이제 뒤로 화살표 (<) 를 클릭합니다. 요청 및 응답 패널이 업데이트되어 첫 번째 요청 (username=admin 포함) 과 해당 응답을 표시합니다. 숫자가 1로 다시 변경됩니다.
  4. 앞으로 화살표 (>) 를 클릭하여 두 번째 요청 (username=user 포함) 으로 돌아갑니다.

이 기능을 사용하면 변경 사항을 수동으로 다시 입력하거나 여러 Repeater 탭을 관리할 필요 없이 요청의 변형을 빠르게 테스트하고 결과를 비교할 수 있습니다.

요약

이 실습에서는 Burp Suite 의 핵심 구성 요소인 Burp Repeater 의 기본 작동 방식을 배웠습니다.

웹 애플리케이션에서 HTTP 요청을 캡처하여 Repeater 로 보내는 데 성공했습니다. 그런 다음 요청의 매개변수와 헤더를 수정하고, 수정된 요청을 서버에 다시 발행하고, 결과 응답을 분석하는 연습을 했습니다. 마지막으로 히스토리 탐색을 사용하여 보낸 다양한 요청 간에 효율적으로 전환하는 방법을 배웠습니다.

Burp Repeater 를 숙달하는 것은 수동 웹 애플리케이션 보안 테스트에 능숙해지는 데 중요한 단계입니다. 이는 광범위한 취약점을 탐색하는 데 필요한 제어 기능을 제공하기 때문입니다.