출처 : http://isecure.tistory.com/20
Burp Suite
1. 개요
1) Burp suite 는 web application 을 공격하기 위한 통합 플랫폼/local proxy program
2) Web application 의 분석 , 스캔 (취약점 파악)이 가능
3) Linux , Windows 모두 사용 가능
4) 최근에는 취약점 진단 툴로 많이 사용(웹 취약점 진단 도구)
2. 설치 및 실행
1) Burp suite 를 실행시키기 위해서는 JVM(Java Virtual Machine) 이 필요하므로 자신의
시스템에 설치되어 있는지 확인 (없으면 다운로드)
- cmd 창에서 java 나 java -version 을 입력하고 엔터
* java 라고 입력했을 경우 java 명령어 사용법이나 옵션들이 출력 또는
java -version 을 입력하면 설치한 jre 나 jdk 의 버전이 출력
- JVM 이 없을 경우 다운로드
* Burp suite 를 실행만 시킬 목적이라면 JRE 다운로드
* 확장 plug 를 사용하기 위해 컴파일도 할 목적이라면 JDK 를 다운로드
(Burp Suite 는 Java program 임)
2) Burp suite 다운로드
http://portswigger.net/suite/download.html 또는
http://www.darknet.org.uk/2007/01/burp-proxy-burp-suite-attacking-web-applications/
3) 설치
- 압축 파일일 경우 압축을 풀면 suite 배치 파일이 있다.(suite.bat)
- suite.bat 을 더블 클릭하거나 cmd 창에서 java -jar -Xmx512m burpsuite_v1.2.01.jar 입력
3.기능
1) proxy : end browser(burp suite 를 사용하는 client 측) 와 target web application
(공격/테스트할 웹 사이트) 사이에서 HTTP/HTTPS 를 가로채는(중계하는) proxy server
2) spider : Web application 의 내용(컨텐츠나 기능 등) 을 목록화(열거)해서 보여줌
3) scanner : Professional 버전에서만 지원되는 기능으로 web application 의 보안 취약점을
찾아주는 기능
4) intruder : Web application 에 대해 식별자(identifier) 목록화 , 유용한 데이터 수집 , 일반적인
취약점 수집과 같은 커스터마이즈된 공격을 하도록 설정할 수 있는 기능
5) repeater : 수동으로 조작하고 , HTTP request 재발행 , application 의 response 분석하는 기능
6) sequencer : application 의 session token 이나 다른 중요 data 에 대해 임의로 quality
분석하는 기능
7) decoder : Web application 의 data 를 encoding , decoding 하는 기능
8) comparer : 어떤 두 개의 데이터( 보통은 request 와 response 쌍을 의미) 의 "diff" 를 수행하기
위한 기능
(Burp suite 의 proxy 설정은 아래 Burp proxy 참고)
자세한 사항은 영문이지만 http://portswigger.net/suite/help.html 를 참고
Burp Proxy
1.개요
1) Burp Proxy는 web application 을 공격 또는 테스트하기 위한 대화형 HTTP/S 프록시 서버
2) Burp Proxy는 end browser 와 target web server 사이의 중간자로써 작동하며 양방향(end
browser 에서 server 로 , server 에서 end browser 로) 지나가는 raw traffic 을 가로채거나
검사, 수정 가능
3) Burp Proxy으로 web server 에서 전송된 data , 중요 파라미터를 모니터링하고 조작하여
application 취약점을 발견 가능
4) 다양한 악의적인 방법으로 browser 의 요청(request) 를 수정함으로써 공격 가능
(예 : SQL 삽입 공격 , cookie 변조 , 권한 획득 , session hijacking , 디렉토리 접근 ,
buffer overflow 등)
2.특징
1) 완전한 HTTP/HTTPS proxy server
2) 파라미터,헤더,다양한 미디어 컨텐츠 ,hex 편집 등 모든 요청(request)과 응답(response)에 대한
상세 분석 및 반환
3) 모든 요청 , 수정 , 응답에 대한 완전한 history 제공
(모든 요청을 조작할 수 있도록 browser 에서 보낸 모든 요청, 응답에 대한 완전한 history 유지)
4) Burp suite 내 다른 tools 와 완전한 통합 (intruder , spider , scanner 등)
5) downstream proxy server ,web server 인증 , NTLM(Windows NT LAN Manager) 인증 ,
Digest 인증 지원
6) HTTP 요청과 응답의 정규화 기반의 조작을 자동화
7) SSL 지원
8) HTTPS traffic 을 clean-text 로 보거나 수정 가능
9) Linux / Windows 에서 실행 가능
10) Burp Proxy 는 Burp Suite 의 일부분
3.Burp Proxy 사용
1) Burp Proxy 는 기본적으로 loopback 인터페이스 , 8080 포트 사용
2) Burp Proxy 의 작동을 위해 browser 에서 proxy server 를 127.0.0.1 , 포트를 8080 으로 설정
- Browser 메뉴 중 "도구" 선택
- "인터넷 옵션" 선택
- "연결" 탭 선택 후 "LAN 설정" 버튼 클릭 (아래 스샷 참고)
- 아래와 같이 프록시 서버 설정하고 "확인"
3) Burp suite 실행
4.기능
1) Intercept 탭
- intercept 탭은 browser 의 요청과 server 의 응답을 보여주고 수정하기 위해 사용
* "proxy" 탭 클릭
* "intercept is off" 일 경우 클릭해서 "intercept is on" 으로 설정
* web browser 실행(URL 을 입력해서 페이지 요청하기)
* Burp Proxy 가 browser 와 web server (또는 application) 사이에서 request 와 response를
intercept 하고 있으므로 다음 단계(다음 페이지)로 진행하기 위해서 forward 버튼을 클릭
(intercept 한 메시지를 버리려면 drop 버튼 클릭)
* raw : plain text 형식으로 표시.text pane 하단부에 정규식 기반(regex : regular expression)
탐색과 중요 메시지를 포함하고 있는 string 이 표시
(아래는 모 사이트에 로그인할 때 intercept 하고 있는 정보)
* params : parameter(name 과 value 쌍으로 구성된 URL Query string , Cookie header ,
message body 등) 를 포함하고 있는 request 출력
* headers : HTTP header 정보를 name 과 value 쌍으로 출력
(아래 텍스트박스에 intercept 한 정보 중에 검색하고자 하는 것을 입력하면 자동 매칭)
* hex : raw binary data 를 보여주고, 편집 가능(편집할 경우에는 hex 에디터를 사용)
2) action
- 다양한 action 을 수행하기 위해 사용하는 기능
- text pane 에서 마우스 우클릭 또는 action 버튼을 클릭
text pane 에서 마우스 우클릭했을 경우
action 버튼 클릭했을 경우
3) send to XXX : 메시지 또는 메시지 일부를 공격/분석하기 위해 Burp Suite 의 다른 tool 로 송신 가능
4) change request method : HTTP 메소드 변경 가능
(자동으로 GET -> POST , POST -> GET 으로 변환)
change request method 실행 전
change request method 실행 후