본문 바로가기
정보보안/모의해킹

[웹 해킹] Burp Suite의 기능

by 용오동 2024. 12. 21.
반응형

 


[Burp Suite 설정 및 사용 방법 바로가기]


실제 서비스되고 있는 웹 사이트에 침투하는 행위는 불법입니다.

절대 어떠한 공격 행위도 수행하면 안된다는 것을 잊지 마세요!


[Burp Suite 실행]

 

♣ 칼리 리눅스에서 Burp Suite를 실행하고, [Temporary Project in memory] 옵션이 선택된 상태로 [Next]를 클릭한다.

 

♣ [Use Burp defaults] 옵션을 선택하고 [Start Burp]를 클릭한다.

 

♣ 파이어폭스 브라우저를 실행하고 퍼즐 모양의 [Extensions]을 클릭하고 [FoxyProxy]를 클릭한다.

 

♣ [Burp Suite]를 클릭하여 활성화 시킨다.

 

※ Burp Suite에 사용한 대상 웹 애플리케이션은 bWAPP와 DVWA가 설치되어 있는 가상 머신 환경(VMware - Ubuntu)에서 진행하였다.

더보기

# bWAPP

 

# DVWA


[Burp Suite 기능]

 

[Target - Site map]

♣ 타겟 메뉴는 사용자가 이용한 애플리케이션 정보들을 저장하고 이를 목록화하여 보여준다. 

 

타겟의 하위 메뉴인 [Site map]을 이용하면 접속한 모든 호스트와 URL 구조를 쉽게 파악할 수 있다.

 

[Site map]은 사용자가 이용한 애플리케이션의 정보들을 목록화하여 보여주는 메뉴이다. URL 트리, 테이블 뷰, Request/Response, 필터 탭으로 구성되어 있다.

① : URL 트리

접속했던 호스트를 트리 형태로 보여준다. 선명한 글씨로 표시된 호스트는 직접 접속한 호스트를 나타내고, 흐릿한 글씨로 표시된 호스트들은 버프 스위트가 HTTP 메시지를 분석해 메시지에 포함된 링크들을 자동으로 찾아내어 보여주는 호스트이다.

② : 테이블 뷰

①에서 선택한 호스트를 대상으로 보낸 요청과 응답 정보(메소드와 URL, 파라미터 존재 여부(Params), 응답 코드, 응답 메시지 길이 등)를 보여주는 탭이다.

③ : Request / Response 탭

Request 탭은 ②에서 선택한 항목의 요청 메시지 내용을 보여준다. 또한 Response 탭 역시, ②에서 선택한 항목의 응답 메시지 내용을 확인할 수 있다.

 

♣ [Site map] 탭 바로 아래 [Site map filter : ...] 클릭하면 원하는 항목을 필터링할 수 있게 된다.

 

필터의 각 항목은 아래와 같다.

  • Show only in-scope items : 스코프에 설정된 항목들만 설정한다.
  • Show only requested items : 직접 요청한 항목들만 표시한다. 즉, 버프 스위트가 HTTP를 분석하여 메시지에 포함된 링크를 자동으로 찾아 보여주는 호스트 목록들을 표시하지 않는다.
  • Show only parameterized requests : 파라미터가 포함된 요청만 표시한다.
  • Hide not-found items : 웹사이트에 존재하지 않는 항목은 표시하지 않는다.
  • Filter by MIME type : 응답 데이터의 종류로 필터링한다.
  • Filter by staus code : 응답 코드로 필터링한다.
  • Filter by file extension : 파일 확장자로 필터링한다.
  • Filter by annotation : 코멘트를 남겼거나, 하이라이트된 항목만 표시한다.(테이블 뷰의 항목을 우클릭하면 코멘트나 하이라이트를 할 수 있다.)
  • Show all, Hide all : 모든 요청을 표시하거나 숨긴다.

 

[Target - Scope]

♣ 현재 작업할 호스트와 URL 범위를 설정하는 메뉴이다. [Include in scope] 테이블과 [Exclude from scope] 테이블로 구성되어 있으며, 특정 호스트 및 URL을 포함시키거나 제외할 수 있다.

※ 버프 스위트는 버프 스위트를 거쳐간 모든 정보를 표시한다. 모의해킹 수행시 점검하고자 하는 사이트와 관련된 내용만 표시하고 싶을 때가 있다. 이 때, 스코프 기능을 이용해 원하는 내용만 표시할 수 있다.

 

+ 원하는 호스트를 스코프에 간단하게 추가하는 방법

더보기

♣ [Site map]의 URL 트리에서 원하는 호스트 항목을 선택하고 마우스 우클릭하여 [Add to scope]를 선택한다.

 

♣ 이 때, 프록시 히스토리 로깅 관련 설정창이 팝업되는데, 이는 스코프에 등록되지 않은 프록시 히스토리나 다른 기능으로 아예 전달하지 않기를 원하는지 물어보는 내용이다.

[Yes]를 선택하면 스코프에 등록되지 않은 항목들에 대해서는 더 이상 데이터를 수집하지 않게 된다.

[No]를 선택하면 데이터를 계속해서 수집한다.

※ 데이터를 수집하더라도, 스코프에 잇는 항목만 표시하도록 설정할 수 있다. 더 이상 해당 문구가 표시되지 않도록 하려면 [Always take the same action in future] 체크박스를 선택하면 된다.

 

♣ 스코프에 추가된 항목들은 [Scope] 탭에서 확인할 수 있다.

 

[Proxy - Intercept]

♣ [Proxy]는 웹 서버와 사용자가 통신하는 중간에 위치해 패킷을 가로채어 분석하고 수정하는 기능을 수행한다.

※ Burp Suite는 애플리케이션으로 동작하지만, 대부분 프록시 서버라는 이름으로 사용하며, 웹 서버와 사용자 간의 통신 구간에 사용하기 때문에 웹 프록시로 불린다.

 

[프록시 서버의 사용 목적]

  • IP 추적을 당하지 않도록해 익명성을 보장한다.
  • 원하지 않는 사이트를 차단하거나 차단을 우회하기 위해 사용한다.
  • 네트워크 통신을 기록하고 검사하기 위해 사용한다.
  • 악성코드 전파와 같이 악의적인 목적으로 사용한다.

 

♣ [Intercept] 기능을 이용하면 웹 브라우저와 웹 서버가 주고 받는 HTTP 요청/응답 메시지의 내용을 확인하고 수정할 수 있다.

- DVWA에 로그인을 시도하게 되면 웹 서버로 요청 메시지를 전송한다. 이 때, 프록시로 패킷을 인터셉트한 뒤 확인해보면 POST로 전송되고 있는 것을 확인할 수 있다.

DVWA 로그인 시도

 

- Message Body 부분을 보면 username, password, Login, user_token 파라미터와 값을 전달하고 있는 것을 확인할 수 있다.

 

- 인터셉트된 요청 메시지는 사용자가 [Forward] 버튼을 눌러 전송시킬 때까지는 웹 서버로 전송되지 않는다. 마찬가지로 응답 메시지를 인터셉트할 경우에도 응답 메시지는 사용자가 전송시킬 때까지 웹 브라우저로 전달되지 않는다.

※ HTTP는 자체적으로 타임 아웃 처리를 하지 않기 때문에 인터셉트를 장시간 했다가 메시지를 전송하더라도 통신 되는 데 문제가 발생하지는 않는다. 단, 세션 타임아웃이 적용된 웹 사이트의 경우에는 시간이 지나면 로그인 상태가 끊어지는 일은 발생할 수 있다.

 

♣ [Forward], [Drop]. [Intercept is On], [Action] 버튼의 기능은 아래와 같다.

  • Forward : 검토, 편집한 패킷을 서버나 브라우저로 보낸다.
  • Drop : 현재 표시된 패킷을 보내지 않고 버린다.
  • Intercept is off : 패킷을 잡지 않고 자동으로 포워드 시킨다.
  • Intercept is on : 요청 / 응답 패킷을 인터셉트한다.
  • Action : 인터셉트한 패킷을 통해 사용할 수 있는 옵션을 표시한다.

 

Intercept 기능 사용시, 메시지의 상태 및 흐름

- 처음 버프 스위트를 실행하면 인터셉트가 항상 켜져있게 되고, [Intercept is on] 상태가 된다.

- 이 상태에서 버프 스위트는 웹 브라우저의 모든 요청을 인터셉트하고 메시지를 대기열에 대기시켜둔 후 인터셉트되어있는 각 요청에 대해 하나씩 사용자의 입력을 기다리게 된다.

- 사용자는 [Forward] 버튼을 눌러 인터셉트한 요청을 전송시키거나, [Drop] 버튼을 눌러 요청을 취소할 수 있다. Forward 하기 전에 메시지의 내용을 수정하는 것도 가능하다.

※ 이렇게 인터셉트로 중간에 메시지를 변경하는 작업이 가능하기 때문에 웹 개발자 입장에서는 HTTP 요청 메시지의 헤더나 파라미터 값을 절대로 신뢰해서는 안된다. 서버에서 검증하는 루틴을 구현해야 한다.

- 하나의 인터셉트된 메시지를 처리하고 나면, 다음 인터셉트된 메시지가 나타나고 다시 사용자의 입력을 기다린다.

- 인터셉트 기능을 끄고 싶을 때는 [Intercept is on] 버튼을 눌러 [Intercept is off] 상태가 되도록 하면 된다. 만일 이 시점에 대기열에 남아있는 메시지가 있다면 모든 메시지를 서버로 전송한다.

 

[Proxy - HTTP history]

♣ 어플리케이션 트래픽에 대한 주요 정보를 모니터링하는 동안 중단 없이 검색할 수 있도록 프록시를 통해 전달되는 HTTP의 모든 요청과 응답을 기록한다.

 

♣ 화면의 상단 부분에는 각 요청 메시지의 핵심 정보를 요약해서 보여준다. 항목을 선택하면 하단 부분에서 요청(Requst) / 응답(Response) 메시지를 확인할 수 있다.

 

+ 하이라이트 기능

더보기

♣ 하이라이트 기능을 적용하여 원하는 항목에 색깔을 표시할 수 있다. 번호를 클릭하여 표시색을 선택하거나, 마우스 우클릭하여 색상을 선택한다.

 

하이라이트를 준 모습

 

♣ [Site map]에 필터링 기능과 같이 필터 옵션을 통해 원하는 항목만 표시할 수 있다.

  • Hide items without responses : 응답이 없는 항목은 표시하지 않는다.
  • Filter by listener : 포트 번호로 필터링한다.
  • 그 외 옵션은 [Site map] 필터의 옵션과 동일하다.

 

[Proxy - WebSockets history]

♣ 프록시를 통해 전달되는 WebSocket의 모든 요청과 응답을 기록한다.

 

[Proxy - Proxy Settings]

♣ 프록시와 관련된 옵션을 설정할 수 있는 메뉴이다.

 

Proxy Listeners : 프록시의 인터페이스 주소와 상태를 설정한다.

- 프록시 리스너는 브라우저로 들어오는 연결을 수신하는 로컬 HTTP 프록시 서버이며, 모든 요청과 응답을 모니터링하고 가로챌 수 있다. 기본적으로 127.0.0.1(루프백)의 8080 포트로 하나의 리스너가 설정되어 있다.

- [Add]를 통해 새로운 리스너를 생성할 수 있고, Binding, Request handling, Certificate, TLS Protocols, HTTP로 구성되어 있다.

 

Request interception rules : 인터셉트 탭에서 가로채는 사용자의 요청에 대해 규칙을 지정하는 옵션이다. 즉, 어떤 요청을 인터셉트할지 설정하는 메뉴이다.

- 도메인, IP, 프로토콜, HTTP 메소드, URL, 파일 확장자, 파라미터, 쿠키, 헤더/바디 컨텐츠, 상태코드, MIME 타입, HTML 페이지 제목, 프록시 리스너 포트를 구성할 수 있으며, 정규 표현식을 사용해 속성 값을 정의한다.

+ 체크 옵션

- Intercept requests based on the following rules : 옵션에 추가된 정책에 해당하는 요청이 발생되면 인터셉트에 표시되고, 그렇지 않으면 표시되지 않는다.

- Automatically fix missing or superfluous new lines at the end of requests : 요청의 마지막 라인에 불필요한 라인이 추가되거나 누락될 때 자동으로 수정된다.

- Automatically update Content-Length header when the request is deited : 수정된 요청의 Content-Length 헤더를 자동으로 업데이트한다.

 

Response interception rules : 인터셉트에서 가로채는 서버의 응답에 대한 규칙을 지정하는 옵션이다. 즉, 어떤 응답을 인터셉트할지 설정하는 메뉴이다.

- 도메인, IP, 프로토콜, HTTP 메소드, URL, 파일 확장자, 파라미터, 쿠키, 헤더/바디 컨텐츠, 상태코드, MIME 타입, HTML 페이지 제목, 프록시 리스터 포트를  구성할 수 있으며, 정규 표현식을 사용해 속성 값을 정의한다.

+ 체크 옵션

- Intercept responses based on the following rules : 해당 옵션에 추가된 정책에 해당하는 응답이 발생되면 인터셉트에 표시되고, 그렇지 않으면 표시되지 않는다.

- Automatically update Content-Length header when the response is edited : 수정된 응답의 Content-Length 헤더를 자동으로 업데이트한다.

 

Response Modification rules : 체크된 옵션을 바탕으로 응답을 자동으로 수정해주는 옵션이다.

 

HTTP match and replace rules : 요청/응답 메시지의 특정 패턴을 매칭하고 다른 표현으로 대체한다. 

- 위 기능은 문자열을 정규 표현식으로 바꾸어 사용할 수 있도록 해준다.

- 요청/응답 메시지에서 일치하는 항목이 있으면 자동으로 수정하도록 하는 기능이다.

 

TLS pass through : 버프 스위트가 TLS 연결을 직접 통과할 대상 웹 서버를 지정한다.

+ 체크 옵션

- automatically add entries on client TLS negotiation failure : TLS 협상에 실패한 서버를 자동으로 목록에 추가한다.

 

Miscellaneous : 버프 스위트 프록시 동작의 특정 세부 사항을 제어하는 옵션을 설정한다.

+ 옵션

더보기

- Use HTTP/1.0 in requests to server : 서버에게 요청할 때 HTTP/1.0을 포함시켜 전송한다.

- Use HTTP/1.0 in response to client : 사용자에게 응답할 때 HTTP/1.0을 포함시켜 전송한다.

- Set response header "Connection : close" : HTTP 파이프라이닝을 방지하는데 유용하게 사용된다.

- Unpack compressed requests : 사용자 지정 클라이언트 구성 요소를 사용하는 애플리케이션에 존재하는 압축된 요청 본문을 자동으로 압축 해제한다. 버프 스위트는 gzip, Deflate 또는 Brotli를 사용하여 압축된 요청을 해제할 수 있다. 일부 애플리케이션은 압축된 본문을 예상하지만 압축이 제거된 경우 문제가 발생할 수 있다.

- Unpack compressed response : 압축된 응답 본문을 자동으로 압축 해제한다. 버프 스위트는 gzip, Deflate, Brotli를 사용하여 압축된 응답을 압축 해제할 수 있다. 서버가 응답을 압축하지 못하도록 하는 경우가 많다는 점에 유의한다. match 및 replace 규칙을 Accept-Encoding을 사용해 요청에서 헤더를 제거한다.

- Disable web interface at http://burpsuite : 보호되지 않은 인터페이스에서 연결을 허용하도록 리스너를 구성해야하고, 다른 사람이 버프 스위트의 브라우저 내 인터페이스에 접근하는 것을 방지하고자 할 때 사용한다.

- Suppress Burp error messages in browser : 브라우저에 에러 메시지를 제공하지 않는 옵션이다.

- Don't send items to Proxy history or live tasks : 해당 기능을 활성화하면 버프 스위트는 프록시 기록에 요청을 기록하거나 라이브 작업에 보낼 수 없다. 이를 통해 메모리 및 스토리지 오버헤드를 제한할 수 있다. 버프 스위트를 사용하여 업스트림 서버를 인증하거나 일치 및 바꾸기 작업을 수행하는 경우 유용하다.

- Don't send items to Proxy history or live tasks, if out of scope : 해당 기능을 활성화하면 버프 스위트는 프록시 기록에 범위를 벗어난 요청을 기록하지 않거나 라이브 작업에 보내지 않는다. 이를 통해 범위를 벗어난 항목에 대한 프로젝트 데이터를 축적하지 않아도 된다. 대상 범위를 설정하고 범위를 벗어난 항목에 대한 프록시 기록을 중지하면 해당 옵션이 자동으로 선택된다. 

 

+ 옵션에 대한 더 자세한 정보 확인(PortSwigger)

 

[(신) Scan / (구) Spider]

♣ 스캔 기능은 웹사이트의 링크를 자동으로 찾아 웹사이트의 전체 구조를 빠르게 알아내고자 할 때 사용하는 기능이다.

- 크롤링 : 링크를 분석하여 새로운 웹 페이지를 찾아내는 것을 크롤링이하고 한다.

- 스캔 기능은 점검하고자 하는 URL을 크롤링 및 취약점 스캔을 통해 내부에 존재하는 취약점 등을 확인할 수 있도록 한다.

※ 해당 기능은 "Community Edition(무료버전)"에서는 사용이 불가능하고 "Professional"에서 제공하는 기능이다.

 

[Intruder]

♣ 인트루더는 요청 메시지의 특정 위치를 지정하여 여러 개의 데이터를 자동으로 반복 전송하는 기능이다. 이 때 보내는 데이터를 페이로드(Payload)라고 한다.

- 인트루더 기능은 웹 애플리케이션에 대한 맞춤형 공격을 자동화하는 도구이다. 동일한 HTTP 요청을 계속 보내는 공격을 구성해 정의된 위치에 다른 페이로드를 삽입할 수 있다.

- 퍼징(Fuzzing) : 공격 대상 시스템의 보안 취약점을 탐지하기 위해 다양한 입력값을 전송하는 테스팅 방법을 말한다.

 

[Intruder 기능의 사용 범위]

  • 사용자 이름이나 비밀번호와 같은 유효한 식별자를 추출한다.
  • 식별자에 대한 유용한 정보를 추출한다.
  • 입력 기반 취약점을 식별한다.
  • 추가적인 공격을 발견한다.
  • 사용자 이름과 비밀번호 조합을 추측하여 많은 시도를 수행하는 무차별 대입 공격을 수행한다.

 

♣ 인트루더의 [Positions] 항목에서는 페이로드 위치를 결정하고 할당되는 공격 유형 방식을 결정할 수 있도록 구성하는 탭이다. 

- 공격 유형 방식은 [Choose an attack type]을 클릭하여 목록 중 하나를 선택해 구성할 수 있다.

 

Choose an attack type의 종류는 아래와 같다.

- Sniper : 단일 페이로드 세트를 사용해 각 페이로드를 해당 위치에 차례로 배치한다. 

- Battering ram : 단일 페이로드 세트를 사용하여 페이로드를 반복하고 동일한 페이로드를 정의된 모든 페이로드 위치에 한 번에 배치한다.

- Pitchfork : 여러 개의 페이로드 Set을 사용해 정의된 각 위치에 대해 모든 페이로드 세트를 동시에 반복하고 정의된 각 위치에 하나의 페이로드를 배치한다.

- Cluster bomb : 여러 개의 페이로드 세트를 사용해 정의된 각 위치에 대해 각 페이로드 세트를 차례로 반복하여 페이로드 조합의 모든 순열 테스트를 진행한다.

 

♣ 페이로드 마커(Payload markers)는 수동 또는 자동으로 페이로드를 배치할 수 있다. 편집기 옆에 단추를 사용해 기본 페이로드 마커를 수정한다.

+ 버튼의 기능

- Add ∮ : 텍스트를 선택하지 않으면 커서 위치에 단일 페이로드 마커를 삽입할 수 있다.

- Clear ∮ : 전체 템플릿 또는 템플릿의 선택된 부분에서 모든 위치 마커를 제거할 수 있다.

- Auto ∮ : 페이로드를 배치하고 그에 따라 페이로드 마커 배치를 자동적으로 추측하여 위치를 지정한다. 적합한 위치를 빠르게 표시하는 퍼징에 유용하다.

- Refresh : 요청 템플릿 편집기의 구문 색상 표시를 새로 고침한다.

- Clear : 전체 요청 템플릿을 삭제한다.

 

♣ [Site map]이나 [Proxy] - [History]에서 원하는 항목을 선택해 마우스 우클릭하여 [Send to Intruder] 메뉴를 이용하면, 기본이 될 요청 메시지를 쉽게 생성할 수 있다.

선택한 요청 메시지가 페이로더로 생성되었다.

 

♣ [Payloads] 탭은 페이로드 포지션에 삽입할 페이로드 세트(Set)를 선택하고 사용할 페이로드 타입(Type)을 선택할 수 있다.

- 생성된 페이로드를 다양한 방법으로 조작하는 페이로드 처리 규칙과 HTTP를 통한 안전한 전송을 위해 올바른 문자가 URL 인코딩 되도록 페이로드 처리를 구성할 수 있다.

 

+ 페이로드 타입의 종류는 아래와 같다.

더보기

- Simple list : 가장 간단한 페이로드 유형이며 페이로드로 사용되는 문자열 목록을 구성할 수 있다. 텍스트 상자와 [Add]를 사용해 목록에 항목을 수동으로 추가하거나 클립 보드에서 목록을 붙여 넣을 수도 있고, 파일을 로드할 수도 있다.

- Runtime file : 런타임 시 페이로드 문자열을 읽을 파일을 구성할 수 있다. 큰 크기의 페이로드 목록이 필요한 경우에 유용하다. 파일의 각 줄에서 하나의 페이로드를 읽어오므로 페이로드에는 줄 바꿈 문자가 포함되지 않을 수 있다.

- Custom iterator : 여러 항목 목록을 구성하고, 목록에 있는 모든 항목의 순열을 사용해 페이로드를 생성할 수 있다. 주어진 템플릿에 따라 문자 또는 기타 항목의 맞춤 순열을 생성하는 방법을 제공한다.

- Character substitution : 문자열 목록을 구성하고 각 항목에 다양한 문자 대체를 적용할 수 있다. 사전 단어를 기반으로 단어를 변형하여 암호 추측 공격에 사용할 수 있다.

- Case modification : 문자열 목록을 구성하고 각 항목에 다양한 대/소문자를 수정하여 적용할 수 있다. 사전 단어를 기반으로 대/소문자를 변형하여 암호 추측 공격에 사용할 수 있다.

- Recursive grep : 공격의 이전 요청에 대한 응답에서 각 페이로드를 추출할 수 있다. 유용한 데이터를 추출하거나 익스플로잇을 제공하기 위해 재귀적으로 작업해야 하는 경우 유용하게 사용된다.

- Illegal Unicode : 문자의 잘못된 유니코드 표현을 생성하는 데 사용된다. 특정 문자를 차단하도록 설계된 필터를 우회하는 데 사용한다.(예 :  "../" 및 "..\" 순서의 예상 인코딩과 일치하는 파일 경로 순회 공격에 대한 방어)

- Character blocks : 지정된 문자 또는 문자열의 블록을 기반으로 페이로드를 생성한다. 관리되지 않는 네이티브 컨텍스트에서 실행되는 소프트웨어의 버퍼 오버플로우 및 기타 경계 조건 취약성을 감지하는데 사용된다.

- Numbers : 지정된 범위 내에서 지정된 형식으로 숫자 페이로드를 생성한다.

- Dates : 지정된 범위 및 형식으로 날짜 페이로드를 생성한다. 

- Brute Forcer : 지정된 문자 세트의 모든 순열을 포함하는 지정된 길이의 페이로드를 생성할 수 있다.

- Null payloads : 값이 빈 문자열 페이로드를 생성한다. 이를 사용해 기본 요청을 수정하지 않고 반복적으로 요구할 때 사용한다. 페이로드 위치를 구성할 필요가 없다.

- Character frobber : 입력의 각 문자 위치 값을 수정할 수 있다. 입력은 각 페이로드 위치의 기본값이거나 지정된 문자열일 수 있다. 공격은 한 번에 한 문자씩 차례로 각 항목을 순환하면서 해당 문자의 ASCII 코드를 1씩 증가시킨다. 이 페이로드 타입을 사용하여 어떤 매개변수 값 또는 값의 일부가 애플리케이션의 응답에 영향을 미치는지 테스트할 때 사용한다.

- Bit flipper : 각 비트 위치 값을 수정할 수 있다. 입력은 각 페이로드 위치의 기본 값이거나 지정된 문자열일 수 있다. 한 번에 한 문자씩 각 항목을 순환하면서 지정된 비트를 차례로 뒤집는다.

- Username generator : 이름 또는 메일 주소 목록을 구성할 수 있다. 다양한 공통 구성표를 사용해 잠재적 사용자 이름을 얻을 수 있다. 이 페이로드 타입은 특정 사용자를 대상으로 하고 애플리케이션 내에서 사용되는 사용자 이름이나 이메일 주소 체계를 모르는 경우 유용하게 사용된다.

- ECB block shuffler : ECB로 암호화된 데이터의 암호문 블록을 섞고, 복호화된 일반 텍스트를 수정하고 잠재적으로 애플리케이션 논리를 방해할 수 있다.

- Extension-generated : 버프 스위트 확장 프로그램을 호출하여 페이로드를 생성한다. [Select generator...]를 클릭하여 목록에서 확장 기능 제공 페이로드 생성기를 선택한다. 확장 기능은 Intruder 페이로드 생성기로 등록되어야 한다.

- Copy other payload : 다른 페이로드 위치에서 현재 페이로드의 값을 복사한다. 여러 페이로드 세트가 있는 공격 유형과 함께 사용할 수 있다.

 

♣ [Payload processing] 탭에서 [Add]를 클릭해 선택한 페이로드 타입에 의해 생성된 페이로드를 추가 조작할 수 있다.

 

[Repeater]

♣ 리피터는 수동으로 메시지를 조작하여 취약점 진단을 위한 입력 매개변수 조작, 요청, 재발행 등 다양한 목적으로 테스트할 수 있는 기능이다.

 

 리피터도 인트루더와 마찬가지로, [Proxy] - [HTTP History]의 항목 중 요청 메시지를 마우스로 우클릭하여 [Send to Repeater]를 통해 요청을 리피터로 보낼 수 있다.

 

 Request(요청) 부분에서 메시지를 변경할 수 있다. [Send]를 누르면 요청이 전송되고, 요청에 대한 응답이 화면 오른쪽 Response(응답) 부분에 표시된다.

- [Send] 버튼을 누를 때마다 반복 요청이 가능하기 때문에 수동으로 값을 조작하고 그 값에 따라 응답이 어떻게 변하는지 쉽게 확인이 가능하다.

 

- GET 메소드 요청 메시지를 [HTTP History]에서 불러와 쿠키 헤더의 security 변수 값을 "low"로 수정한 뒤 [Send]를 클릭해 서버에 전송하였다. 그 후 200 OK의 응답 메시지가 표시되는 것을 확인할 수 있다.


[추가 설정]

♣ Request / Response의 'Intercept requests/responses based on the following rules' 체크박스에 체크

♣ 박스 안의 옵션 중 'And / URL / Is in target scope' 항목에 체크(Requests / Response 모두)

반응형