Digital Forensics JJamin
[Web] Burp Suite에 대해서 알아보자(Proxy 사용법) 본문
Burp Suite에는 다양한 에디션이 있는데 칼리 리눅스 배포판에 포함된 community Edition을 2022.06.11 기준으로 작성하였습니다.
먼저 프로그램을 실행하면 다음과 같이 새 프로젝트를 생성하는 대화상자가 나타난다. 커뮤니티 에디션은 프로젝트를 저장할 수 없기 때문에 Temporary project 즉 임시 프로젝트만 선택할 수 있다.
다음으로는 Burp Suite의 설정창인데 Burp Suite의 기본 설정을 그대로 사용할 수도 있고 설정 파일을 불러올 수도 있다. 기본 설정을 사용할 것이기 때문에 그대로 Start Burp버튼을 클릭하면 된다.
기다리면 임시 프로젝트가 생성되고 위와 같은 화면이 나타나게 된다. Issue Activity 창은 유료 버전에만 해당하므로 닫아도 상관없다.(주호한테 사달라고 하자)
Burp Suite 전체 창 상단에는 Burp, Project, Intruder 등의 드롭다운 메뉴들이 있다. 그리고 이 메뉴 줄 아래에는 Dashboard, Target, Proxy, Intruder, Repeater 등의 탭들이 있는데, 이 탭들은 Burp Suite의 각 도구에 대응한다.
단, User options 탭은 해킹 도구가 아니라 Burp Suite자체의 여러 옵션을 변경하기 위한 것이다. (예를 들어 이 탭의 Display 하위 탭에서 화면에 표시되는 텍스트의 글자 크기를 변경할 수 있다.)
이번에 사용할 것은 Proxy 탭이다. 이 탭을 클릭하면 프록시와 관련한 여러 하위 탭이 나타난다.
Proxy 탭의 하위 탭 중 Options을 선택하면 이러한 화면을 볼수 있다. 그러면 요청과 응답을 가로채는 데 관련한 여러 옵션이 나타난다. 그러면 Intercept Client Requests 섹션이 보일 것이다. 그 섹션에서 Intercept requests based on the following rules (아래 규칙에 따라 요청들을 가로채기) 체크상자와 첫 번째 규칙이 체크되어 있는지 확인하고, 그리고 그 아래의 Intercept Server Responses 섹션에서도 Intercept responses based on the following rules 체크상자와 그 아래에 첫 규칙을 체크한다. 이 옵션들은 Burp Suite가 요청들과 응답들을 가로채고 표시하는 방식을 결정한다.
이제 다시 Intercept 하위 탭으로 돌아간다. 상단 세 번째 버튼이 Intercept is on인지 확인해서, 만일 off로 되어 있으면 클릭해서 on으로 바꾸도록 한다. 이 버튼은 가로채기 활성화 여부를 나타내는데, Intercept is on이라고 되어 있어야 Burp Suite가 앞에서 설정한 옵션들에 따라 웹 브라우저의 요청과 대상 웹 서버의 응답을 가로챈다. 하지만 처음 Burp Suite를 사용하는 사용자는 파이어폭스로 웹 페이지를 열어도 가로채기가 진행되지는 않는데, 이는 아직 파이어폭스가 Burp Suite를 프록시로 사용하도록 설정하지 않았기 때문이다. 프록시 설정을 마치면 파이어폭스가 모든 요청을 Burp Suite로 보낸다. Burp Suite는 기본적으로 지역 호스트(localhost)의 TCP 포트 8080에서 그 요청을 받는다.
파이어폭스의 주소창에 about:preferences를 입력하면 Preferences 페이지가 나온다. 한글판이라면 설정을 잘 찾아보도록 하자.
Preferences 페이지를 스크롤하다 보면 프록시와 관련된 부분을 찾을 수 있다. 작성일 기준으로는 제일 밑으로 내리면 Network Settings를 누르면 밑에 그림과 같은 화면이 나온다.
Burp Suite가 파이어폭스의 웹 요청들을 가로채려면 이 Connection Settings 대화상자에서 프록시 관련 옵션들을 변경해 주어야 한다. Manual proxy configuration을 선택한 후 HTTP Proxy 텍스트 상자에 127.0.0.1을 입력하고 그 옆에 Port 대화상자에는 Burp Suite가 요청을 기다리는 TCP 포트 번호를 입력해야하는데, 앞에서 언급했듯이 기본 포트는 8080이다. 마지막으로, Also use this proxy for HTTPS 체크상자를 체크한 후 OK버튼을 클릭해서 대화상자를 닫으면 된다.
예시를 위해 webhacking.kr의 1번문제에 프록시로 접속을 해보았다. 그러면 브라우저에 웹 페이지가 나타나는 대신 브라우저의 작동이 멈춘 것처럼 보일 것이다. 이는 브라우저가 웹 서버로 보내는 요청을 Burp Suite가 가로챘기 때문이다. 위 의 탭에서 Forward 버튼을 클릭하면 요청이 그대로 웹 서버에 전달된다. 자신이 원하는 정확한 주소로 URL을 입력했다면, 대상 웹서버가 보낸 응답이 Intercept 탭의 텍스트 상자에 표시 될것이다. 요청처럼 응답도 그래도 부라우저에 전송하거나, 수정해서 전송하거나, 폐기할 수 있다. 이것이 가로채기 프록시의 기본적인 기능과 작동 방식이다. Burp Suite를 항상 이런식으로 사용하는 것은 귀찮지만 이런 가로채기 프록시의 기능을 알아 두면 다른 기능들을 익히기도 쉽다. Burp Suite가 웹 브라우저의 요청을 더 이상 가로채지 않게 하려면, Intercept is on 버튼을 한 번 클릭해서 가로채기 기능을 비활성화하면 된다. 그리고 다시 브라우저를 정상적으로 이용하고 싶다면 아까 브라우저에서 설정한 Connection Setting을 다시 No Proxy로 바꿔주면 된다.
Reference
핸즈온 해킹
핸즈온 해킹은 실제 해커하우스의 교육을 바탕으로 리눅스, 유닉스, 윈도우의 취약점을 찾고 공격하는 도구와 기법을 소개한다. 다양한 실습 과제로 대표적인 기업의 IT 기반 구조를 조사하고
hanbit.co.kr
'Security' 카테고리의 다른 글
[Web] 웹 취약점 보완 (2) | 2022.07.17 |
---|---|
[System] AAA는 무엇인가? (0) | 2022.07.10 |
[System] 시스템 보안의 중요한 여섯 가지 주제 (0) | 2022.07.06 |
[Web] Burp Suite에 대해서 알아보자(HTTPS에 대한 Burp Suite) (3) | 2022.06.11 |
[DB] Database의 종류 (1) | 2022.06.07 |