Burp Intruder 에서 Pitchfork 공격 사용하기

Beginner
지금 연습하기

소개

Burp Suite 는 웹 애플리케이션 보안 테스트를 위한 강력한 플랫폼입니다. 가장 다재다능한 도구 중 하나인 Burp Intruder 를 사용하면 웹 애플리케이션에 대한 사용자 정의 공격을 자동화할 수 있습니다. Intruder 에는 다양한 테스트 시나리오에 맞게 설계된 여러 공격 유형이 있습니다.

Pitchfork 공격 유형은 여러 매개변수를 동시에 서로 다르지만 관련된 페이로드로 테스트해야 할 때 사용됩니다. 각 표시된 위치에 대해 별도의 페이로드 목록을 사용합니다. 공격 중에 Intruder 는 첫 번째 목록의 첫 번째 페이로드와 두 번째 목록의 첫 번째 페이로드를 쌍으로 만들고, 그 다음 두 번째와 두 번째를 쌍으로 만드는 식으로 진행됩니다. 이는 알려진 사용자 이름 및 비밀번호 쌍 목록과 같은 것을 테스트하는 데 이상적입니다.

이 랩에서는 간단한 로그인 양식에 대해 Burp Intruder 에서 Pitchfork 공격을 구성하고 실행하는 방법을 배우게 됩니다.

Intruder 로 두 개의 매개변수를 가진 요청 보내기

이 단계에서는 Burp Suite 를 실행하고, 로그인 요청을 캡처하여 Intruder 도구로 보내 수정합니다. 랩 환경에서는 이미 테스트할 간단한 웹 애플리케이션이 시작되었습니다.

먼저 데스크톱에서 터미널을 열고 Burp Suite 를 실행합니다. 일반적으로 애플리케이션 메뉴에서 찾거나 명령줄에서 실행할 수 있습니다. 이 랩에서는 터미널에서 실행하겠습니다.

burpsuite

시작 마법사에서 "Temporary project"를 선택하고 "Next"를 클릭한 다음 "Start Burp"를 클릭합니다.

Burp Suite 가 열리면 Proxy 탭으로 이동한 다음 Intercept 하위 탭으로 이동합니다. "Open Browser" 버튼을 클릭합니다. 그러면 Burp 의 프록시와 함께 작동하도록 사전 구성된 Chromium 브라우저가 실행됩니다.

Burp 브라우저에서 다음 URL 을 입력하여 대상 애플리케이션으로 이동합니다.

http://127.0.0.1:8000

간단한 로그인 양식이 표시됩니다. Burp Suite 창으로 돌아가서 "Intercept is on" 버튼을 클릭하여 인터셉트를 끄고 "Intercept is off"로 변경합니다. 이렇게 하면 요청이 애플리케이션으로 자유롭게 흐를 수 있습니다.

이제 브라우저로 돌아갑니다. 사용자 이름에 test를, 비밀번호에 test를 입력한 다음 "Submit"을 클릭합니다.

Burp Suite 창으로 돌아가서 Proxy > HTTP history 탭으로 이동합니다. 기록 목록에서 POST /login 요청을 볼 수 있어야 합니다. 이 요청을 마우스 오른쪽 버튼으로 클릭하고 "Send to Intruder"를 선택합니다.

이 작업은 요청의 복사본을 Intruder 도구로 보내며, 여기서 공격을 구성할 수 있습니다. Intruder 탭이 강조 표시된 것을 볼 수 있어야 합니다.

두 매개변수에 페이로드 마커 추가하기

이 단계에서는 Intruder 가 페이로드를 배치할 요청의 위치를 정의합니다. Pitchfork 공격의 경우 퍼징 (fuzzing) 하려는 각 매개변수 값을 표시해야 합니다.

Intruder 탭으로 이동한 다음 Positions 하위 탭으로 이동합니다. 캡처된 POST /login 요청이 표시됩니다.

Burp Intruder 는 종종 잠재적인 페이로드 위치를 자동으로 식별하고 § 기호로 표시합니다. 이 랩에서는 위치를 정확하게 제어하려고 합니다. 먼저 오른쪽의 Clear § 버튼을 클릭하여 기본 마커를 제거합니다.

창 하단의 요청 본문은 다음과 같습니다.

username=test&password=test

usernamepassword 매개변수의 값에 페이로드를 삽입하려고 합니다.

  1. 요청 편집기에서 username 매개변수의 값 test를 강조 표시합니다.
  2. 오른쪽의 Add § 버튼을 클릭합니다. 이제 매개변수는 username=§test§와 같이 표시됩니다.
  3. 다음으로 password 매개변수의 값 test를 강조 표시합니다.
  4. 다시 Add § 버튼을 클릭합니다. 이제 매개변수는 password=§test§와 같이 표시됩니다.

이제 요청 본문에는 두 개의 표시된 위치가 있어야 합니다.

username=§test§&password=§test§

이 마커는 Intruder 에게 해당 페이로드 세트의 페이로드를 정확히 어디에 배치해야 하는지 알려줍니다.

공격 유형을 'Pitchfork'로 설정하기

이 단계에서는 Pitchfork 공격 유형을 선택합니다. 이는 우리가 테스트하려는 페어링된 페이로드 주입 동작을 활성화하는 중요한 설정입니다.

여전히 Intruder > Positions 탭에 있는 동안 화면 상단의 "Attack type" 드롭다운 메뉴를 찾습니다. 기본적으로 Sniper로 설정되어 있을 가능성이 높습니다.

드롭다운 메뉴를 클릭합니다. 네 가지 옵션이 표시됩니다.

  • Sniper: 단일 페이로드 세트를 사용하고 각 위치를 하나씩 반복합니다.
  • Battering ram: 단일 페이로드 세트를 사용하고 모든 위치에 동일한 페이로드를 한 번에 배치합니다.
  • Pitchfork: 여러 페이로드 세트를 사용합니다. 세트 1 의 첫 번째 페이로드와 세트 2 의 첫 번째 페이로드를 페어링하고, 두 번째와 두 번째를 페어링하는 식으로 작동합니다.
  • Cluster bomb: 여러 페이로드 세트를 사용하고 가능한 모든 페이로드 조합을 테스트합니다.

사용자 이름/비밀번호 쌍을 테스트하는 시나리오의 경우 Pitchfork가 올바른 선택입니다. 목록에서 Pitchfork를 선택합니다.

Pitchfork를 선택하면 이 화면에서 인터페이스가 크게 변경되지 않지만, 이전 단계에서 설정한 두 개의 페이로드 마커에 해당하는 두 개의 별도 페이로드 목록을 처리할 준비가 된 것입니다.

Payloads 탭에서 두 개의 별도 페이로드 목록 구성하기

이 단계에서는 Pitchfork 공격에서 사용할 두 개의 페이로드 목록을 구성합니다. 첫 번째 목록에는 사용자 이름이 포함되고 두 번째 목록에는 해당 비밀번호가 포함됩니다.

Intruder 탭 내의 Payloads 하위 탭으로 이동합니다.

Pitchfork 공격 유형을 선택했고 두 개의 페이로드 위치가 있으므로 "Payload set" 드롭다운 메뉴가 표시됩니다. 이를 통해 각 페이로드 목록을 독립적으로 구성할 수 있습니다.

Payload Set 1 (사용자 이름) 구성:

  1. "Payload set" 드롭다운이 1로 설정되어 있는지 확인합니다.
  2. "Payload type"은 "Simple list"여야 합니다.
  3. 아래 "Payload Options" 섹션에서 Clear 버튼을 클릭하여 기본 항목을 제거합니다.
  4. Add 버튼을 클릭하고 다음 사용자 이름을 하나씩 입력합니다.
    • user
    • guest
    • admin
    • test

Payload Set 2 (비밀번호) 구성:

  1. 이제 "Payload set" 드롭다운에서 2를 선택합니다.
  2. 다시 "Payload type"이 "Simple list"인지 확인합니다.
  3. Clear 버튼을 클릭하여 목록을 비웁니다.
  4. Add 버튼을 클릭하고 첫 번째 목록의 사용자 이름에 해당하는 다음 비밀번호를 입력합니다.
    • userpass
    • guest
    • password123
    • test

이제 두 개의 별도 페이로드 목록을 구성했습니다. Pitchfork 공격은 이를 순서대로 페어링합니다: (user, userpass), (guest, guest), (admin, password123), (test, test). 총 요청 수는 4 개이며, 이는 목록의 크기입니다.

공격 실행 및 페어링된 페이로드 주입 관찰하기

이 마지막 단계에서는 공격을 시작하고 결과를 분석하여 Pitchfork 공격이 작동하는 것을 볼 것입니다.

공격 유형과 페이로드를 구성했으므로 시작할 준비가 되었습니다. Intruder 탭의 오른쪽 상단 모서리에서 "Start attack" 버튼을 클릭합니다.

새로운 "Intruder attack (1)" 창이 열리면서 실시간으로 결과가 표시됩니다. 결과 테이블을 관찰합니다. "Payload 1" 및 "Payload 2" 열이 표시됩니다.

페이로드가 구성한 대로 정확하게 페어링된 것을 확인합니다.

  • 요청 1 은 useruserpass를 사용합니다.
  • 요청 2 는 guestguest를 사용합니다.
  • 요청 3 은 adminpassword123을 사용합니다.
  • 요청 4 는 testtest를 사용합니다.

이제 "Status" 및 "Length" 열을 살펴봅니다. 대부분의 요청은 동일한 상태 코드 (예: 200) 와 응답 길이를 가지며, 이는 로그인 시도 실패를 나타냅니다. 그러나 하나의 요청이 눈에 띄어야 합니다. 페이로드 쌍 adminpassword123을 가진 요청이 올바른 자격 증명 세트입니다. 이 요청에 대해 다른 서버 응답 (예: "Login successful!" 메시지) 을 나타내는 다른 응답 길이를 볼 수 있어야 합니다.

예상 결과 예시:

요청 Payload 1 Payload 2 상태 길이
1 user userpass 200 450
2 guest guest 200 450
3 admin password123 200 452
4 test test 200 450

이러한 차이점을 관찰함으로써 Pitchfork 공격을 사용하여 유효한 자격 증명을 성공적으로 식별했습니다. 이제 공격 창을 닫을 수 있습니다.

요약

이 실습에서는 Burp Intruder 를 사용하여 Pitchfork 공격을 성공적으로 구성하고 실행했습니다.

다음 내용을 배웠습니다.

  • Burp Proxy 를 사용하여 웹 요청을 가로채고 Intruder 로 전송하는 방법.
  • 여러 매개변수 위치에 수동으로 페이로드 마커를 설정하는 방법.
  • 관련성이 있고 여러 매개변수에 대한 퍼징을 위해 설계된 Pitchfork 공격 유형을 선택하는 방법.
  • 사용자 이름 및 비밀번호 매개변수에 대해 별도의 상응하는 두 개의 페이로드 목록을 구성하는 방법.
  • 공격을 시작하고 결과를 분석하여 이상 징후를 식별하고, 페어링된 페이로드 주입을 관찰하여 올바른 로그인 자격 증명을 성공적으로 찾는 방법.

Pitchfork 공격은 사용자 이름과 비밀번호, 또는 기타 페어링된 데이터 세트와 같이 여러 매개변수의 데이터가 연결된 시나리오를 테스트하는 데 유용한 기술입니다.