Burp Suite 에서 두 개의 사이트 맵 비교하기

Beginner
지금 연습하기

소개

이 랩에서는 Burp Suite 의 강력한 기능 중 하나인 "사이트 맵 비교 (Compare site maps)"를 사용하는 방법을 배우게 됩니다. 이 기능은 웹 애플리케이션 보안 테스트, 특히 권한 부여 취약점을 식별하는 데 필수적입니다. 서로 다른 권한 수준을 가진 사용자가 접근할 수 있는 사이트 구조와 콘텐츠를 비교함으로써, 부적절하게 노출된 엔드포인트나 데이터를 신속하게 파악할 수 있습니다.

다음과 같은 작업을 수행하게 됩니다.

  1. 표준 사용자 (standard user) 와 관리자 (administrator) 의 두 가지 사용자 역할이 있는 간단한 로컬 웹 애플리케이션을 시작합니다.
  2. Burp Suite 의 내장 브라우저를 사용하여 낮은 권한 사용자 (low-privilege user) 로서 애플리케이션을 탐색합니다.
  3. 사이트 맵 비교 프로세스를 시작하고, 낮은 권한 사용자의 뷰를 첫 번째 맵으로 저장합니다.
  4. 높은 권한 사용자 (high-privilege user) 로 로그인하여 애플리케이션을 다시 탐색하여 새로운 관리자 기능을 사이트 맵에 채웁니다.
  5. 비교를 완료하고 결과를 분석하여 관리자만 접근할 수 있는 콘텐츠와 엔드포인트를 식별합니다.

낮은 권한 사용자로 애플리케이션 탐색

이 단계에서는 Burp Suite 를 시작하고, 브라우저를 구성한 다음, 표준 낮은 권한 사용자로서 대상 애플리케이션을 탐색합니다. 이를 통해 이 사용자가 접근할 수 있는 모든 엔드포인트와 리소스가 Burp 의 사이트 맵에 채워집니다.

먼저 Burp Suite 를 실행합니다. 애플리케이션 메뉴에서 보통 Applications -> Other -> Burp Suite Community Edition 아래에서 찾을 수 있습니다. 프롬프트가 나타나면 임시 프로젝트 (temporary project) 를 선택하고 Next를 클릭한 다음 Start Burp를 클릭합니다.

Burp Suite 가 실행되면 모든 트래픽이 올바르게 프록시되도록 내장 브라우저를 사용해야 합니다.

  1. Proxy 탭으로 이동한 다음 Intercept 하위 탭으로 이동합니다.
  2. Open Browser 버튼을 클릭합니다. 새로운 Chromium 브라우저 창이 열립니다.

이제 이 브라우저를 사용하여 웹 애플리케이션과 상호 작용합니다.

  1. 새 브라우저의 주소 표시줄에 http://127.0.0.1:5000으로 이동합니다.
  2. 로그인 페이지가 표시됩니다. 사용자 이름 (username) 에 user를, 비밀번호 (password) 에 password를 입력합니다.
  3. Login 버튼을 클릭합니다.
  4. 사용자 대시보드 (user dashboard) 로 리디렉션됩니다. 링크가 있다면 클릭해 보지만, 이 간단한 앱에서는 대시보드를 보는 것만으로도 충분합니다.

이제 메인 Burp Suite 창으로 돌아가서 Target -> Site map 탭으로 이동합니다. 탐색한 내용을 기반으로 애플리케이션의 구조가 매핑되는 것을 볼 수 있습니다.

Target > Site map 에서 호스트를 선택하고 '사이트 맵 비교' 실행

이 단계에서는 사이트 맵 비교 프로세스를 시작합니다. 이미 낮은 권한 사용자의 관점에서 사이트 맵을 채웠습니다. 이제 이 현재 맵을 첫 번째 비교 지점으로 사용하겠다고 Burp Suite 에 알릴 것입니다.

  1. Burp Suite 창에서 Target -> Site map 탭에 있는지 확인합니다.
  2. 왼쪽 창에서 방문한 사이트의 트리 뷰가 표시됩니다. 애플리케이션의 호스트인 http://127.0.0.1:5000을 찾아 선택합니다.
  3. 호스트 http://127.0.0.1:5000에서 마우스 오른쪽 버튼을 클릭합니다. 그러면 여러 옵션이 있는 컨텍스트 메뉴가 열립니다.
  4. 컨텍스트 메뉴에서 Engagement tools로 이동한 다음 Compare site maps를 클릭합니다.

이 작업을 수행하면 "사이트 맵 비교 (Compare site maps)" 마법사가 열리고, 비교 설정을 안내해 줄 것입니다.

(이미지 설명: Burp Suite 사이트 맵에서 마우스 오른쪽 버튼 클릭 컨텍스트 메뉴를 보여주는 스크린샷으로, 커서가 'Engagement tools' 아래의 'Compare site maps' 옵션을 강조 표시하고 있습니다.)

마법사에서 Map 1 에 대해 '현재 사이트 맵 사용' 선택

이 단계에서는 비교할 두 개의 사이트 맵 중 첫 번째 것을 구성합니다. 이전 단계에서 연 마법사를 통해 두 맵의 소스를 정의할 수 있습니다.

"사이트 맵 비교 (Compare site maps)" 마법사가 열렸습니다. 이 마법사에는 "Site map 1"과 "Site map 2"의 두 가지 주요 섹션이 있습니다. 지금 첫 번째 맵을 구성하고 나중에 두 번째 맵을 구성할 것입니다.

  1. "Site map 1" 구성 영역에서 맵을 로드할 위치에 대한 여러 옵션을 볼 수 있습니다.
  2. Use current site map 레이블이 붙은 라디오 버튼을 선택합니다. 이는 Burp 에게 현재 존재하는 사이트 맵 (낮은 권한 사용자의 세션을 반영하는) 의 스냅샷을 찍어 비교의 기준선으로 사용하도록 지시합니다.
  3. 아직 OK를 클릭하지 마세요. 마법사는 두 맵 모두에 대해 구성되어야 합니다. 지금은 첫 번째 맵을 설정했습니다. 다음 작업을 수행하는 동안 이 마법사를 열어 둘 것입니다.

이제 비교를 위한 첫 번째 사이트 맵을 성공적으로 정의했습니다. 마법사는 두 번째 맵을 정의할 때까지 기다릴 것입니다.

높은 권한 사용자로 로그인하고 사이트 맵 다시 요청

이 단계에서는 높은 권한 사용자 계정으로 전환하고 애플리케이션을 다시 탐색합니다. 이렇게 하면 Burp 의 사이트 맵에 관리자 전용 엔드포인트가 추가되며, 이는 비교에서 감지하려는 정확한 내용입니다.

  1. Burp 내장 Chromium 브라우저 창으로 돌아갑니다.
  2. http://127.0.0.1:5000의 로그인 페이지로 다시 이동합니다. 이렇게 하면 'user' 계정에서 로그아웃됩니다.
  3. 로그인 페이지에서 사용자 이름에 admin을, 비밀번호에 adminpassword를 입력합니다.
  4. Login 버튼을 클릭합니다.
  5. 대시보드로 리디렉션되며, 이제 'admin' 사용자에 대한 환영 메시지와 새로운 링크인 Go to Admin Panel이 표시됩니다.
  6. Go to Admin Panel 링크를 클릭합니다. 이렇게 하면 일반 사용자에게는 접근할 수 없었던 /admin 페이지로 이동합니다.

이러한 작업을 수행함으로써 Burp Suite 는 새로운 엔드포인트 (예: /admin) 에 대한 요청을 기록하고 기존 엔드포인트 (예: /dashboard) 에 대한 다른 응답을 볼 수 있게 됩니다. Burp 의 실시간 사이트 맵은 이제 이 새로운 정보로 업데이트되었습니다.

Map 2 에 대해 '현재 사이트 맵 사용' 선택 및 차이점 보기

이 마지막 단계에서는 비교 구성을 완료하고 결과를 분석하여 낮은 권한과 높은 권한 세션 간의 차이점을 찾습니다.

  1. "사이트 맵 비교 (Compare site maps)" 마법사가 여전히 열려 있어야 하는 Burp Suite 창으로 돌아갑니다.
  2. 이제 "Site map 2" 구성 영역에 집중합니다.
  3. 첫 번째 맵에서 했던 것처럼 Use current site map 레이블이 붙은 라디오 버튼을 선택합니다. 이번에는 "현재" 맵에 낮은 권한 및 높은 권한 세션의 모든 요청이 포함됩니다.
  4. OK 버튼을 클릭하여 비교를 실행합니다.

새로운 "사이트 맵 비교 (Site map comparison)" 창이 나타나 결과를 표시합니다. 이 창에는 세 개의 주요 패널이 표시됩니다.

  • Items only in map 1: 첫 번째 세션에는 존재했지만 두 번째 세션에는 존재하지 않았던 엔드포인트.
  • Items only in map 2: 두 번째 세션에서만 발견된 엔드포인트. 이곳에서 권한 부여 문제를 찾을 수 있습니다.
  • Items with different responses: 두 사용자 모두 접근할 수 있었지만 다른 콘텐츠를 반환한 엔드포인트.

"Items only in map 2" 목록을 살펴보세요. /admin 엔드포인트를 볼 수 있어야 합니다. 이는 /admin 페이지가 높은 권한 사용자에게만 접근 가능하거나 발견 가능하다는 것을 즉시 알려줍니다.

"Items with different responses" 목록에서 /dashboard 항목을 클릭합니다. 하단에서 각 맵에 대한 요청 및 응답을 볼 수 있습니다. Diff 버튼을 사용하여 나란히 비교하면 관리자에게 제공되는 추가 "Go to Admin Panel" 링크가 강조 표시됩니다.

요약

이 실습에서는 Burp Suite 의 "사이트 맵 비교 (Compare site maps)" 기능을 성공적으로 사용하여 애플리케이션의 접근 제어를 분석했습니다. 두 명의 다른 사용자 관점에서 애플리케이션의 상태를 체계적으로 캡처한 다음, 이를 비교하여 차이점을 자동으로 식별하는 방법을 배웠습니다.

특히, 일반 사용자에게는 보이지 않았던 관리자 엔드포인트 (/admin) 를 발견했으며, 이는 이 기법이 발견하는 데 도움이 되는 전형적인 권한 부여 취약점의 예입니다. 이 방법은 철저한 웹 애플리케이션 보안 평가의 기본 부분으로, 공격 표면을 효율적으로 매핑하고 잠재적인 보안 결함을 찾는 데 도움이 됩니다.