소개
Burp Suite Intruder 는 웹 애플리케이션에 대한 맞춤형 공격 자동화를 위한 강력한 도구입니다. 매우 유연하며 간단한 퍼징 (fuzzing) 부터 복잡한 열거 (enumeration) 까지 광범위한 작업을 수행하는 데 사용할 수 있습니다.
Intruder 를 사용하는 첫 번째이자 가장 기본적인 단계는 요청을 선택하고 구성을 위해 해당 도구로 보내는 것입니다. 이 랩에서는 Burp Proxy 를 사용하여 매개변수를 포함하는 요청을 캡처한 다음 Intruder 도구로 보내는 방법을 배우게 됩니다. 이는 Intruder 를 사용하여 모든 유형의 공격을 수행하기 위한 기초적인 기술입니다.
프록시 기록에서 매개변수가 포함된 요청 찾기
이 단계에서는 로그인 양식을 제출하여 웹 트래픽을 생성한 다음, Burp Suite 의 프록시 기록에서 해당 요청을 찾습니다. 이 캡처된 요청을 가지고 작업할 것입니다.
먼저 요청을 생성해 보겠습니다.
- 바탕 화면 또는 애플리케이션 메뉴에서 Web Browser 애플리케이션을 엽니다.
- 브라우저의 주소 표시줄에
http://127.0.0.1:8000으로 이동합니다. 간단한 로그인 페이지가 표시되어야 합니다. - 양식에는
testuser와testpass가 미리 채워져 있습니다.Submit버튼을 클릭합니다. - 브라우저에 "Invalid Credentials"가 표시되는데, 이는 예상된 결과입니다. 중요한 것은 이제 매개변수가 포함된
POST요청을 보냈다는 것입니다.
이제 Burp Suite 에서 이 요청을 찾아보겠습니다.
- Burp Suite 창으로 전환합니다.
Proxy탭을 클릭합니다.Proxy탭 내에서HTTP history하위 탭을 클릭합니다.- Burp 를 통해 브라우저가 만든 모든 요청 목록이 표시됩니다. "Method" 열에
POST가 표시되고 "URL" 열에/login이 표시되는 요청을 찾습니다. 해당 요청을 클릭하여 선택합니다.
요청을 선택하면 아래 패널에서 제출한 username 및 password 매개변수를 포함한 전체 내용을 볼 수 있습니다.
요청을 마우스 오른쪽 버튼으로 클릭하고 'Send to Intruder' 선택
이 단계에서는 프록시 기록에서 캡처한 POST /login 요청을 Intruder 도구로 보냅니다. 이 작업을 통해 요청이 Intruder 로 복사되며, 여기서 공격을 구성할 수 있습니다.
Proxy>HTTP history테이블에서POST /login요청이 여전히 강조 표시되어 있는지 확인합니다.- 해당 요청 줄의 아무 곳이나 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 엽니다.
- 컨텍스트 메뉴에서 옵션 목록을 아래로 이동하고
Send to Intruder를 클릭합니다.
또는 요청을 선택하고 키보드 단축키 Ctrl+I를 사용할 수도 있습니다.
"Send to Intruder"를 클릭하면 프록시 탭에 즉각적인 변화는 없지만, 창 상단의 메인 Intruder 탭이 주황색으로 바뀌면서 새 요청을 받았으며 주의가 필요함을 나타냅니다.
Intruder > Positions 탭으로 이동
이 단계에서는 방금 보낸 요청을 보기 위해 Intruder 도구로 이동합니다. Positions 탭은 공격 중에 요청의 어떤 부분을 수정할지 정의하는 기본 보기입니다.
- Burp Suite 창 상단의 메인 탭을 확인합니다.
Intruder탭이 현재 강조 표시되어 있는 것을 볼 수 있습니다 (일반적으로 주황색). Intruder탭을 클릭하여 Intruder 도구로 전환합니다.
기본적으로 Positions 하위 탭으로 이동하게 됩니다. 이 화면은 두 부분으로 나뉩니다. 상단에는 대상 정보 (Host 및 Port) 가 있고, 하단에는 요청 편집기가 있어 프록시에서 보낸 요청을 보여줍니다. 이곳에서 공격 매개변수를 구성하게 됩니다.
자동으로 식별된 페이로드 위치 관찰
이 단계에서는 Burp Suite 가 요청에서 잠재적인 페이로드 위치를 자동으로 식별하는 방법을 살펴봅니다. 이러한 위치는 공격 중에 Intruder 가 페이로드를 삽입할 위치입니다.
요청이 Intruder 로 전송되면 Burp Suite 는 이를 자동으로 분석하고 공격하려는 부분을 추측합니다. 이러한 부분을 "페이로드 위치"로 표시합니다.
Intruder > Positions 탭에서 요청 편집기를 확인합니다. username 및 password 매개변수의 값이 강조 표시되고 특수 기호 §로 둘러싸여 있는 것을 볼 수 있습니다.
요청 본문은 다음과 유사하게 보일 것입니다.
username=§testuser§&password=§testpass§
§...§ 기호의 각 쌍은 단일 페이로드 위치를 정의합니다. Burp 는 여기서 사용자 이름용 하나, 비밀번호용 하나, 총 두 개의 위치를 자동으로 생성했습니다. 화면 오른쪽에서 "Attack type"이 기본적으로 Sniper로 설정되어 있는 것을 볼 수 있으며, 이는 한 번에 하나의 위치에 대한 페이로드를 반복합니다.
이 자동 감지는 편리한 시작점이지만, 많은 공격에서는 수동으로 위치를 정의해야 할 것입니다.
'Clear §' 버튼을 사용하여 기본 위치 지우기
이 단계에서는 자동으로 정의된 페이로드 위치를 지우는 방법을 배웁니다. 모든 매개변수가 아닌 비밀번호 필드만 테스트하는 것과 같이 더 표적화된 공격을 설정하려는 경우 이는 중요한 단계입니다.
요청 편집기의 오른쪽에 Add §, Clear §, Auto §, Refresh 버튼 세트가 있습니다.
Clear §버튼을 찾습니다.Clear §버튼을 클릭합니다.
클릭 후 요청 편집기에서 모든 강조 표시와 § 기호가 제거된 것을 볼 수 있습니다. 요청 본문은 이제 다음과 같이 깔끔하게 보입니다.
username=testuser&password=testpass
이제 요청은 사용자가 요청의 특정 부분 (예: testpass 값만) 을 수동으로 선택하고 Add § 버튼을 사용하여 사용자 지정 페이로드 위치를 정의할 준비가 되었습니다. 이를 통해 공격을 완벽하게 제어할 수 있습니다.
요약
이 실습에서는 Burp Suite Intruder 사용의 필수적인 첫 단계를 성공적으로 학습했습니다.
웹 브라우저로 트래픽을 생성하고 Proxy 기록에서 특정 POST 요청을 찾는 것부터 시작했습니다. 그런 다음 이 요청을 Intruder 도구로 보내는 방법을 배웠습니다. 마지막으로 Burp Intruder 가 페이로드 위치를 자동으로 표시하는 방법과 사용자 지정 공격 구성을 준비하기 위해 이러한 기본값을 지우는 방법을 관찰했습니다.
이 워크플로우를 숙달하는 것은 웹 애플리케이션 보안 테스트를 위해 Burp Intruder 의 기능을 활용하는 데 기본이 됩니다.
