소개
Burp Suite 는 웹 애플리케이션 보안 테스트를 위한 강력한 도구 모음입니다. 가장 유용한 기능 중 하나는 Burp Comparer 로, HTTP 요청 또는 응답과 같은 두 개의 데이터를 시각적으로 "비교 (diff)"하는 도구입니다. 이는 세션 토큰, 숨겨진 폼 필드 또는 오류 메시지의 변경과 같이 취약점을 드러낼 수 있는 미묘한 차이를 식별하는 데 매우 유용합니다.
이 랩에서는 Burp Comparer 사용의 기본 워크플로우를 배우게 됩니다. Burp Proxy 를 사용하여 두 개의 유사한 HTTP 요청을 캡처하고, 이를 Comparer 도구로 보내며, 강조 표시된 차이점을 분석합니다.
프록시 기록에서 두 개의 유사한 요청 찾기
이 단계에서는 Burp Suite 와 웹 브라우저를 실행하여 두 개의 유사한 로그인 요청을 생성합니다. 이 요청들은 비교에 사용될 것입니다.
먼저 필요한 애플리케이션을 실행합니다. Burp Suite 와 Chromium 웹 브라우저 모두 데스크톱에서 찾을 수 있습니다.
- 데스크톱의 Burp Suite 아이콘을 더블 클릭하여 시작합니다. 대화 상자가 나타나면 기본 설정을 사용하고
Next를 클릭한 다음Start Burp를 클릭할 수 있습니다. - 데스크톱의 Chromium Web Browser 아이콘을 더블 클릭합니다.
다음으로 트래픽을 캡처해야 합니다. 다른 자격 증명을 사용하여 가상의 웹사이트에 두 번 로그인해 보겠습니다.
- Burp Suite 에서
Proxy탭으로 이동한 다음Intercept하위 탭으로 이동합니다. 버튼이Intercept is off라고 표시되어 있다면, 클릭하여Intercept is on으로 변경합니다. - Chromium 브라우저에서 다음 주소로 이동합니다:
http://www.google.com. Burp Suite 에서 요청이 "멈추는" 것을 볼 수 있습니다. - Burp Suite 로 돌아갑니다. 캡처된 요청을 볼 수 있습니다. 이 랩에서는 수정할 필요가 없습니다.
Forward버튼을 클릭하여 요청을 진행시키기만 하면 됩니다. 브라우저에 Google 홈페이지가 로드될 때까지 이 작업을 몇 번 반복합니다. - 이제 대상 요청을 생성해 보겠습니다. 브라우저에서 "login page example"을 검색합니다. 간단한 로그인 폼을 제공하는 결과 중 하나를 클릭합니다. 이 예시에서는 페이지를 찾았고 사용자 이름에
user1, 비밀번호에pass1을 입력했다고 가정합니다. 로그인 버튼을 클릭합니다. - Burp Suite 로 돌아가서
Forward를 클릭하여 로그인 요청을 통과시킵니다. - 브라우저로 돌아가서
user2및pass2와 같은 다른 자격 증명을 입력하고 로그인 버튼을 다시 클릭합니다. - Burp Suite 로 돌아가서
Forward를 한 번 더 클릭합니다.
이제 트래픽을 생성했으므로 프록시 기록에서 요청을 찾을 수 있습니다.
Burp Suite 에서 Proxy 탭으로 이동한 다음 HTTP history 하위 탭으로 이동합니다. 여기에서 프록시를 통과한 모든 요청의 로그를 볼 수 있습니다. 목록을 살펴보며 사용한 로그인 페이지로 가는 두 개의 POST 요청을 찾습니다. 이 두 요청은 다음 단계에서 비교할 요청입니다.
첫 번째 요청을 마우스 오른쪽 버튼으로 클릭하고 'Comparer 로 보내기'
이 단계에서는 두 개의 로그인 요청 중 첫 번째 요청을 Comparer 도구로 보냅니다.
Burp Suite 의 Proxy -> HTTP history 탭에 머물면서 캡처된 요청 목록을 볼 수 있습니다.
- 만든 첫 번째 로그인 요청 (예: 자격 증명
user1및pass1을 포함하는 요청) 을 찾습니다. - 이력 목록에서 해당 특정 요청을 마우스 오른쪽 버튼으로 클릭합니다. 그러면 많은 옵션이 있는 컨텍스트 메뉴가 열립니다.
- 이 컨텍스트 메뉴에서
Send to Comparer옵션을 찾아 선택합니다.
이 작업은 선택한 요청의 복사본을 가져와 Comparer 도구에 로드합니다. 이제 Burp Suite 창 상단의 Comparer 탭이 강조 표시되거나 색상이 변경되어 새 데이터를 받았음을 나타냅니다. Comparer 탭을 클릭하여 항목이 하나 로드되었는지 확인할 수 있습니다.
두 번째 요청을 마우스 오른쪽 버튼으로 클릭하고 'Comparer 로 보내기'
이제 두 번째 로그인 요청을 Comparer 도구로 보냅니다. 이렇게 하면 비교에 필요한 두 번째 항목이 제공됩니다.
Proxy->HTTP history탭으로 다시 이동합니다.- 만든 두 번째 로그인 요청 (예: 자격 증명
user2및pass2를 포함하는 요청) 을 찾습니다. - 이력 목록에서 이 두 번째 요청을 마우스 오른쪽 버튼으로 클릭합니다.
- 나타나는 컨텍스트 메뉴에서 다시
Send to Comparer를 선택합니다.
이 작업을 수행하면 Comparer 탭에 두 요청이 모두 포함됩니다. Comparer 탭으로 전환하면 비교할 준비가 된 두 개의 항목이 나열된 것을 볼 수 있습니다.
Comparer 에서 두 항목을 선택하고 'Words'를 클릭하여 비교
Comparer 에 두 요청이 모두 로드되었으므로 실제 비교를 수행할 준비가 되었습니다.
- Burp Suite 의
Comparer탭으로 이동합니다. - Comparer 인터페이스 상단에서 보낸 항목 목록을 볼 수 있습니다. 두 개의 항목이 표시되어야 합니다.
- 두 항목을 모두 선택합니다. 첫 번째 항목을 클릭한 다음
Ctrl키를 누른 상태에서 두 번째 항목을 클릭하여 수행할 수 있습니다. 이제 두 항목 모두 강조 표시되어야 합니다. - 창 하단에서 비교 옵션을 볼 수 있습니다. 두 가지 주요 옵션은
Words와Bytes입니다.Words비교는 HTTP 요청과 같은 텍스트 기반 데이터에 이상적입니다. 단어별로 차이를 분석하여 출력을 매우 읽기 쉽게 만들기 때문입니다.Bytes비교는 바이트 수준의 차이를 수행하며, 이는 이진 데이터에 더 적합합니다. Words버튼을 클릭하여 비교를 시작합니다.
이제 Burp Suite 에서 두 요청을 처리하고 나란히 시각적 비교를 준비합니다.
요청 간의 강조 표시된 차이점 분석
이 마지막 단계에서는 비교 결과를 분석하여 두 요청 간에 변경된 내용을 이해합니다.
이전 단계에서 Words를 클릭한 후 Comparer 탭의 메인 패널이 업데이트되어 두 요청이 나란히 표시됩니다. Burp Comparer 는 차이점을 쉽게 파악할 수 있도록 색상 코딩 시스템을 사용합니다.
- 노란색: 수정된 데이터를 강조 표시합니다.
- 분홍색: 추가된 데이터를 강조 표시합니다.
- 파란색: 삭제된 데이터를 강조 표시합니다.
두 요청 패널을 스크롤합니다. 측면의 스크롤 막대에도 색상 표시기가 있어 변경된 위치로 빠르게 이동하는 데 도움이 됩니다.
요청 본문의 차이점을 명확하게 볼 수 있어야 합니다. 사용자 이름 및 암호 매개변수 (user1 대 user2 및 pass1 대 pass2) 의 값이 노란색으로 강조 표시되어 수정되었음을 나타냅니다.
웹 애플리케이션에 따라 다른 차이점도 발견할 수 있습니다. 예를 들어:
- 새 매개변수 값의 길이가 다른 경우
Content-Length헤더가 다를 수 있습니다. - 서버가 새 세션 ID 를 할당한 경우
Cookie헤더가 변경되었을 수 있습니다.
이러한 강조 표시된 차이점을 분석하면 웹 애플리케이션이 다른 입력에 어떻게 응답하는지 빠르게 이해할 수 있습니다. 이는 광범위한 보안 취약점을 발견하는 기본적인 기술입니다.
요약
이 실습에서는 HTTP 요청을 분석하기 위해 Burp Comparer 를 사용하는 기본적인 워크플로우를 배웠습니다. 네트워크 트래픽을 성공적으로 생성하고, 프록시 기록에서 두 개의 유사한 요청을 분리하여 Comparer 도구로 보냈습니다. 단어 기반 비교를 수행함으로써 두 요청 간의 정확한 차이점을 시각적으로 식별할 수 있었습니다.
이 기술은 인증 메커니즘 분석, 매개변수 조작 테스트, 애플리케이션 응답이 다른 입력에 따라 어떻게 변경되는지 관찰하여 잠재적인 주입 지점 식별과 같은 많은 웹 보안 테스트 작업에 필수적입니다.
