프록시 서버는 프록시를 수행해줍니다. 그럼 프록시가 무엇이냐. 나를 대신해서 간접적으로 통신해주는 작업을 말합니다.
즉 프록시 서버는 중계자의 역할을 해주는 것 입니다. 클라이언트가 서버와 통신을 할 때 프록시 서버가 그 사이에 껴서 통신을 중계합니다. 그래서 지나다니는 패킷을 확인하고 수정할 수 있습니다. 예를 들어 제가 웹브라우저를 통해 인터넷과 통신을 한다고 할 때, 이 웹 브라우저와 인터넷 사이에 껴서 웹 브라우저 대신에 인터넷과 통신을 해주는 것 입니다. 따라서 웹 브라우저를 넘어간 값을 프록시 서버에서 캐치하기 때문에, 웹 브라우저 클라이언트 자체에서 차단하고 있는 기능들을 프록시 서버에서 데이터를 수정하여 차단 기능을 우회하는 방법이 쓰일 수 있습니다. 웹 해킹적으로도 무궁무진하게 쓰일 수 있는 기능이죠. 이는 VPN 기능과 비슷합니다. 웹 클라이언트에서 차단하는 아이피를 우회하여 접속하는 것이죠. VPN 과 프록시 서버의 차이점이 있다면, VPN이 보안적으로나 기능적으로 조금 더 우세하다는 정도입니다.
버프슈트는 이러한 프록시 서버 기능을 사용하여 데이터를 확인/수정 할 수 있는 프록시 툴입니다. 프록시 서버 역할을 해주는 것이죠. 저는 맥OS를 사용하기 전에 Paros 라는 웹 프록시 툴을 사용했는데, 맥에는 해당 애플리케이션이 없는 것 같더라구요. 그래서 다양한 프록시 툴을 다운받아 봤는데 그 중에서도 Burp Suite가 가장 괜찮았습니다. 다운로드부터 실행법 까지 천천히 설명드리겠습니다.
아래 portswigger 공식 사이트에서 Burp Suite Community Edition을 다운로드 해줍니다. ( 무료 버전입니다 )
https://portswigger.net/burp/communitydownload
이후 설치까지 완료한 뒤에는 인증서를 다운로드하셔야 합니다. 해당 프로그램에서 Https 프로토콜의 패킷을 대상으로 프록시 기능을 사용하기 위해서는, 다소 생소한 '인증서' 를 다운받고 설정해줘야합니다. 보안 허용같은 설정이므로, 해주지 않으면 프록시 서버가 제대로 작동할 수 없게 됩니다. 다운로드한 BurpSuite를 실행시킨 상태로 https://localhost:8080/cert 에 접속해 줍니다. 다운로드된 인증서를 열면 키체인이 열리는데, PortSwigger CA를 더블클릭 하신 후 '항상 신뢰' 로 바꿔주시면 이제 https 패킷도 문제없이 잡을 수 있게 됩니다.
이제 PC에서 프록시 서버를 사용하겠다는 설정을 해줘야 하는데, 환경설정 -> 네트워크 -> 고급 -> 프록시에 들어가서 웹 프록시(HTTP) 와 웹 프록시 서버(HTTPS) 를 127.0.0.1:8080 으로 변경해줍니다. 이렇게 까지 하시면 세팅이 완료됩니다.이제 BurpSuite에서 모든 패킷을 잡을 수 있게 되고, Proxy 탭의 Intercept is on / off 기능을 통해 나의 데이터 request 프록시 서버 범위에서 잡아서 확인/수정 하거나 반대로 respone 패킷도 잡을 수 있게 됩니다.
ps. 프록시 기능을 이용하지 않을 때에는(BurpSuite를 사용하지 않을 때) 네트워크에서 아까 설정한 프록시 기능을 다시 없애주셔야 합니다. 그래야 정상적인 인터넷 통신이 가능합니다. 그리고 참고로 포트는 BurpSuite 프로그램의 Option 에서 변경해줄 수 있는데, 저는 8888로 포트를 바꿨습니다.