Burp Proxy 에서 HTTP 트래픽 가로채기 및 전달하기

Beginner
지금 연습하기

소개

Burp Suite 는 웹 애플리케이션의 보안 테스트를 수행하기 위한 강력한 플랫폼입니다. 가장 기본적인 도구 중 하나인 Burp Proxy 는 브라우저와 웹 서버 간의 트래픽을 가로채고, 검사하고, 수정할 수 있도록 합니다.

이 랩에서는 Burp Proxy 사용의 기본 워크플로우를 배우게 됩니다. 가로채기 모드를 활성화하고, 웹 브라우저에서 요청을 보내고, Burp Suite 에서 캡처된 HTTP 요청을 확인한 다음, 대상 서버로 전달할 것입니다. 이 기술은 Burp Suite 로 수행되는 거의 모든 웹 애플리케이션 테스트 작업의 기초입니다. 랩 환경에는 Burp Suite 와 사전 구성된 브라우저가 준비되어 있습니다.

프록시 > 가로채기 탭에서 가로채기 모드 활성화하기

이 단계에서는 Burp Suite 를 실행하고 웹 트래픽 캡처의 첫 번째 단계인 가로채기 기능을 활성화합니다.

먼저 Burp Suite 애플리케이션을 실행합니다. 바탕 화면에서 아이콘을 찾을 수 있습니다.

  1. 바탕 화면에서 Burp Suite Community Edition 아이콘을 더블 클릭합니다.
  2. "Project"라는 제목의 대화 상자가 나타날 수 있습니다. Temporary project를 선택하고 Next를 클릭합니다.
  3. "Burp configuration"이라는 또 다른 대화 상자가 나타날 수 있습니다. Use Burp defaults를 선택하고 Start Burp를 클릭합니다.

Burp Suite 가 로드되면 프록시 도구로 이동하여 가로채기를 활성화해야 합니다.

  1. 창 상단의 Proxy 탭을 클릭합니다.
  2. Proxy 탭 내에서 Intercept 하위 탭에 있는지 확인합니다.
  3. Intercept is off라고 표시된 버튼이 보일 것입니다. 이 버튼을 클릭하여 가로채기를 활성화합니다.

버튼의 텍스트가 Intercept is on으로 변경되고 눌린 상태로 표시됩니다. 이는 Burp Proxy 가 구성된 브라우저에서 발생하는 모든 요청을 캡처할 준비가 되었음을 나타냅니다.

브라우저에서 요청 보내기

이제 Burp Suite 에서 가로채기가 활성화되었으므로 웹 브라우저에서 요청을 보낼 것입니다. Burp Proxy 는 이 요청이 서버에 도달하기 전에 캡처합니다. 이 랩 환경의 브라우저는 이미 트래픽을 Burp Proxy 를 통해 보내도록 구성되어 있습니다.

  1. Firefox 웹 브라우저를 엽니다. 바탕 화면이나 애플리케이션 패널에서 아이콘을 찾을 수 있습니다.
  2. 브라우저 상단의 주소 표시줄에 다음 URL 을 입력하고 Enter를 누릅니다.
http://127.0.0.1:8000

Enter 를 누른 후 브라우저 탭에 로딩 아이콘이 표시되지만 페이지가 로드되지 않는 것을 알 수 있습니다. 이것은 예상된 동작입니다. 요청은 브라우저에서 전송되었지만 이제 Burp Proxy 에 "갇혀" 검사 및 전달되기를 기다리고 있습니다.

Burp Suite 에서 가로챈 요청 보기

이 단계에서는 Burp Suite 로 다시 전환하여 방금 브라우저에서 보낸 HTTP 요청을 볼 것입니다.

Burp Suite 창으로 돌아갑니다. 이전에 비어 있던 Proxy > Intercept 탭에 이제 브라우저가 보낸 전체 HTTP 요청이 포함되어 있습니다.

다음과 같이 보이는 원시 요청 텍스트를 볼 수 있습니다.

GET / HTTP/1.1
Host: 127.0.0.1:8000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1

잠시 시간을 내어 요청의 각 부분을 살펴보세요.

  • 요청 라인 (Request Line): GET / HTTP/1.1은 메서드, 경로 및 HTTP 버전을 보여줍니다.
  • 헤더 (Headers): HostUser-Agent와 같은 줄은 서버에 요청 및 요청을 보내는 클라이언트에 대한 추가 정보를 제공합니다.
  • 본문 (Body): 이와 같은 GET 요청의 경우 본문은 비어 있습니다.

이 보기는 웹 애플리케이션이 작동하는 방식을 이해하고 조작하는 데 매우 중요합니다.

'Forward' 버튼을 클릭하여 요청을 서버로 보내기

요청을 검사한 후 다음 단계는 의도된 목적지인 로컬 웹 서버로 계속 진행하도록 허용하는 것입니다.

Burp Suite 의 Proxy > Intercept 탭에서 요청 패널 상단에 Forward, Drop, Action 등의 버튼이 표시됩니다.

  1. Forward 버튼을 클릭합니다.

Forward를 클릭하면 요청이 Intercept 보기에서 사라집니다. Burp Suite 는 이제 127.0.0.1:8000의 서버로 요청을 보냈습니다.

이제 Firefox 브라우저로 다시 전환합니다. 페이지가 로드되고 "Welcome to the LabEx Test Page!"라는 텍스트가 표시되어야 합니다. 이는 요청이 서버로 성공적으로 전달되었고 서버의 응답이 브라우저로 다시 전송되어 렌더링되었음을 확인합니다.

인터셉트 모드를 비활성화하여 트래픽이 자유롭게 흐르도록 하기

마지막으로 인터셉트 모드를 비활성화하는 방법을 배우게 됩니다. 트래픽을 적극적으로 검사하지 않을 때는 인터셉트를 끄는 것이 중요합니다. 그렇지 않으면 모든 브라우징이 차단됩니다.

  1. Burp Suite 창으로 돌아가 Proxy > Intercept 탭에 있는지 확인합니다.
  2. Intercept is on 버튼을 클릭합니다.

버튼의 텍스트가 Intercept is off로 다시 변경되고 더 이상 눌린 상태로 표시되지 않습니다. 이제 Burp Proxy 는 검사를 위해 중단하지 않고 모든 트래픽을 통과시킵니다.

이를 확인하기 위해 Firefox 브라우저로 돌아가 페이지를 새로고침합니다 (F5 또는 새로고침 버튼을 누를 수 있습니다). 요청이 더 이상 Burp Suite 에 의해 보류되지 않기 때문에 페이지가 지연 없이 즉시 다시 로드됩니다.

요약

이 실습에서는 Burp Proxy 를 사용하여 HTTP 트래픽을 가로채고 전달하는 기본적인 워크플로우를 성공적으로 학습했습니다.

다음과 같은 주요 기술을 연습했습니다.

  • Proxy > Intercept 탭에서 인터셉트 모드를 활성화 및 비활성화하는 방법.
  • 브라우저에서 요청이 이루어지는 동안 실시간 HTTP 요청을 캡처하는 방법.
  • 가로챈 요청의 원시 내용을 보고 구조를 이해하는 방법.
  • 통신을 완료하기 위해 요청을 서버로 전달하는 방법.

이 기본적인 기술은 요청 및 응답을 수정하여 취약점을 테스트하는 것과 같은 더 고급 웹 보안 테스트 기술의 기초가 됩니다.