소개
이 랩에서는 Burp Intruder 의 강력한 기능 중 하나인 'Grep - Extract'를 사용하는 방법을 배우게 됩니다. 이 기능은 Intruder 공격 중에 수신된 응답에서 특정 텍스트 조각을 추출하기 위한 규칙을 정의할 수 있게 해줍니다. CSRF 토큰, 세션 ID 또는 기타 동적으로 생성된 데이터와 같이 요청마다 변경될 수 있는 귀중한 정보를 수집하는 데 매우 유용합니다.
이 랩이 끝나면 Burp Intruder 를 구성하여 응답에서 사용자 정의 데이터를 자동으로 찾고 표시할 수 있게 되어 보안 테스트 워크플로우를 더욱 효율적으로 만들 수 있습니다. 웹 페이지 응답에서 숨겨진 토큰을 추출해야 하는 시나리오를 시뮬레이션할 것입니다.
Intruder > Options 에서 'Grep - Extract' 섹션으로 스크롤
이 단계에서는 Burp Suite 를 실행하고 샘플 요청을 Intruder 도구로 보내는 것부터 시작하겠습니다. 이를 통해 추출 규칙을 구성할 준비를 할 것입니다.
먼저 Burp Suite 를 실행해야 합니다. 일반적으로 데스크톱 환경의 애플리케이션 메뉴에서 찾을 수 있습니다.
- 데스크톱에서 터미널을 엽니다.
burpsuite명령을 실행하여 Burp Suite 를 실행합니다. 임시 프로젝트를 선택하고 "Next"를 클릭한 다음 "Start Burp"를 클릭합니다.- Proxy > Intercept 탭으로 이동하여 "Intercept is on"이 활성화되어 있는지 확인합니다.
- Proxy > Intercept로 이동하여 "Open Browser"를 클릭하여 내장된 Chromium 브라우저를 엽니다.
- 브라우저에서 간단한 웹사이트 (예:
http://portswigger.net) 로 이동합니다. - 요청이 Burp Suite 에서 가로채집됩니다. 요청 텍스트 영역의 아무 곳이나 마우스 오른쪽 버튼으로 클릭하고 Send to Intruder를 선택합니다.
- 이제 Intruder 탭으로 이동합니다. 방금 보낸 요청을 볼 수 있습니다.
- Intruder 탭 내에서 Options 하위 탭을 클릭합니다.
- 페이지를 아래로 스크롤하여 Grep - Extract라는 섹션을 찾습니다. 이곳에서 데이터 추출 규칙을 구성할 것입니다.
이제 'Grep - Extract' 섹션을 성공적으로 찾았으며 규칙을 추가할 준비가 되었습니다.
새 추출 규칙 추가
이 단계에서는 'Grep - Extract' 섹션에 새롭고 비어 있는 규칙을 추가합니다. 이 규칙은 나중에 서버 응답에서 추출하려는 특정 데이터를 정의하도록 구성됩니다.
'Grep - Extract' 기능은 규칙 목록을 생성하여 작동합니다. 각 규칙은 응답에서 찾을 패턴을 정의합니다. 응답이 규칙과 일치하면 응답의 지정된 부분이 추출되어 Intruder 결과 테이블의 새 열에 표시됩니다.
새 규칙을 추가하려면 다음 지침을 따르십시오.
- 이전 단계에서 찾은 Grep - Extract 섹션에서 Add 버튼을 클릭합니다.
Add를 클릭하면 규칙 테이블에 새 항목이 나타납니다. 이 새 항목은 기본 설정을 가지며, 다음 단계에서 구성할 것입니다. 추출을 정의하기 위한 대화 상자도 입력 준비 상태로 나타납니다.
데이터 추출을 위한 시작 및 끝 구분 기호 정의 (예: 숨겨진 토큰)
이 단계에서는 방금 추가한 규칙을 구성합니다. Burp 에게 대상 데이터 바로 앞과 뒤에 오는 텍스트를 정의하여 무엇을 추출할지 알려줄 것입니다. 이는 시작 및 끝 구분 기호를 사용하여 수행됩니다.
이 실습에서는 다음 HTML 스니펫을 포함하는 응답에서 CSRF 토큰을 추출하려고 한다고 가정해 보겠습니다.
<input type="hidden" name="csrf_token" value="a1b2c3d4e5f6g7h8i9j0" />
우리의 목표는 a1b2c3d4e5f6g7h8i9j0 값을 추출하는 것입니다.
- 이전 단계에서 "Add"를 클릭한 후 "Define extract grep" 대화 상자가 나타납니다. 열려 있지 않으면 추가한 새 규칙을 클릭하여 엽니다.
- 도구는 Intruder 로 보낸 원래 요청에서 응답을 자동으로 가져옵니다. 하단의 응답 보기에서 이를 볼 수 있습니다.
- 추출을 정의하기 위해 시작 및 끝 구분 기호를 지정할 것입니다. 가장 안정적인 방법은 "Define start and end" 옵션을 사용하는 것입니다.
- 추출하려는 응답에서 고유한 텍스트 조각을 찾습니다. 예시를 위해 응답에 위의 HTML 스니펫이 포함되어 있다고 가정해 보겠습니다.
- 응답 보기에서 추출하려는 값 (예:
a1b2c3d4e5f6g7h8i9j0) 을 강조 표시합니다. - "Start" 및 "End" 필드가 자동으로 채워집니다.
- Start after expression 필드에는 대상 데이터 바로 앞에 오는 텍스트가 포함되어야 합니다. 예시의 경우
name="csrf_token" value="가 됩니다. - End at delimiter 필드에는 대상 데이터 바로 뒤에 오는 텍스트가 포함되어야 합니다. 예시의 경우
"가 됩니다.
- Start after expression 필드에는 대상 데이터 바로 앞에 오는 텍스트가 포함되어야 합니다. 예시의 경우
- OK를 클릭하여 규칙을 저장합니다.
이제 name="csrf_token" value="와 " 사이의 텍스트를 모든 응답에서 검색하여 추출하는 규칙을 구성했습니다.
Intruder 공격 실행
이 단계에서는 기본 페이로드 (payload) 를 구성하고 Intruder 공격을 시작합니다. 공격이 실행되는 동안 Burp 는 수신하는 모든 응답에 Grep-Extract 규칙을 적용합니다.
먼저 페이로드 위치를 설정해야 합니다.
- Intruder > Positions 하위 탭으로 이동합니다.
- 요청 템플릿이 여기에 표시됩니다. 기본적으로 Burp 는 매개변수 값 주위에 페이로드 마커 (
§...§) 를 자동으로 추가했을 수 있습니다. 이 연습에서는 응답에 집중하고 있으므로 페이로드 위치는 중요하지 않습니다. 기본 마커를 그대로 두거나 모두 지우고 원하는 위치에 하나를 추가할 수 있습니다. 예를 들어 쿠키 값이나 매개변수에 추가할 수 있습니다. - 공격 유형이 Sniper로 설정되어 있는지 확인합니다.
다음으로 간단한 페이로드를 구성합니다.
- Intruder > Payloads 하위 탭으로 이동합니다.
- Payload Sets에서 페이로드 세트를
1로 유지합니다. - Payload Options에서 드롭다운 목록에서 Numbers를 선택합니다.
1부터5까지1의 단계로 실행되도록 구성합니다. 이렇게 하면 5 개의 요청이 전송됩니다.
마지막으로 공격을 시작합니다.
- Intruder 탭의 오른쪽 상단 모서리에 있는 Start attack 버튼을 클릭합니다.
- 새 "Intruder attack" 창이 열리고 공격 결과를 실시간으로 보여줍니다.
이제 공격이 실행 중이며 Burp 는 생성한 규칙에 따라 데이터를 추출하는 데 바쁩니다.
결과 테이블의 새 열에서 추출된 데이터 보기
이 마지막 단계에서는 Grep-Extract 구성 결과를 관찰합니다. Burp 에 찾도록 지시한 데이터가 이제 공격 결과 창에 깔끔하게 정리되어 있습니다.
- 이전 단계에서 열린 Intruder attack 창을 확인합니다.
- "Request", "Position", "Payload", "Status", "Length" 등과 같은 열이 있는 테이블이 표시됩니다.
- 테이블을 오른쪽으로 스크롤합니다. 새 열이 보일 것입니다. 기본적으로 Extract 1이라는 이름이 지정됩니다. 더 많은 규칙을 추가했다면 Extract 2 등으로 이름이 지정될 것입니다.
- 이 새 열에는 정의한 규칙을 사용하여 각 응답에서 추출된 데이터가 포함되어 있습니다.
대상 웹사이트에 예시로 사용한 csrf_token 문자열이 실제로 포함되어 있지 않으면 이 열이 비어 있을 수 있습니다. 그러나 열의 존재는 규칙이 활성화되었음을 확인시켜 줍니다. 로그인 페이지에서 실제 동적 토큰을 대상으로 했다면, 이 열은 이제 각 응답의 고유 토큰으로 채워져 분석하거나 후속 공격에 사용할 준비가 되었을 것입니다.
테이블 헤더를 마우스 오른쪽 버튼으로 클릭하여 열을 추가하거나 제거할 수 있으며, 열 헤더를 클릭하여 해당 데이터를 기준으로 결과를 정렬할 수 있습니다.
요약
이 실습에서는 Burp Intruder 의 'Grep - Extract' 기능을 사용하는 방법을 성공적으로 배웠습니다. Intruder 로 요청을 보내고, 특정 구분 기호로 추출 규칙을 추가 및 구성하고, 공격을 실행하고, 마지막으로 결과 창에서 스크랩된 데이터를 보는 전체 과정을 살펴보았습니다.
이 기술은 웹 애플리케이션에서 동적 데이터를 수집하는 프로세스를 자동화하는 데 필수적이며, 이는 침투 테스트 및 보안 분석에서 일반적인 작업입니다. 이제 이 지식을 활용하여 보안 평가 중에 HTTP 응답에서 CSRF 토큰, 세션 식별자, API 키 또는 기타 특정 정보를 추출할 수 있습니다.



