Burp Comparer 에서 두 요청 비교하기

Beginner
지금 연습하기

소개

Burp Suite 는 웹 애플리케이션 보안 테스트를 위한 강력한 도구 모음입니다. 가장 유용한 기능 중 하나는 Burp Comparer 로, HTTP 요청 또는 응답과 같은 두 개의 데이터를 시각적으로 "비교 (diff)"하는 도구입니다. 이는 세션 토큰, 숨겨진 폼 필드 또는 오류 메시지의 변경과 같이 취약점을 드러낼 수 있는 미묘한 차이를 식별하는 데 매우 유용합니다.

이 랩에서는 Burp Comparer 사용의 기본 워크플로우를 배우게 됩니다. Burp Proxy 를 사용하여 두 개의 유사한 HTTP 요청을 캡처하고, 이를 Comparer 도구로 보내며, 강조 표시된 차이점을 분석합니다.

프록시 기록에서 두 개의 유사한 요청 찾기

이 단계에서는 Burp Suite 와 웹 브라우저를 실행하여 두 개의 유사한 로그인 요청을 생성합니다. 이 요청들은 비교에 사용될 것입니다.

먼저 필요한 애플리케이션을 실행합니다. Burp Suite 와 Chromium 웹 브라우저 모두 데스크톱에서 찾을 수 있습니다.

  1. 데스크톱의 Burp Suite 아이콘을 더블 클릭하여 시작합니다. 대화 상자가 나타나면 기본 설정을 사용하고 Next를 클릭한 다음 Start Burp를 클릭할 수 있습니다.
  2. 데스크톱의 Chromium Web Browser 아이콘을 더블 클릭합니다.

다음으로 트래픽을 캡처해야 합니다. 다른 자격 증명을 사용하여 가상의 웹사이트에 두 번 로그인해 보겠습니다.

  1. Burp Suite 에서 Proxy 탭으로 이동한 다음 Intercept 하위 탭으로 이동합니다. 버튼이 Intercept is off라고 표시되어 있다면, 클릭하여 Intercept is on으로 변경합니다.
  2. Chromium 브라우저에서 다음 주소로 이동합니다: http://www.google.com. Burp Suite 에서 요청이 "멈추는" 것을 볼 수 있습니다.
  3. Burp Suite 로 돌아갑니다. 캡처된 요청을 볼 수 있습니다. 이 랩에서는 수정할 필요가 없습니다. Forward 버튼을 클릭하여 요청을 진행시키기만 하면 됩니다. 브라우저에 Google 홈페이지가 로드될 때까지 이 작업을 몇 번 반복합니다.
  4. 이제 대상 요청을 생성해 보겠습니다. 브라우저에서 "login page example"을 검색합니다. 간단한 로그인 폼을 제공하는 결과 중 하나를 클릭합니다. 이 예시에서는 페이지를 찾았고 사용자 이름에 user1, 비밀번호에 pass1을 입력했다고 가정합니다. 로그인 버튼을 클릭합니다.
  5. Burp Suite 로 돌아가서 Forward를 클릭하여 로그인 요청을 통과시킵니다.
  6. 브라우저로 돌아가서 user2pass2와 같은 다른 자격 증명을 입력하고 로그인 버튼을 다시 클릭합니다.
  7. Burp Suite 로 돌아가서 Forward를 한 번 더 클릭합니다.

이제 트래픽을 생성했으므로 프록시 기록에서 요청을 찾을 수 있습니다.

Burp Suite 에서 Proxy 탭으로 이동한 다음 HTTP history 하위 탭으로 이동합니다. 여기에서 프록시를 통과한 모든 요청의 로그를 볼 수 있습니다. 목록을 살펴보며 사용한 로그인 페이지로 가는 두 개의 POST 요청을 찾습니다. 이 두 요청은 다음 단계에서 비교할 요청입니다.

첫 번째 요청을 마우스 오른쪽 버튼으로 클릭하고 'Comparer 로 보내기'

이 단계에서는 두 개의 로그인 요청 중 첫 번째 요청을 Comparer 도구로 보냅니다.

Burp Suite 의 Proxy -> HTTP history 탭에 머물면서 캡처된 요청 목록을 볼 수 있습니다.

  1. 만든 첫 번째 로그인 요청 (예: 자격 증명 user1pass1을 포함하는 요청) 을 찾습니다.
  2. 이력 목록에서 해당 특정 요청을 마우스 오른쪽 버튼으로 클릭합니다. 그러면 많은 옵션이 있는 컨텍스트 메뉴가 열립니다.
  3. 이 컨텍스트 메뉴에서 Send to Comparer 옵션을 찾아 선택합니다.

이 작업은 선택한 요청의 복사본을 가져와 Comparer 도구에 로드합니다. 이제 Burp Suite 창 상단의 Comparer 탭이 강조 표시되거나 색상이 변경되어 새 데이터를 받았음을 나타냅니다. Comparer 탭을 클릭하여 항목이 하나 로드되었는지 확인할 수 있습니다.

두 번째 요청을 마우스 오른쪽 버튼으로 클릭하고 'Comparer 로 보내기'

이제 두 번째 로그인 요청을 Comparer 도구로 보냅니다. 이렇게 하면 비교에 필요한 두 번째 항목이 제공됩니다.

  1. Proxy -> HTTP history 탭으로 다시 이동합니다.
  2. 만든 두 번째 로그인 요청 (예: 자격 증명 user2pass2를 포함하는 요청) 을 찾습니다.
  3. 이력 목록에서 이 두 번째 요청을 마우스 오른쪽 버튼으로 클릭합니다.
  4. 나타나는 컨텍스트 메뉴에서 다시 Send to Comparer를 선택합니다.

이 작업을 수행하면 Comparer 탭에 두 요청이 모두 포함됩니다. Comparer 탭으로 전환하면 비교할 준비가 된 두 개의 항목이 나열된 것을 볼 수 있습니다.

Comparer 에서 두 항목을 선택하고 'Words'를 클릭하여 비교

Comparer 에 두 요청이 모두 로드되었으므로 실제 비교를 수행할 준비가 되었습니다.

  1. Burp Suite 의 Comparer 탭으로 이동합니다.
  2. Comparer 인터페이스 상단에서 보낸 항목 목록을 볼 수 있습니다. 두 개의 항목이 표시되어야 합니다.
  3. 두 항목을 모두 선택합니다. 첫 번째 항목을 클릭한 다음 Ctrl 키를 누른 상태에서 두 번째 항목을 클릭하여 수행할 수 있습니다. 이제 두 항목 모두 강조 표시되어야 합니다.
  4. 창 하단에서 비교 옵션을 볼 수 있습니다. 두 가지 주요 옵션은 WordsBytes입니다. Words 비교는 HTTP 요청과 같은 텍스트 기반 데이터에 이상적입니다. 단어별로 차이를 분석하여 출력을 매우 읽기 쉽게 만들기 때문입니다. Bytes 비교는 바이트 수준의 차이를 수행하며, 이는 이진 데이터에 더 적합합니다.
  5. Words 버튼을 클릭하여 비교를 시작합니다.

이제 Burp Suite 에서 두 요청을 처리하고 나란히 시각적 비교를 준비합니다.

요청 간의 강조 표시된 차이점 분석

이 마지막 단계에서는 비교 결과를 분석하여 두 요청 간에 변경된 내용을 이해합니다.

이전 단계에서 Words를 클릭한 후 Comparer 탭의 메인 패널이 업데이트되어 두 요청이 나란히 표시됩니다. Burp Comparer 는 차이점을 쉽게 파악할 수 있도록 색상 코딩 시스템을 사용합니다.

  • 노란색: 수정된 데이터를 강조 표시합니다.
  • 분홍색: 추가된 데이터를 강조 표시합니다.
  • 파란색: 삭제된 데이터를 강조 표시합니다.

두 요청 패널을 스크롤합니다. 측면의 스크롤 막대에도 색상 표시기가 있어 변경된 위치로 빠르게 이동하는 데 도움이 됩니다.

요청 본문의 차이점을 명확하게 볼 수 있어야 합니다. 사용자 이름 및 암호 매개변수 (user1user2pass1pass2) 의 값이 노란색으로 강조 표시되어 수정되었음을 나타냅니다.

웹 애플리케이션에 따라 다른 차이점도 발견할 수 있습니다. 예를 들어:

  • 새 매개변수 값의 길이가 다른 경우 Content-Length 헤더가 다를 수 있습니다.
  • 서버가 새 세션 ID 를 할당한 경우 Cookie 헤더가 변경되었을 수 있습니다.

이러한 강조 표시된 차이점을 분석하면 웹 애플리케이션이 다른 입력에 어떻게 응답하는지 빠르게 이해할 수 있습니다. 이는 광범위한 보안 취약점을 발견하는 기본적인 기술입니다.

요약

이 실습에서는 HTTP 요청을 분석하기 위해 Burp Comparer 를 사용하는 기본적인 워크플로우를 배웠습니다. 네트워크 트래픽을 성공적으로 생성하고, 프록시 기록에서 두 개의 유사한 요청을 분리하여 Comparer 도구로 보냈습니다. 단어 기반 비교를 수행함으로써 두 요청 간의 정확한 차이점을 시각적으로 식별할 수 있었습니다.

이 기술은 인증 메커니즘 분석, 매개변수 조작 테스트, 애플리케이션 응답이 다른 입력에 따라 어떻게 변경되는지 관찰하여 잠재적인 주입 지점 식별과 같은 많은 웹 보안 테스트 작업에 필수적입니다.