본문 바로가기

모의해킹/버프스위트

버프스위트 알아보기 - 3. Spider

1.1.      Spider

Spider는 자동으로 웹 애플리케이션을 크롤링해 주는 도구다. 일반적으로는 안정적인 매핑을 위해 수동으로 진행하지만 Spider는 큰 규모의 애플리케이션을 대상으로 부분적으로 자동화를 적용하여 짧은 시간에 매핑을 완성할 수 있다.

 Spider를 사용하기 전에 주의해야 할 사항은 간혹 어떤 애플리케이션에서 적용하는 경우 데이터가 삭제되거나 오작동하는 등의 예상치 못한 결과가 발생할 수 있다.

 

1.1.1.     Spider 실행

 Spider를 실행시키는 방법은 먼저 Target – Site map 에 Context 메뉴를 이용할 수 있다.

그림 2‑8 Context 메뉴를 이용한 Spider 실행

그림 28처럼 Spider를 실행시킬 수 있다. 이때 Site map에 진단 대상 이외의 대상이 자동으로 설정되어 있다면 실수로 다른 사이트에 공격 패턴을 주입할 수 있으므로, 불필요한 대상은 모두 Delete하도록 한다.

그림 2‑9 Spider 실행중

 Spider를 실행하면 Spider탭에 불이 들어오며 그림 29 처럼 Spider is running이라고 활성화된다. 한번 더 활성화 버튼을 누르면 Spider를 일시정지 할 수 있다. 실행중에 login과 같이 입력값을 입력해야만 하는 페이지는 무시할 것인지, 값을 넣어 제출할 것이지 선택할 수 있다. (그림 2‑10참조)

그림 2‑10 Spider 실행 중 폼 입력

 버프스위트에서 전체에서 사용하는 Scope 항목 이외에 개별적인 범위를 사용하고 싶으면 그림 211과 같이 SpiderControl 탭에 Spider Scope값을 변경한다.

그림 2‑11 Spider에서 Scope정하기

1.1.2.     Spider – Options

그림 2‑12 Spider – Options

Spider – Options 탭에서 크롤러 설정, Spidering 방식의 설정, Form 처리 옵션, 인증, Spider 엔진 등을 설정할 수 있다.

Options 각각의 기능은 아래 표에 정리해 놓았다.

항목

설명

Crawler Settings

웹 콘텐츠를 크롤링하는 방법을 제어한다. 대상 사이트에 robots.txt가 있는지 확인하여 해당하는 항목을 인덱싱되지 않도록 하거나 텍스트가 아닌 콘텐츠는 통과하도록 하는 등의 옵션을 지정할 수 있다.

Passive Spidering

이 옵션을 체크하면 추가 요청 없이 방문하는 애플리케이션의 기본적인 구조를 확인할 수 있다. 방문하는 페이지에 존재하는 모든 링크를 식별하여 표시하기 때문에 해당 페이지에 연결되어 있지 않은 페이지는 표시되지 않는다. 여기서도 마찬가지로 방문하지 않은 사이트는 회색으로 표시된다. 이 옵션의 체크가 해제되어 있다면 사용자가 현재 방문하여 요청한 페이지만 Site map에 추가된다.

From Submission

Spdering을 진행하면서 Submit Form이 나올 경우 어떻게 처리할 것인지 옵션을 설정한다. 먼저 해당 폼을 구분할 기준(Action URL, method, fields, values)을 설정한다. 폼을 발견하면 해당 폼을 submit할 것인지 아닌지 결정한다. submit하는 경우라면 사용자에게 해당 폼을 보여 주고 결정하게 하거나 자동으로 입력된 값을 입력하여 submit하는 방법이 있다. 하지만 모든 것을 submit하도록 설정하면 대상 애플리케이션에 의도하지 않는 값이 데이터베이스에 삽입될 수 있으니 꼭 확인한 후 결정해야한다.

Application Login

Spider를 이용하는 중에 로그인 폼을 발견하면 어떻게 처리할 것인지 옵션을 지정한다. 이 기능에도 로그인 폼을 그냥 지나치거나 submit하는 방법이 있다. 다른 옵션과 마찬가지로 이 옵션에서도 사용자에게 해당 폼을 보여 주고 처리하게 하거나 자동으로 입력되도록 미리 값을 지정할 수 있다.

Spider Engine

크롤링 작업을 수행할 때 사용하는 Spider 엔진 제어 옵션을 지정한다. 설정 가능한 옵션으로는 스레드 개수, 네트워크 실패 시 재시도 횟수, 요청 실패시 대기 시간, 요청 타이밍 조절 등이 있다. 이 옵션으로 Spidering 성능을 향상 시킬 수 있지만 대상 애플리케이션의 성능이나 사용자 PC의 성능에 따라서 향성 정도는 달라질 수 있다. 과도한 설정으로 대상 애플리케이션 서버나 사용자 단말에 영향을 줄 수 있으니 주의해야 한다.

Request Headers

 Spider에서 HTTP 요청 시 사용하는 헤더 값을 설정할 수 있다. 이 옵션은 모바일 디바이스를 요구하는 애플리케이션과 같이 특정 조건을 요구하는 애플리케이션에 적용한다. 추가적으로는 HTTP 버전 1.1을 사용하도록 설정할 수 있고 레퍼러 헤더를 요구하는 애플리케이션에 값을 제공하도록 설정할 수 있다.