Intruder 응답에서 Grep-Extract 를 사용하여 데이터 스크랩하기

Beginner
지금 연습하기

소개

이 랩에서는 Burp Intruder 의 강력한 기능 중 하나인 'Grep - Extract'를 사용하는 방법을 배우게 됩니다. 이 기능은 Intruder 공격 중에 수신된 응답에서 특정 텍스트 조각을 추출하기 위한 규칙을 정의할 수 있게 해줍니다. CSRF 토큰, 세션 ID 또는 기타 동적으로 생성된 데이터와 같이 요청마다 변경될 수 있는 귀중한 정보를 수집하는 데 매우 유용합니다.

이 랩이 끝나면 Burp Intruder 를 구성하여 응답에서 사용자 정의 데이터를 자동으로 찾고 표시할 수 있게 되어 보안 테스트 워크플로우를 더욱 효율적으로 만들 수 있습니다. 웹 페이지 응답에서 숨겨진 토큰을 추출해야 하는 시나리오를 시뮬레이션할 것입니다.

Intruder > Options 에서 'Grep - Extract' 섹션으로 스크롤

이 단계에서는 Burp Suite 를 실행하고 샘플 요청을 Intruder 도구로 보내는 것부터 시작하겠습니다. 이를 통해 추출 규칙을 구성할 준비를 할 것입니다.

먼저 Burp Suite 를 실행해야 합니다. 일반적으로 데스크톱 환경의 애플리케이션 메뉴에서 찾을 수 있습니다.

  1. 데스크톱에서 터미널을 엽니다.
  2. burpsuite 명령을 실행하여 Burp Suite 를 실행합니다. 임시 프로젝트를 선택하고 "Next"를 클릭한 다음 "Start Burp"를 클릭합니다.
  3. Proxy > Intercept 탭으로 이동하여 "Intercept is on"이 활성화되어 있는지 확인합니다.
  4. Proxy > Intercept로 이동하여 "Open Browser"를 클릭하여 내장된 Chromium 브라우저를 엽니다.
  5. 브라우저에서 간단한 웹사이트 (예: http://portswigger.net) 로 이동합니다.
  6. 요청이 Burp Suite 에서 가로채집됩니다. 요청 텍스트 영역의 아무 곳이나 마우스 오른쪽 버튼으로 클릭하고 Send to Intruder를 선택합니다.
  7. 이제 Intruder 탭으로 이동합니다. 방금 보낸 요청을 볼 수 있습니다.
  8. Intruder 탭 내에서 Options 하위 탭을 클릭합니다.
  9. 페이지를 아래로 스크롤하여 Grep - Extract라는 섹션을 찾습니다. 이곳에서 데이터 추출 규칙을 구성할 것입니다.

이제 'Grep - Extract' 섹션을 성공적으로 찾았으며 규칙을 추가할 준비가 되었습니다.

새 추출 규칙 추가

이 단계에서는 'Grep - Extract' 섹션에 새롭고 비어 있는 규칙을 추가합니다. 이 규칙은 나중에 서버 응답에서 추출하려는 특정 데이터를 정의하도록 구성됩니다.

'Grep - Extract' 기능은 규칙 목록을 생성하여 작동합니다. 각 규칙은 응답에서 찾을 패턴을 정의합니다. 응답이 규칙과 일치하면 응답의 지정된 부분이 추출되어 Intruder 결과 테이블의 새 열에 표시됩니다.

새 규칙을 추가하려면 다음 지침을 따르십시오.

  1. 이전 단계에서 찾은 Grep - Extract 섹션에서 Add 버튼을 클릭합니다.

Add를 클릭하면 규칙 테이블에 새 항목이 나타납니다. 이 새 항목은 기본 설정을 가지며, 다음 단계에서 구성할 것입니다. 추출을 정의하기 위한 대화 상자도 입력 준비 상태로 나타납니다.

데이터 추출을 위한 시작 및 끝 구분 기호 정의 (예: 숨겨진 토큰)

이 단계에서는 방금 추가한 규칙을 구성합니다. Burp 에게 대상 데이터 바로 앞과 뒤에 오는 텍스트를 정의하여 무엇을 추출할지 알려줄 것입니다. 이는 시작 및 끝 구분 기호를 사용하여 수행됩니다.

이 실습에서는 다음 HTML 스니펫을 포함하는 응답에서 CSRF 토큰을 추출하려고 한다고 가정해 보겠습니다.

<input type="hidden" name="csrf_token" value="a1b2c3d4e5f6g7h8i9j0" />

우리의 목표는 a1b2c3d4e5f6g7h8i9j0 값을 추출하는 것입니다.

  1. 이전 단계에서 "Add"를 클릭한 후 "Define extract grep" 대화 상자가 나타납니다. 열려 있지 않으면 추가한 새 규칙을 클릭하여 엽니다.
  2. 도구는 Intruder 로 보낸 원래 요청에서 응답을 자동으로 가져옵니다. 하단의 응답 보기에서 이를 볼 수 있습니다.
  3. 추출을 정의하기 위해 시작 및 끝 구분 기호를 지정할 것입니다. 가장 안정적인 방법은 "Define start and end" 옵션을 사용하는 것입니다.
  4. 추출하려는 응답에서 고유한 텍스트 조각을 찾습니다. 예시를 위해 응답에 위의 HTML 스니펫이 포함되어 있다고 가정해 보겠습니다.
  5. 응답 보기에서 추출하려는 값 (예: a1b2c3d4e5f6g7h8i9j0) 을 강조 표시합니다.
  6. "Start" 및 "End" 필드가 자동으로 채워집니다.
    • Start after expression 필드에는 대상 데이터 바로 앞에 오는 텍스트가 포함되어야 합니다. 예시의 경우 name="csrf_token" value="가 됩니다.
    • End at delimiter 필드에는 대상 데이터 바로 뒤에 오는 텍스트가 포함되어야 합니다. 예시의 경우 "가 됩니다.
  7. OK를 클릭하여 규칙을 저장합니다.

이제 name="csrf_token" value="" 사이의 텍스트를 모든 응답에서 검색하여 추출하는 규칙을 구성했습니다.

Intruder 공격 실행

이 단계에서는 기본 페이로드 (payload) 를 구성하고 Intruder 공격을 시작합니다. 공격이 실행되는 동안 Burp 는 수신하는 모든 응답에 Grep-Extract 규칙을 적용합니다.

먼저 페이로드 위치를 설정해야 합니다.

  1. Intruder > Positions 하위 탭으로 이동합니다.
  2. 요청 템플릿이 여기에 표시됩니다. 기본적으로 Burp 는 매개변수 값 주위에 페이로드 마커 (§...§) 를 자동으로 추가했을 수 있습니다. 이 연습에서는 응답에 집중하고 있으므로 페이로드 위치는 중요하지 않습니다. 기본 마커를 그대로 두거나 모두 지우고 원하는 위치에 하나를 추가할 수 있습니다. 예를 들어 쿠키 값이나 매개변수에 추가할 수 있습니다.
  3. 공격 유형이 Sniper로 설정되어 있는지 확인합니다.

다음으로 간단한 페이로드를 구성합니다.

  1. Intruder > Payloads 하위 탭으로 이동합니다.
  2. Payload Sets에서 페이로드 세트를 1로 유지합니다.
  3. Payload Options에서 드롭다운 목록에서 Numbers를 선택합니다.
  4. 1부터 5까지 1의 단계로 실행되도록 구성합니다. 이렇게 하면 5 개의 요청이 전송됩니다.

마지막으로 공격을 시작합니다.

  1. Intruder 탭의 오른쪽 상단 모서리에 있는 Start attack 버튼을 클릭합니다.
  2. 새 "Intruder attack" 창이 열리고 공격 결과를 실시간으로 보여줍니다.

이제 공격이 실행 중이며 Burp 는 생성한 규칙에 따라 데이터를 추출하는 데 바쁩니다.

결과 테이블의 새 열에서 추출된 데이터 보기

이 마지막 단계에서는 Grep-Extract 구성 결과를 관찰합니다. Burp 에 찾도록 지시한 데이터가 이제 공격 결과 창에 깔끔하게 정리되어 있습니다.

  1. 이전 단계에서 열린 Intruder attack 창을 확인합니다.
  2. "Request", "Position", "Payload", "Status", "Length" 등과 같은 열이 있는 테이블이 표시됩니다.
  3. 테이블을 오른쪽으로 스크롤합니다. 새 열이 보일 것입니다. 기본적으로 Extract 1이라는 이름이 지정됩니다. 더 많은 규칙을 추가했다면 Extract 2 등으로 이름이 지정될 것입니다.
  4. 이 새 열에는 정의한 규칙을 사용하여 각 응답에서 추출된 데이터가 포함되어 있습니다.

대상 웹사이트에 예시로 사용한 csrf_token 문자열이 실제로 포함되어 있지 않으면 이 열이 비어 있을 수 있습니다. 그러나 열의 존재는 규칙이 활성화되었음을 확인시켜 줍니다. 로그인 페이지에서 실제 동적 토큰을 대상으로 했다면, 이 열은 이제 각 응답의 고유 토큰으로 채워져 분석하거나 후속 공격에 사용할 준비가 되었을 것입니다.

테이블 헤더를 마우스 오른쪽 버튼으로 클릭하여 열을 추가하거나 제거할 수 있으며, 열 헤더를 클릭하여 해당 데이터를 기준으로 결과를 정렬할 수 있습니다.

요약

이 실습에서는 Burp Intruder 의 'Grep - Extract' 기능을 사용하는 방법을 성공적으로 배웠습니다. Intruder 로 요청을 보내고, 특정 구분 기호로 추출 규칙을 추가 및 구성하고, 공격을 실행하고, 마지막으로 결과 창에서 스크랩된 데이터를 보는 전체 과정을 살펴보았습니다.

이 기술은 웹 애플리케이션에서 동적 데이터를 수집하는 프로세스를 자동화하는 데 필수적이며, 이는 침투 테스트 및 보안 분석에서 일반적인 작업입니다. 이제 이 지식을 활용하여 보안 평가 중에 HTTP 응답에서 CSRF 토큰, 세션 식별자, API 키 또는 기타 특정 정보를 추출할 수 있습니다.