Burp Intruder 에서 Sniper 공격 수행하기

Beginner
지금 연습하기

소개

이 랩에서는 Burp Suite 의 Intruder 도구에서 가장 기본적이고 일반적으로 사용되는 공격 유형 중 하나인 "Sniper" 공격을 수행하는 방법을 배우게 됩니다. Burp Intruder 는 웹 애플리케이션에 대한 사용자 정의 공격을 자동화하여 보안 취약점을 식별하고 악용하는 강력한 도구입니다.

Sniper 공격은 페이로드 목록을 반복하여 HTTP 요청 내의 단일 지정 위치에 하나씩 삽입하도록 설계되었습니다. 이는 사용자 이름 추측, 비밀번호 재설정 토큰 찾기 또는 취약점을 위해 단일 매개변수를 퍼징 (fuzzing) 하는 것과 같은 작업에 이상적입니다.

요청을 Intruder 로 보내고, 페이로드 위치를 구성하고, Sniper 공격 유형을 선택하고, 간단한 페이로드 목록을 로드한 다음, 마지막으로 공격을 시작하고 결과를 분석하는 과정을 안내할 것입니다. 이 랩을 위해 Burp Suite 는 이미 환경에 설치되어 있습니다.

Intruder > Positions 에서 매개변수 값을 선택하고 'Add §' 클릭

이 단계에서는 공격 대상을 정의합니다. 요청을 Intruder 로 보낸 후, 페이로드가 삽입될 정확한 위치를 지정해야 합니다.

먼저 작업할 요청이 있어야 합니다. 이 랩에서는 Burp Proxy 에서 로그인 요청을 이미 가로채서 Intruder 로 보냈다고 가정합니다 (요청을 마우스 오른쪽 버튼으로 클릭하고 "Send to Intruder" 선택). Intruder 의 요청은 다음과 같을 수 있습니다.

POST /login HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 27

username=myuser&password=mypass

기본적으로 Burp Intruder 는 요청의 흥미로운 부분이라고 생각하는 부분 주위에 페이로드 마커 (§) 를 자동으로 추가합니다. 정확한 제어를 얻으려면 이를 모두 지우고 직접 설정하는 것이 가장 좋습니다.

  1. Intruder > Positions 탭으로 이동합니다.
  2. 오른쪽에 있는 Clear § 버튼을 클릭하여 자동으로 추가된 모든 페이로드 마커를 제거합니다.
  3. 요청 편집기에서 마우스를 사용하여 username 매개변수의 값 (myuser인 경우) 만 강조 표시합니다.
  4. 값이 강조 표시된 상태에서 Add § 버튼을 클릭합니다.

이제 요청은 사용자 이름 값만 페이로드 위치로 표시된 상태로 다음과 같이 표시되어야 합니다.

POST /login HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 27

username=§myuser§&password=mypass

이는 Intruder 에게 각 시도마다 나머지 요청은 변경하지 않고 myuser 대신에만 페이로드를 삽입하도록 지시합니다.

공격 유형을 'Sniper'로 설정

이 단계에서는 목표에 맞는 공격 유형을 선택합니다. Burp Intruder 는 네 가지 다른 공격 유형을 제공하며, 각 유형은 다른 목적을 수행합니다. 이 랩에서는 Sniper를 사용합니다.

공격 유형에 대한 간략한 개요는 다음과 같습니다.

  • Sniper: 단일 페이로드 세트를 사용합니다. 각 페이로드 위치 (§...§) 를 하나씩 대상으로 합니다. 각 위치에 대해 목록의 모든 페이로드를 반복합니다. 단일 매개변수를 퍼징 (fuzzing) 하는 데 가장 일반적인 유형입니다.
  • Battering ram: 단일 페이로드 세트를 사용합니다. 정의된 모든 페이로드 위치에 동일한 페이로드를 동시에 삽입합니다.
  • Pitchfork: 여러 페이로드 세트를 사용합니다. 각 요청에 대해 각 세트에서 페이로드 하나씩을 가져와 해당 위치에 배치합니다.
  • Cluster bomb: 여러 페이로드 세트를 사용합니다. 모든 세트의 페이로드에 대한 가능한 모든 조합을 테스트합니다.

단일 매개변수에서 다양한 사용자 이름 목록을 테스트하는 것이 목표이므로 Sniper가 완벽한 선택입니다.

공격 유형을 설정하려면:

  1. Intruder > Positions 탭에 머무릅니다.
  2. 화면 상단에 있는 Attack type 드롭다운 메뉴를 찾습니다.
  3. 드롭다운을 클릭하고 목록에서 Sniper를 선택합니다.

이제 Intruder 가 Sniper 공격 방법을 사용하도록 구성했습니다.

Intruder > Payloads 탭으로 이동

이 단계에서는 공격에 사용될 실제 데이터를 정의하는 섹션으로 이동합니다. 이제 대상 위치 (username) 와 공격 유형 (Sniper) 을 구성했으므로, 다음 논리적 단계는 페이로드 목록을 제공하는 것입니다.

페이로드는 Intruder 가 1 단계에서 정의한 §...§ 위치에 대체할 값입니다.

진행하려면 방금 작업했던 Positions 탭 바로 옆에 있는 Intruder 도구 내의 Payloads 하위 탭으로 이동하기만 하면 됩니다. 이 탭을 클릭하면 다음 단계에서 잠재적인 사용자 이름 목록을 설정할 페이로드 구성 화면으로 이동합니다.

간단한 페이로드 목록 로드 (예: admin, test, user)

이 단계에서는 공격에 사용할 페이로드 목록을 구성합니다. 공격 유형이 Sniper이고 페이로드 위치가 하나이므로 페이로드 세트를 하나만 구성하면 됩니다.

Intruder > Payloads 탭에서 Payload SetsPayload Options 섹션을 볼 수 있습니다.

  1. Payload Sets 섹션에서 Payload set1로, Payload typeSimple list로 설정되어 있는지 확인합니다. 이것이 기본값이며 간단한 문자열 목록을 제공하는 데 사용됩니다.
  2. Payload Options [Simple list] 섹션에서 페이로드를 추가합니다. 텍스트 상자에 직접 입력하거나 Add 버튼을 사용하여 추가할 수 있습니다.

테스트할 몇 가지 일반적인 사용자 이름을 추가해 보겠습니다.
텍스트 영역에 다음 값을 각 줄에 하나씩 입력합니다.

admin
test
user
root
guest

이제 Payload Options 섹션에 이 목록이 포함되어야 합니다. Intruder 는 이 목록의 각 줄에 대해 하나의 요청을 보내고, 이전에 표시한 username 매개변수에 해당 값을 대체합니다. 하단의 Payload Count는 이제 5를 표시해야 합니다.

공격 시작 및 결과 테이블 관찰

이 단계에서는 구성된 공격을 시작하고 그 결과를 분석합니다. 위치, 공격 유형 및 페이로드가 모두 설정되었으므로 시작할 준비가 되었습니다.

  1. 공격을 시작하려면 Intruder 탭의 오른쪽 상단에 있는 Start attack 버튼을 클릭합니다.
  2. 새로운 "Attack" 창이 열리고 결과 테이블이 표시됩니다. 이 창은 Intruder 가 각 요청을 보낼 때 실시간으로 채워집니다.

결과 테이블은 프로세스에서 가장 중요한 부분입니다. 특히 다음 열에 주의를 기울이십시오.

  • Payload: 해당 요청에 사용된 특정 페이로드 (예: admin, test).
  • Status: 응답의 HTTP 상태 코드 (예: 200, 302, 401).
  • Length: 응답 본문의 크기 (바이트 단위).

잠재적인 취약점이나 유효한 사용자 이름을 찾으려면 이상 징후를 찾으십시오. 예를 들어, 성공적인 로그인은 302 Found 상태 (대시보드로 리디렉션) 를 초래할 수 있는 반면, 모든 실패한 시도는 200 OK(로그인 페이지 다시 표시) 를 초래할 수 있습니다. 마찬가지로, 유효한 사용자 이름에 대한 응답은 오류 메시지가 변경되기 때문에 (예: "Incorrect password" vs. "User not found") 다른 응답과 Length가 다를 수 있습니다.

Status 또는 Length 열로 테이블을 정렬하면 기준선과 다른 응답을 쉽게 발견하여 잠재적인 결과를 나타낼 수 있습니다.

요약

이 실습에서는 Burp Intruder 를 사용하여 기본적인 Sniper 공격을 성공적으로 수행했습니다. 이는 모든 웹 애플리케이션 보안 테스터에게 필수적인 기술입니다.

다음 방법을 배웠습니다.

  • 기본 마커를 지우고 자체 마커를 추가하여 Positions 탭에서 테스트할 특정 요청 매개변수를 격리하는 방법.
  • 페이로드 목록으로 단일 매개변수를 테스트하는 데 이상적인 Sniper로 공격 유형을 설정하는 방법.
  • Payloads 탭으로 이동하여 간단하고 사용자 정의된 잠재적 입력 목록을 로드하는 방법.
  • 공격을 시작하고 결과 테이블을 분석하여 HTTP 상태 코드 및 응답 길이의 이상 징후를 찾아 흥미로운 동작을 식별하는 방법.

Burp Intruder 에서 Sniper 공격을 마스터하면 사용자 이름 열거, 암호 추측 및 일반적인 취약점에 대한 퍼징과 같은 반복적인 테스트 작업을 자동화하는 강력한 방법을 제공합니다.