소개
이 랩에서는 Burp Suite 의 강력한 기능 중 하나인 "사이트 맵 비교 (Compare site maps)"를 사용하는 방법을 배우게 됩니다. 이 기능은 웹 애플리케이션 보안 테스트, 특히 권한 부여 취약점을 식별하는 데 필수적입니다. 서로 다른 권한 수준을 가진 사용자가 접근할 수 있는 사이트 구조와 콘텐츠를 비교함으로써, 부적절하게 노출된 엔드포인트나 데이터를 신속하게 파악할 수 있습니다.
다음과 같은 작업을 수행하게 됩니다.
- 표준 사용자 (standard user) 와 관리자 (administrator) 의 두 가지 사용자 역할이 있는 간단한 로컬 웹 애플리케이션을 시작합니다.
- Burp Suite 의 내장 브라우저를 사용하여 낮은 권한 사용자 (low-privilege user) 로서 애플리케이션을 탐색합니다.
- 사이트 맵 비교 프로세스를 시작하고, 낮은 권한 사용자의 뷰를 첫 번째 맵으로 저장합니다.
- 높은 권한 사용자 (high-privilege user) 로 로그인하여 애플리케이션을 다시 탐색하여 새로운 관리자 기능을 사이트 맵에 채웁니다.
- 비교를 완료하고 결과를 분석하여 관리자만 접근할 수 있는 콘텐츠와 엔드포인트를 식별합니다.
낮은 권한 사용자로 애플리케이션 탐색
이 단계에서는 Burp Suite 를 시작하고, 브라우저를 구성한 다음, 표준 낮은 권한 사용자로서 대상 애플리케이션을 탐색합니다. 이를 통해 이 사용자가 접근할 수 있는 모든 엔드포인트와 리소스가 Burp 의 사이트 맵에 채워집니다.
먼저 Burp Suite 를 실행합니다. 애플리케이션 메뉴에서 보통 Applications -> Other -> Burp Suite Community Edition 아래에서 찾을 수 있습니다. 프롬프트가 나타나면 임시 프로젝트 (temporary project) 를 선택하고 Next를 클릭한 다음 Start Burp를 클릭합니다.
Burp Suite 가 실행되면 모든 트래픽이 올바르게 프록시되도록 내장 브라우저를 사용해야 합니다.
Proxy탭으로 이동한 다음Intercept하위 탭으로 이동합니다.Open Browser버튼을 클릭합니다. 새로운 Chromium 브라우저 창이 열립니다.
이제 이 브라우저를 사용하여 웹 애플리케이션과 상호 작용합니다.
- 새 브라우저의 주소 표시줄에
http://127.0.0.1:5000으로 이동합니다. - 로그인 페이지가 표시됩니다. 사용자 이름 (username) 에
user를, 비밀번호 (password) 에password를 입력합니다. Login버튼을 클릭합니다.- 사용자 대시보드 (user dashboard) 로 리디렉션됩니다. 링크가 있다면 클릭해 보지만, 이 간단한 앱에서는 대시보드를 보는 것만으로도 충분합니다.
이제 메인 Burp Suite 창으로 돌아가서 Target -> Site map 탭으로 이동합니다. 탐색한 내용을 기반으로 애플리케이션의 구조가 매핑되는 것을 볼 수 있습니다.
Target > Site map 에서 호스트를 선택하고 '사이트 맵 비교' 실행
이 단계에서는 사이트 맵 비교 프로세스를 시작합니다. 이미 낮은 권한 사용자의 관점에서 사이트 맵을 채웠습니다. 이제 이 현재 맵을 첫 번째 비교 지점으로 사용하겠다고 Burp Suite 에 알릴 것입니다.
- Burp Suite 창에서
Target->Site map탭에 있는지 확인합니다. - 왼쪽 창에서 방문한 사이트의 트리 뷰가 표시됩니다. 애플리케이션의 호스트인
http://127.0.0.1:5000을 찾아 선택합니다. - 호스트
http://127.0.0.1:5000에서 마우스 오른쪽 버튼을 클릭합니다. 그러면 여러 옵션이 있는 컨텍스트 메뉴가 열립니다. - 컨텍스트 메뉴에서
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"의 두 가지 주요 섹션이 있습니다. 지금 첫 번째 맵을 구성하고 나중에 두 번째 맵을 구성할 것입니다.
- "Site map 1" 구성 영역에서 맵을 로드할 위치에 대한 여러 옵션을 볼 수 있습니다.
Use current site map레이블이 붙은 라디오 버튼을 선택합니다. 이는 Burp 에게 현재 존재하는 사이트 맵 (낮은 권한 사용자의 세션을 반영하는) 의 스냅샷을 찍어 비교의 기준선으로 사용하도록 지시합니다.- 아직
OK를 클릭하지 마세요. 마법사는 두 맵 모두에 대해 구성되어야 합니다. 지금은 첫 번째 맵을 설정했습니다. 다음 작업을 수행하는 동안 이 마법사를 열어 둘 것입니다.
이제 비교를 위한 첫 번째 사이트 맵을 성공적으로 정의했습니다. 마법사는 두 번째 맵을 정의할 때까지 기다릴 것입니다.
높은 권한 사용자로 로그인하고 사이트 맵 다시 요청
이 단계에서는 높은 권한 사용자 계정으로 전환하고 애플리케이션을 다시 탐색합니다. 이렇게 하면 Burp 의 사이트 맵에 관리자 전용 엔드포인트가 추가되며, 이는 비교에서 감지하려는 정확한 내용입니다.
- Burp 내장 Chromium 브라우저 창으로 돌아갑니다.
http://127.0.0.1:5000의 로그인 페이지로 다시 이동합니다. 이렇게 하면 'user' 계정에서 로그아웃됩니다.- 로그인 페이지에서 사용자 이름에
admin을, 비밀번호에adminpassword를 입력합니다. Login버튼을 클릭합니다.- 대시보드로 리디렉션되며, 이제 'admin' 사용자에 대한 환영 메시지와 새로운 링크인
Go to Admin Panel이 표시됩니다. Go to Admin Panel링크를 클릭합니다. 이렇게 하면 일반 사용자에게는 접근할 수 없었던/admin페이지로 이동합니다.
이러한 작업을 수행함으로써 Burp Suite 는 새로운 엔드포인트 (예: /admin) 에 대한 요청을 기록하고 기존 엔드포인트 (예: /dashboard) 에 대한 다른 응답을 볼 수 있게 됩니다. Burp 의 실시간 사이트 맵은 이제 이 새로운 정보로 업데이트되었습니다.
Map 2 에 대해 '현재 사이트 맵 사용' 선택 및 차이점 보기
이 마지막 단계에서는 비교 구성을 완료하고 결과를 분석하여 낮은 권한과 높은 권한 세션 간의 차이점을 찾습니다.
- "사이트 맵 비교 (Compare site maps)" 마법사가 여전히 열려 있어야 하는 Burp Suite 창으로 돌아갑니다.
- 이제 "Site map 2" 구성 영역에 집중합니다.
- 첫 번째 맵에서 했던 것처럼
Use current site map레이블이 붙은 라디오 버튼을 선택합니다. 이번에는 "현재" 맵에 낮은 권한 및 높은 권한 세션의 모든 요청이 포함됩니다. 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) 를 발견했으며, 이는 이 기법이 발견하는 데 도움이 되는 전형적인 권한 부여 취약점의 예입니다. 이 방법은 철저한 웹 애플리케이션 보안 평가의 기본 부분으로, 공격 표면을 효율적으로 매핑하고 잠재적인 보안 결함을 찾는 데 도움이 됩니다.
