[Web_Hacking] 프록시 툴(BurpSuite)

2014. 9. 24. 16:27 - Song's IT

- 개념 -

BurpSuite는 웹 애플리케이션 테스트에 사용되는 툴입니다.

일반적으로 사용자 측에서 서버로 전송하는 패킷인 HTTP Request패킷을 가로채어 분석하는 용도로 사용됩니다.



Proxy는

클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터(서버)나 응용 프로그램

입니다.


아래의 그림을 통해 Proxy를 쉽게 이해할 수 있습니다.



Alice(클라이언트)가 Bob(서버)에게 특정 요청을 할 때 브라우저에 특정 Proxy서버를 거쳐가게끔 설정을 해놓는다면, 해당 요청은 반드시 Proxy서버를 거치게 됩니다.


말 그대로 중간자 위치에서 해당 요청과 서버로부터의 응답을 확인할 수 있게 됩니다.

이 뿐만이 아니라, 캐시로 반복되는 요청을 저장해 두고 최종 목적지인 서버에 최신정보인지 확인만 하고 중간에서 해당 요청을 처리 하여 성능상의 이점을 목적으로 사용될 수도 있습니다.


또한, 여러 개의 프록시 서버를 경유하여 해당 목적지에 도착할 경우 발신자의 추적 또한 어려워져 익명성을 보장받는 용도로 사용될 수도 있습니다.


BurpSuite는 이러한 역할을 수행하여 패킷을 분석, 생성, 변조 등을 통해 해당 웹 애플리케이션의 취약점을 테스트할 수 있는 프록시 툴이라고 할 수 있습니다.


그 이외에도 BruteForce공격, 웹 사이트의 전체적인 구조를 파악하는 Spider기능 등 유용한 기능들이 많이 탑재되어 있습니다.



- 설치과정 -

1) JAVA JDK를 설치합니다. .jar파일 형태의 실행파일이기 때문에 반드시 JDK의 설치가 선행되어야 합니다. 설치과정 중 환경변수를 설정하는 과정은 인터넷을 참조하시기 바랍니다.


2) Http://portswigger.net/burp/ 에서 BurpSuite를 다운로드 받습니다.

연결 프로그램을 Java JDK로 설정하여 실행하여야 합니다.


3) Proxy탭의 Option부분에서 Proxy서버 설정을 해줍니다.

일반적으로 127.0.0.1:8080포트를 사용합니다.

자신의 컴퓨터(localhost=127.0.0.1)에서 8080포트를 통해 프록시 서버로서의 기능을 수행할 것이라는 설정입니다.


하위 메뉴를 보시면 Intercept Server Request와 Response가 있습니다.

서버로의 요청과 그에 대한 서버의 응답패킷을 가로채는 설정입니다.


일반적으로 응답패킷도 분석해야 함으로 저는 Intercept Response에도 체크를 해주었습니다.




4) 브라우저 설정에서 프록시 설정을 해줍니다. Explorer는 간단한 설정으로 프록시 서버를 지정할 수 있고, Chrome, Firefox등의 브라우저는 별도의 Proxy플러그인(확장프로그램)을 설치하면 이용이 가능합니다. 브라우저별로 프록시 사용법을 검색하셔서 127.0.0.1:8080으로 설정해주시면 되겠습니다.



- 주요기능 -

BurpSuite의 대표적인 8가지 기능은 다음과 같습니다.


1) Proxy

클라이언트 - 서버 간 트래픽을 가로채서 수정, 분석 할 수 있는 기능입니다.

브라우저의 프록시 서버 설정을 통해 이용할 수 있습니다.


2) Spider

웹 사이트의 전체적인 구조를 파악할 수 있습니다.

이 정보는 Scanner로 전송되어 웹 사이트 내부의 컨텐츠를 검색합니다.


3) Scanner

자동화 웹 스캔기능으로 여러 취약점을 자동 스캔할 수 있습니다.

유료버전인 Pro버전에서만 사용할 수 있습니다.


4) Intruder

직접 Payload를 작성하여 BruteForce(무작위 대입)공격을 수행할 수 있습니다.

패스워드 크랙 등 반복, 연속적인 요청을 쉽게 사용할 수 있습니다.


5) Repeter

응답 분석용으로 Intruder와 유사한 기능을 수행합니다.


6) Sequencer

세션 토큰의 임의성을 확인할 때 사용됩니다.

수 많은 응답패킷을 받아내어 해당패킷의 패턴을 저장 및 분석할 수 있습니다.


7) Decoder

암호화(인코딩) 된 데이터를 다시 원래 형태로 해독, 암호화 할 수 있습니다.


8) Compare

두 개의 패킷 데이터를 비교하는 용도입니다.

여러 입력값에 대한 응답을 비교하는 용도로 자주 사용됩니다.





'Web Security > Web_Hacking' 카테고리의 다른 글

WebShell] CAIDAO  (0) 2017.01.05
[Web_Hacking] Blind SQL Injection 시 Rownum필터링 우회  (0) 2014.12.23

다른 카테고리의 글 목록

Web Security/Web_Hacking 카테고리의 포스트를 톺아봅니다