버프스위트는 웹 어플리케이션 보안 테스트를 진행해볼 수 있는 툴입니다.
스캐너(Scanner), 프록시(Proxy), 리플레이터(Repeater) 등의 기능을 지원합니다.
이번 글에서는 보안적으로 다양한 실습해볼 수 있는 버프스위트 설치와 간단한 세팅에 대해서 알아볼까합니다 :)
더해서 프록시 기능과 이를 이용한 인터셉트 실습을 덧붙여보겠습니다
여기서 프록시(Proxy)란?
Proxy는 대리인이라는 뜻을 가지고 있으며,
Client ↔ Server가 통신할 때, 클라이언트와 서버 중간에서 대리인으로서 대신 역할하는 서버를 말합니다. 프록시는 클라이언트와 서버 간의 통신을 제어하고, 보안상의 문제를 방지하는데 다양한 용도로 사용됩니다.
프록시 서버는, 위치에 따라 2가지로 나눌 수 있습니다.
(1) Foward 프록시
프록시 서버가 클라이언트의 대리인이 되어 목적 서버에 통신 해주는 구성입니다.
(2) Reverse 프록시
서버의 대리인으로 클라이언트에게 전할 응답을 중계하여 대신 전달한다.
그렇다면 버프스위트를 설치하고, 프록시 서버로 오가는 클라이언트의 요청(request)과 서버의 응답(response)을 Intercept해봅시다!
BurpSuite, Download
https://portswigger.net/burp/communitydownload
Download Burp Suite Community Edition - PortSwigger
Burp Suite Community Edition is PortSwigger's essential manual toolkit for learning about web security testing. Free download.
portswigger.net
이메일을 입력해준 뒤, Go straight to downloads
Professional은 유료 버전, Community는 무료 버전입니다.
컴퓨터에 맞는 os bit 선택하신 뒤 다운로드 하시면 됩니다.
실행시켜준 뒤, 설정을 살펴볼까요?
마법사가 설치 과정을 단계별로 안내합니다 → next
설치할 위치를 정해주세요 → Next
설정할 시작 메뉴 폴더를 선택, 프로그램 바로 가기 생성 → Next
이렇게하면 간단하게 설치 완료 ~ [Finish]
실습해봅시다
실습하기 이전에, 프록시를 수동으로 설정해줄건데요 :)
프록시를 수동 설정으로 변경할 경우, 기존 인터넷 경로를 대신해 새로운 프록시 서버를 통해 인터넷에 접속하게 돼요.
인터넷 설정을 변경시키는거죠. 프록시 서버를 통해 모든 네트워크 트래픽을 라우팅하도록 !
폭넓고, 자유로운 개인 학습을 위해 프록시를 설정해줄게요 ~
설정의 여부는 선택입니다 !
프록시 설정을 열고, 수동 프록시 설정을 편집해줍니다.
이제 버프스위트를 실행해주고, 설정한 포트를 추가해줄거예요
실행하면 뜨는 첫번째 창이구요:) 조건 수락창입니다 사용하시려면 → I Accept
프로젝트 생성 및 열기 부분입니다
Temporary project in memory - 메모리에 임시 프로젝트 만들기
New project on disk - 디스크에 새 프로젝트 만들기 (참고로 이건 프로페셜만 지원o)
Open existing project - 기존 프로젝트 열기
해당 프로젝트에 로드할 구성을 선택합니다
Next를 해주시면 burp suite 초기창을 만나볼 수 있습니다!
Dashboard, target 등 다양한 기능을 지원하는데요
간단하게 proxy 카테고리를 살펴봅시다
우선 들어가기 전에, 편안한 개인실습을 위해 프록시를 수동으로 설정해두었잖아요?
그걸 설정해줄건데요
8080 포트로 설정되어있는 인터페이스를 삭제하고,
수동으로 설정해준 포트 번호 3000번을 생성해
프록시 서버를 연결해줍니다.
데이터 경로 공간을 설정정한다는 개념이죠:)
중간에 위치하여 트래픽을 인터셉트하도록 프록시를 설정하는데 이는
원하는 주소와 포트에 바인딩하여 설정한 주소로 들어오는 모든 트래픽이 버프스위트를 통하게 할 수 있습니다.
그럼 한번 클라이언트와 서버가 나누는 내용을 중간에서 살펴보러 가실까요?
proxy > intercept > Open browser , 브라우저를 열여줍니다.
* Request 살펴보기
브라우저가 서버에게 요청하는 부분을 한번 잡아볼까요?
간단하게 제작한 로그인 폼을 가져와봤구요 :)
인터셉트 기능을 통해 어떤 데이터가 서버로 넘어가는지 살펴보겠습니다
데이터를 입력하기 전에, 인터셉트 off → 인터셉트 on으로 변경해주세요
입력했다면 Login을 클릭해, 데이터를 넘겨 요청해보겠습니다.
서버에게 보낸 클라이언트의 요청을
중간 프록시 서버를 통해 보게된 내용입니다.
요청한 페이지, 경로, 브라우저 정보, Body 부분엔 입력한 아이디와 비밀번호도 보이네요
프록시 서버가 중간에서 잡고있는거다보니까 로그인을 누른 페이지는
계속 버퍼링이 돌며 다음 페이지로 넘어가지 않을거예요 :)
이때, 인터셉트 off를 빼앗았던 연결을 다시 돌려주면 정상작동한답니다
하지만 우리는 더 나아가서, 요청에 대한 서버의 응답도 같이 살펴볼게요
활성화되어있는 기능은 아니다 보니 proxy setting에서 response부분을 활성화시켜주셔야해요!
그 다음, 요청으로 버퍼링이 걸린 상태에서 Forward를 눌러주시면
아까 이미지를 통해 보셨던 것처럼
프록시 서버에서의 주고받음이다보니
실질적으로 우리 눈에 보이는 페이지는 변하지 않을거예요
다만, 우리가 보낸 프록시 클라이언트 요청은 서버에 전달되어
다시 프록시 서버에 응답의 형태로 보여질거랍니다
보시면 응답은 요청과 다르게 마크업 언어를 보여주네요 :)
응답코드, MIME type 등
.asp(서버 사이드 스크립트 언어) 를 해석하고 결과를 돌려준 모습을 볼 수 있습니다
인터셉트를 풀어주면(off) 버퍼링을 끝내고 다음 페이지를 보실 수 있을겁니다!
여기까지 간단하게 버프스위트 설치 & 세팅 & 실습 해보았습니다😊
긴 글 읽어주셔서 정말 감사합니다
항상 공부하고 배우는 입장이다보니
미흡하거나 부족한 부분 지식을 보태주실 부분들이 존재한다면
편안하게 나누어주셨으면 좋겠습니다
'Settings' 카테고리의 다른 글
HxD(Hex Editor) 설치 (0) | 2024.07.14 |
---|---|
VMware 17 pro, Free Download (0) | 2024.05.19 |
[Node.js] _settings! (0) | 2024.04.07 |
Kali Linux, Download ! (0) | 2024.04.07 |
Git & Github setting ! (2) | 2024.03.24 |