버프는 다음의 사이트에서 무료버전을 다운받을 수 있다.
https://portswigger.net/burp/freedownload
Burp는 자신이 프록시 서버가 되어 특정 포트로 주고 받는 패킷을 제어할 수 있는 프로그램이다.
Java로 구현되어 설치해주어야 하나 사이트에 들어가면 Windows 버전도 존재한다.
이 프로그램을 쓰기 위해선 프록시 설정을 해주어야 하는데 IE에서 설정하면 된다.
크롬은 IE 설정시 자동적으로 해당 프록시를 통해 나가게 되는데(시스템 프록시를 타고나감)
파이어폭스는 내장되어 있는 프록시서버를 타고나가기 때문에 따로 설정해주어야 한다.
설치가 완료되면 초기 설정을 해주어야한다.
1. 프록시서버가 실행되도록 상태를 Running 으로 바꿔준다.
잘 되는지 확인한다.
패킷값을 보는 방법은 다음과 같다. 수정도 가능하다 (자동 URL인코딩됨)
프록시의 인터페이스는 다음과 같다.
Forward : 현재 리퀘스트 전송
Drop : 패킷을 버림
Intercept is on : 인터셉트여부
Action : 추가기능 (또는 패킷에 대고 마우스 우클릭)
만약 인터셉트를 끄게 된다면?
- 끄면 통신 잘됨
- 버프를 통해 전달은하지만 인터셉트는 안함,
- HTTP history를 통해 볼 수 있음
서버의 응답을 보고 싶다면 체크해주자(웬만하면 기본적으로 체크, 껐다 켤때마다 다시 설정)
2. 한글이 깨지지 않도록 한글폰트를 지정해준다.
문자열 인코딩같은 경우 자동적으로 잡아주나 혹시 안될 경우 따로 지정해주도록한다.
3. 브라우저에 따라 반응이 다른 웹페이지의 경우 브라우저의 정보를 바꿔준다.
해당 항목을 체크하면 User-Agent가 자동적으로 수정되어 패킷이 전송된다.
HTTP History를 보면 그동안 지나간 패킷을 볼 수 있다.
4. 인증서를 설정해준다.
Burp가 잘 안 될경우 인증서 문제일 경우가 크다. 크게 3가지의 설정해주는 방법이 있다.
첫번째는 인증이 안된 사이트에서 인증서를 클릭해 신뢰할 수 있는 기관으로 설정해주는 방법이다.
두번 째는 Burp에서 인증서를 다운 받는 방법이다.
저장된 인증서를 설정하는 방법은 다음 그림을 참고하면 된다.
마지막으로 버프를 통해서 가져오는 방법인데
인증서Export한다음에 cer로 확장자 변경후 #2번과 같이 브라우저에 설정하면 된다.
5. 검색 공급자를 해제한다.
브라우저에 URL을 입력하면 계속 인터셉트 된다. 검색공급자를 사용안함으로 바꾸자
6. 프록시를 타면 안되는 경우
기본적으로 프록시서버를 타야하는 경우 Upstream Proxy Servers를 설정해줘야한다
Add 버튼을 클릭 후 도메인을 입력한다.
7. 인터셉트 예외 설정
굳이 인터셉트할 필요가 없는 사이트는 예외 설정에 추가하도록 한다.
8. 무작위 공격 (Intruder)
Blind SQL 인젝션 공격의 경우 어떤 특수문자가 허용되는지 모르므로 무작위 공격을 해야한다.
수정하고자 하는 값이 여러개이면 Sniper 대신 Cluster bomb 로 지정하자.
Paylaod 타입을 Brute forcer로 지정한다.
9. 반복공격 (Repeater)
파일업로드, 다운로드, 블라인드 공격은 전달하는 값을 바꿔서 반복적으로 공격을 진행한다.
이럴때는 Repeater을 이용해 공격하는 것이 유리하다.
10. 디코더
BASE64, URL인코딩, HEX 이런 인코딩, 디코딩은 Decoder을 이용해 쉽게 값을 바꿀 수 있다.
11. 문자열 비교
두 응답 메시지의 문자열이 너무 길어 어느 위치의 값이 바뀐지 모를 경우 Comparer을 이용하자.
12. 이미 개발된 도구 이용 또는 자신이 개발한 도구 삽입
루비, 자바, 파이썬 코드로 짠 코드를 삽입할 수 있다.
이미 개발된 도구를 App Store에서 다운받거나 구입할 수 있다.
모바일의 경우 Frida도 존재한다.
'보안 > Web' 카테고리의 다른 글
Cross-Site Scripting (XSS) (0) | 2020.02.06 |
---|---|
Client Server 프로그램 주요 취약점 (0) | 2017.02.09 |
sqlmap (0) | 2017.02.08 |