Burp Suite 사용법 정리

XSS (Cross Site Scripting) 공격을 통해 웹 사이트의 보안을 취약하게 할 수 있는 툴이 있다.

Burp Suite 라는 툴인데, 이 툴을 이용하게 되면 javascript를 이용한 validation체크를 우회할 수 있다.

이 말은 웹 사이트의 보안을 유지하려면 client단에서의 javascript 유효성 체크뿐만 아니라 서버단에서의 유효성 체크도 해야 한다는 것이다. 간혹 우리 개발자들은 바쁘고 시간이 없다는 이유로 클라이언트의 유효성 체크만 하고 넘어가는 경우가 비일비재하다. 물론 나 또한 그런 경험이 있다.

Burp Suite의 동작 원리는 간단하다.

1. local PC 웹 브라우저에서 naver.com HTTP request

2. proxy server(Burp Suite)

3. 네이버 사이트 접속

4. 네이버 사이트 HTTP response

5. Proxy server(Burp Suite)

6. local PC 웹 브라우저

위의 순서를 보면 HTTP 요청과 응답 시 항상 proxy server를 거쳐 데이터가 이동하게 되는데 이곳에서 웹 사이트의 우회 공격을 할 수 있게 조작을 할 수 있는 것이다.

가령 response 응답의 HTML에서 자바스크립트 패스워드 유효성 체크 로직 부분을 삭제한 후 local PC 웹 브라우저에 return하게 되면 사용자 웹 브라우저에는 패스워드 검증 로직은 삭제되어 있는 HTML 결과 페이지를 받게 되는 것이다.

또 한 가지 SMS 인증과 같은 예를 들 수 있다.

HTTP/1.0 200 OK

Date: Wed, 28 Nov 2012 17:19:49 GMT

Server: Apache

Pragma: no-cache

Expires: Thu, 01 Jan 1970 00:00:00 GMT

Cache-Control: no-cache

Cache-Control: no-store

Content-Length: 38

Connection: close

Content-Type: text/plain

{“check”:0,”msg”:”MOBILE_AUTH_FAIL”}

위와 같이 서버로부터 response를 받으면 proxy server가 이를 가로채고 Burp Suite tool을 이용하여 데이터를 조작 후 브라우저로 response 보낼 수 있다.

다음과 같이 데이터를 조작하여 SMS 인증을 받고, 다음 절차로 진행할 수 있는 것이다.

{“check”:1,”msg”:”MOBILE_AUTH_SUCCESS”}

XSS 공격 테스트를 위한 Burp Suite 설정은 간단하다.

1.

http://portswigger.net/burp/ 에서 다운로드 받는다. jar로 되어 있고, 로컬 PC에 Java JDK가 설치되어 있어야 한다.

2.

Burp Suite 실행 > Proxy 탭 이동 > 바로 아래에 있는 Options 클릭 후 다음과 같이 설정

127.0.0.1:8080과 같이 설정

3.

IE > 도구 > 인터넷 옵션 > 연결 탭 이동

“LAN 설정” 버튼 클릭 후 프록시 서버 지정

주소 : 127.0.0.1

포트 : 8080


4.

Proxy 탭의 Intercept 클릭

Intercept is on 클릭

IE에서 테스트할 URL 입력하면 화면이 멈추게 되는데 이때 Burp Suite 화면에 가서 Forward를 클릭하면 정상적으로 페이지 로딩이 된다.