보통 Deric라고 부르며 클라이언트와 서버 사이에서 데이터를 전달해 주는 서버. 웹 캐시 기능이 있는 경우가 많으며, 방식에 따라 클라이언트의 IP 주소가 서버에게 노출될 수도 있고 아닐 수도 있다.
많은 사람들이 자신의 아이피를 세탁하고 차단을 우회하기 위한 도구로만 알고 있지만, 프록시 서버가 설치된 처음 목적은 웹 서핑을 비롯한 인터넷 속도의 향상이었다. 1990년대 후반까지만 해도 이런 목적으로 사용되었다. 현재 이 역할은 CDN이 하고 있다. 그리고 내부정보 보안이 필요한 다수의 기업에서 프록시서버를 이용해서 외부망에 접속한다.
요약하면 클라이언트와 서버가 중간에 거쳐 가는 서버라고 생각하면 된다.
브라우저 -> 프록시 -> 서버
버프 슈트는 그런 프록시 서버를 제공하면서도 여러 기능들을 제공하기에 모의해킹에 필수적인 도구이다.
여러 기능들이 하는 일을 살펴보자
Target : web application이 제공하는 콘텐츠와 기능들을 확인해 볼 수 있는 메뉴. 사전조사에 사용되는 기능입니다.
Proxy : web browser와 web server 중간에 위치하여 패킷을 확인하는 메뉴. 자주 사용되는 기능입니다. 이 메뉴에서 패킷을 가로채서 요청/응답을 확인하거나 변조/삭제할 수 있습니다.
Spider : web application을 크롤링하여 콘텐츠와 기능을 찾을 수 있는 메뉴
Scanner : 웹 취약점 스캐너 도구를 지원하는 메뉴 (유료 버전에서 사용 가능)
Intruder : web application에 대해 사용자가 정의한 자동화 공격을 수행하는 메뉴
Repeater : web application의 응답을 분석하기 위해 여러 개의 조작된 HTTP 요청을 전송하는 메뉴
Sequencer : web application의 세션 토큰의 랜덤성의 질을 테스트하는 메뉴
Decoder : 암호화된 데이터를 복호화(decoder) 하거나 평문의 데이터를 암호화(encoder)의 기능을 제공하는 메뉴
Comparer : 유사한 두 개의 HTTP 요청/응답을 비교할 수 있는 메뉴
Extender : Burp Suite의 기능을 확장하기 위한 메뉴
먼저 설정 -> 프록시 설정으로 가서 127.0.0.1에 포트를 8080으로 맞추어 준다.
프록시 포트는 대부분 8080을 사용하기 때문이다.
먼저 나의 게시판 사이트에 보내는 요청을 가로채서 관리자 아이디로 로그인하는 것으로 요청을 변경하여 foward해보겠다.
아래 사진을 보면 signin_process.php에게 포스트요청으로 userid와 passwd를 jckim2유저로 접속할 수 있는 요청을 보냈다.
하지만 버프슈트는 그 패킷을 가로챘다.
나는 그 밑에 요청을 관리자의 아이디와 비밀번호로 변경 후 foward로 서버에 요청하였다.
그렇게 하니 관리자 계정으로 성공적인 로그인이 된 것을 볼 수 있다.
추가적으로 Target 메뉴에서는 이 웹 어플리케이션의 주요 기능들을 아래처럼 보여준다.