소개
이 랩에서는 LabEx VM 환경 내의 Kali Linux 컨테이너에서 Burp Suite 를 사용하여 웹 애플리케이션 보안 테스트를 수행하는 방법을 배우게 됩니다. Burp Proxy 를 설정하여 웹 트래픽을 가로채고, HTTP/HTTPS 요청을 분석하며, Cross-Site Scripting (XSS) 취약점을 테스트하고, 상세 보고서를 생성하는 데 중점을 둡니다. 이러한 실습 단계를 통해 웹 애플리케이션의 보안 문제를 식별하고 해결하는 데 필요한 기본적인 기술을 습득할 수 있습니다.
터미널을 열면 자동으로 설정되는 Kali Linux 컨테이너 쉘에서 직접 작업하게 됩니다. 구조화된 단계를 통해 도구를 구성하고, 트래픽을 캡처하며, 취약점을 테스트하고, 발견 사항을 문서화할 것입니다. 이 랩은 초보자를 위해 설계되었으며, 각 프로세스를 통제된 환경에서 안내하여 실질적인 사이버 보안 기술을 구축할 수 있도록 돕습니다.
Burp Suite 설치 및 실행
이 첫 번째 단계에서는 LabEx VM 환경 내의 Kali Linux 컨테이너에서 웹 애플리케이션 보안 테스트를 위한 강력한 도구인 Burp Suite 를 설치하고 실행합니다. Burp Suite 를 사용하면 웹 트래픽을 가로채고 분석할 수 있으며, 이는 웹 애플리케이션의 취약점을 식별하는 데 필수적입니다.
LabEx VM 에서 터미널을 열면 자동으로 Kali Linux 컨테이너의 쉘에 연결됩니다. 컨테이너를 수동으로 시작하거나 쉘에 진입할 필요가 없습니다. 환경이 이미 구성되어 있습니다. 필요한 도구가 설치되어 사용 준비가 되었는지 확인하는 것부터 시작해 보겠습니다.
사용 가능한 소프트웨어에 대한 최신 정보를 확보하기 위해 패키지 목록을 업데이트하는 것으로 시작합니다. 터미널에서 다음 명령을 입력하고 Enter 키를 누릅니다.
apt update
이 명령은 패키지 저장소 데이터를 새로 고칩니다. 완료하는 데 몇 초가 걸릴 수 있으며, 업데이트 프로세스의 진행 상황을 나타내는 출력을 볼 수 있습니다.
다음으로, Kali Linux 저장소에서 사용할 수 있는 Burp Suite Community Edition 을 설치합니다. 다음 명령을 입력하고 Enter 키를 누릅니다.
apt install -y burpsuite
이 명령은 -y 플래그로 인해 확인 메시지 없이 Burp Suite 를 설치합니다. 설치하는 데 1~2 분 정도 걸릴 수 있으며, 다운로드 및 설치 진행 상황을 보여주는 출력을 볼 수 있습니다.
예상 출력 (부분, 실제 출력은 다를 수 있음):
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
...
Setting up burpsuite (2023.10.3.7-0kali1) ...
설치가 완료되면 다음 명령을 입력하고 Enter 키를 눌러 Burp Suite 를 실행합니다.
burpsuite
그러면 Burp Suite 그래픽 사용자 인터페이스 (GUI) 가 열립니다. 로드하는 데 몇 초가 걸릴 수 있습니다. 메시지가 표시되면 기본 "Temporary Project" 옵션을 선택하고 "Next" 또는 "Start Burp"를 클릭하여 진행합니다. Burp Suite 메인 창이 나타납니다.
이제 Burp Suite 가 실행 중이며, 다음 단계에서는 웹 트래픽을 가로채도록 구성합니다. 진행하면서 Burp Suite 창을 열어 두십시오. 이 단계는 웹 보안 테스트 작업을 위해 기본 도구를 준비하는 데 도움이 됩니다.
Burp Proxy 설정 구성
이제 Burp Suite 가 설치되어 실행되었으므로, 다음 단계는 웹 트래픽을 가로채도록 Burp Proxy 설정을 구성하는 것입니다. 프록시는 브라우저와 인터넷 사이의 중개자 역할을 하여 HTTP/HTTPS 요청 및 응답을 캡처하고 분석할 수 있도록 합니다. 이는 웹 애플리케이션 보안 테스트에 매우 중요한 설정입니다.
초보자의 경우, 프록시의 역할을 이해하는 것이 중요합니다. 프록시는 브라우저와 대상 웹사이트 사이에 위치하여 교환되는 모든 데이터를 가로챕니다. 이를 통해 브라우저에서 전송된 원시 요청과 서버의 응답을 검사하여 잠재적인 보안 문제를 식별할 수 있습니다.
이미 Kali Linux 컨테이너 쉘에 있으므로 (터미널을 열면 자동으로 진입), Burp Suite GUI 에서 직접 프록시 설정을 구성해 보겠습니다. 이전 단계에서 Burp Suite 가 계속 실행 중인지 확인하십시오. 그렇지 않은 경우, 터미널에서 burpsuite를 입력하고 Enter 키를 눌러 다시 실행합니다.
Burp Suite 창에서 "Proxy" 탭으로 이동합니다. 이 탭에는 Burp Suite 가 트래픽을 가로채는 방식을 구성하기 위한 설정이 포함되어 있습니다. "Proxy Settings" 섹션에서 프록시가 127.0.0.1:8080에서 수신하도록 설정되어 있는지 확인합니다. 이는 기본 구성으로, Burp Proxy 가 포트 8080에서 로컬 머신의 트래픽을 캡처함을 의미합니다.
설정이 127.0.0.1:8080으로 설정되어 있지 않은 경우, 이러한 값을 수동으로 입력하여 조정하고 옵션을 사용할 수 있는 경우 "Apply"를 클릭합니다. 이 단계에서는 다른 설정을 수정하지 마십시오.
프록시가 활성 상태인지 확인하려면 터미널에서 다음 명령을 실행하고 Enter 키를 누릅니다.
netstat -tuln | grep 8080
예상 출력 (실제 출력은 다를 수 있음):
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN
이 출력은 Burp Proxy 가 포트 8080에서 수신 중임을 보여줍니다. 이 출력이 표시되지 않으면 Burp Suite 가 실행 중이고 프록시 설정이 올바르게 구성되었는지 확인하십시오.
이제 웹 트래픽을 가로채도록 Burp Proxy 를 성공적으로 설정했습니다. 다음 단계로 이동하여 이 프록시를 통해 트래픽을 라우팅하도록 브라우저를 구성할 때 이러한 설정을 유지하면서 Burp Suite 를 열어 두십시오. 이 구성은 후속 작업에서 웹 상호 작용을 캡처하고 분석하는 데 필수적입니다.
Burp Proxy 사용을 위한 Firefox 설정
Burp Proxy 가 구성되었으므로, 다음 단계는 웹 브라우저가 프록시를 통해 트래픽을 라우팅하도록 설정하는 것입니다. 이렇게 하면 Burp Suite 가 브라우저에서 생성된 모든 HTTP/HTTPS 요청 및 응답을 캡처하고 표시할 수 있습니다. 이 랩에서는 Kali Linux 컨테이너 내에 설치되고 구성될 Firefox 를 사용합니다.
이미 Kali Linux 컨테이너 쉘에 있으므로 (터미널을 열면 자동으로 진입), Firefox 가 아직 설치되지 않은 경우 설치하는 것부터 시작해 보겠습니다. 터미널에서 다음 명령을 입력하고 Enter 키를 눌러 Firefox 를 설치합니다.
apt install -y firefox-esr
이 명령은 Kali Linux 에서 사용하기에 적합한 Firefox 의 Extended Support Release (ESR) 버전을 설치합니다. 설치하는 데 잠시 시간이 걸릴 수 있으며, 진행 상황을 나타내는 출력을 볼 수 있습니다.
예상 출력 (부분, 실제 출력은 다를 수 있음):
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
...
Setting up firefox-esr (102.10.0esr-1~deb11u1) ...
Firefox 가 설치되면 터미널에서 다음 명령을 입력하고 Enter 키를 눌러 실행합니다.
firefox &
& 기호는 Firefox 를 백그라운드에서 실행하여 터미널을 계속 사용할 수 있도록 합니다. LabEx VM 의 그래픽 인터페이스에서 Firefox 창이 열립니다.
이제 Burp Proxy 를 사용하도록 Firefox 를 구성합니다. Firefox 브라우저 창 내에서 다음의 자세한 지침을 따르십시오.
- Firefox 의 오른쪽 상단 모서리에 있는 메뉴 아이콘 (세 개의 가로선) 을 클릭합니다.
- 드롭다운 메뉴에서
Settings를 선택합니다. General탭 아래의Network Settings섹션으로 스크롤하여Settings...를 클릭합니다.Connection Settings창에서Manual proxy configuration을 선택합니다.HTTP Proxy필드를127.0.0.1로 설정하고Port를8080으로 설정합니다.Also use this proxy for HTTPS라는 상자를 선택합니다.- 다른 필드는 변경하지 않고
OK를 클릭하여 설정을 저장합니다.
이 설정을 통해 Firefox 의 모든 웹 트래픽이 127.0.0.1:8080에서 Burp Proxy 를 통과하도록 합니다. 모든 것이 제대로 작동하는지 확인하려면 Firefox 에서 주소 표시줄에 URL 을 입력하고 Enter 키를 눌러 http://example.com과 같은 간단한 웹사이트로 이동합니다.
Burp Suite 창으로 다시 전환하여 Proxy 탭으로 이동하고 HTTP history 하위 탭을 선택합니다. example.com에 대한 요청이 여기에 나열되어야 합니다. 요청이 표시되지 않으면 Firefox 에서 페이지를 새로 고치고 프록시 설정이 올바른지 확인합니다.
Burp Suite 의 예상 출력 (시각적, 터미널 아님):
HTTP history 탭에서 example.com에 대한 요청이 표시되며, 호스트, 메서드 (예: GET) 및 URL 경로와 같은 세부 정보가 표시됩니다.
이 단계는 트래픽을 Burp Proxy 를 통해 라우팅하도록 브라우저 설정을 완료합니다. 다음 단계로 이동하여 이 구성을 사용하여 보안 테스트를 위해 웹 트래픽을 캡처하고 분석할 때 Firefox 와 Burp Suite 를 모두 열어 두십시오.
웹 트래픽 캡처 및 분석
Firefox 가 Burp Proxy 를 사용하도록 구성되었으므로, 이제 웹 트래픽을 캡처하고 분석할 준비가 되었습니다. 이 단계는 웹 애플리케이션 보안 테스트에서 매우 중요합니다. 브라우저와 웹사이트 간에 교환되는 원시 데이터를 검사하여 잠재적인 취약점이나 잘못된 구성을 식별하는 데 도움이 되기 때문입니다.
초보자의 경우, 웹 트래픽 캡처는 브라우저가 웹사이트에 보내는 요청 (예: 페이지 로드) 과 웹사이트가 다시 보내는 응답 (예: 페이지 콘텐츠) 을 기록하는 것을 의미합니다. Burp Suite 는 중간자 역할을 하여 이 데이터를 자세히 보여주므로 헤더, 매개변수 및 콘텐츠를 검사하여 보안 문제를 확인할 수 있습니다.
Kali Linux 컨테이너 쉘에서 작업하고 있으므로 (터미널을 열면 자동으로 진입), 이전 단계에서 Burp Suite 와 Firefox 가 모두 실행 중인지 확인하십시오. Burp Suite 가 실행 중이지 않은 경우, burpsuite로 다시 실행합니다. Firefox 가 열려 있지 않은 경우, firefox &로 시작합니다.
Firefox 에서 주소 표시줄에 URL 을 입력하고 Enter 키를 눌러 http://example.com과 같은 테스트 웹사이트로 이동합니다. 이 작업은 Burp Proxy 를 통해 요청을 보내며, Burp Proxy 는 분석을 위해 요청을 캡처합니다.
Burp Suite 창으로 전환하여 Proxy 탭으로 이동한 다음 HTTP history 하위 탭을 선택합니다. Firefox 가 웹사이트에 보낸 요청 목록이 표시됩니다. 각 항목에는 호스트, 메서드 (예: GET) 및 URL 경로와 같은 세부 정보가 포함됩니다.
http://example.com과 관련된 요청을 클릭하여 선택합니다. 그러면 Request 및 Response의 두 개의 창이 표시됩니다. Request 창에는 헤더 및 매개변수를 포함하여 브라우저에서 전송된 데이터가 표시됩니다. Response 창에는 HTML 콘텐츠 또는 상태 코드와 같이 웹사이트에서 반환된 데이터가 표시됩니다.
Burp Suite 의 예상 출력 (시각적, 터미널 아님):
HTTP history 탭에서 다음과 같은 항목이 표시됩니다.
- Host: example.com
- Method: GET
- Path: /
항목을 클릭하면 User-Agent와 같은 자세한 요청 헤더와 페이지의 HTML 코드와 같은 응답 콘텐츠가 표시됩니다.
잠시 시간을 내어 몇 가지 요청을 탐색하여 웹 트래픽의 구조를 이해하십시오. 트래픽을 캡처하고 분석하는 이 기술은 다음 단계에서 구축할 보안 문제를 식별하는 데 기본이 됩니다. 특정 취약점을 테스트하기 위해 진행하면서 현재 설정을 유지하면서 Burp Suite 와 Firefox 를 열어 두십시오.
XSS 취약점 테스트
웹 트래픽 캡처가 설정되었으므로, 이제 Burp Suite 를 사용하여 Cross-Site Scripting (XSS) 취약점을 테스트할 수 있습니다. XSS 는 공격자가 악성 스크립트를 웹 페이지에 삽입한 다음 사용자의 브라우저에서 실행되는 일반적인 웹 보안 문제입니다. 이 단계에서는 테스트 입력을 제출하고 응답을 분석하여 잠재적인 XSS 결함을 식별하는 데 중점을 둡니다.
초보자의 경우, XSS 는 웹 애플리케이션이 사용자 입력을 sanitization (정화) 하지 못하여 유해한 코드 (예: JavaScript) 를 삽입하고 실행할 수 있을 때 발생합니다. XSS 에는 여러 유형이 있지만, 여기서는 악성 입력이 저장되지 않고 서버의 응답에 즉시 반영되는 reflected XSS 를 테스트합니다.
Kali Linux 컨테이너 쉘에 있으므로 (터미널을 열면 자동으로 진입), 이전 단계에서 Burp Suite 와 Firefox 가 여전히 실행 중인지 확인하십시오. 그렇지 않은 경우, 각각 burpsuite 및 firefox &로 다시 실행합니다.
Firefox 에서 검색 상자 또는 양식과 같이 사용자 입력을 받는 테스트 웹사이트로 이동합니다. 이 랩의 경우, LabEx VM 에 특정 테스트 사이트가 제공되지 않으면, 접근 가능한 http://testphp.vulnweb.com과 같은 공개 테스트 사이트를 사용할 수 있습니다. Firefox 주소 표시줄에 URL 을 입력하고 Enter 키를 누릅니다.
페이지가 로드되면 검색창과 같은 입력 필드를 찾습니다. test<xss>와 같은 간단한 테스트 문자열을 필드에 입력하고 양식을 제출합니다. 이 입력은 무해하지만 애플리케이션이 입력을 sanitization (정화) 하지 않고 다시 반영하는지 확인하는 데 도움이 됩니다.
Burp Suite 로 전환하여 Proxy 탭으로 이동하고 HTTP history 하위 탭을 선택합니다. 양식 제출에 해당하는 요청을 찾습니다. 세부 정보를 보려면 해당 요청을 클릭합니다. Request 창에서 입력 test<xss>가 전송된 매개변수를 찾습니다 (예: search 또는 query와 같은 필드 아래에 있을 수 있음).
그런 다음, Response 창에서 입력 문자열 test<xss>를 검색합니다. 응답에 정확한 문자열이 이스케이프되지 않은 상태로 (예: test<xss>로 변환되지 않음) 반영되면, 애플리케이션이 reflected XSS 에 취약할 수 있습니다.
Burp Suite 의 예상 출력 (시각적, 터미널 아님):
Response 창에서 HTML 콘텐츠에 test<xss>가 그대로 표시되면 잠재적인 취약점을 나타냅니다. test<xss>로 표시되면 입력이 sanitization (정화) 되어 XSS 위험이 줄어듭니다.
잠재적인 취약점을 식별한 경우, HTTP history 탭에서 요청을 마우스 오른쪽 버튼으로 클릭하고 Add to site map을 선택하여 다음 단계에서 보고할 수 있도록 구성합니다. 테스트 데이터를 제출하고 응답을 분석하여 XSS 를 테스트하는 이 프로세스는 취약점 평가 기술을 구축합니다. 다음 단계로 이동하면서 Burp Suite 와 Firefox 를 열어 두십시오.
Burp Suite 리포트 생성
이 마지막 단계에서는 웹 트래픽 분석 및 XSS 취약점 테스트에서 얻은 결과를 문서화하기 위해 Burp Suite 에서 보고서를 생성합니다. 보고서 생성은 식별한 문제를 컴파일하고 결과를 검토하거나 공유할 수 있는 구조화된 방법을 제공하므로 보안 테스트의 필수적인 부분입니다.
초보자의 경우, Burp Suite 보고서는 테스트 세션에서 발견된 취약점 또는 관찰 내용을 요약합니다. 문제 유형, 영향을 받는 URL 및 관련 요청/응답 데이터와 같은 세부 정보가 포함됩니다. 이 문서는 보안 결함을 추적하고 해결책을 계획하는 데 매우 중요합니다.
Kali Linux 컨테이너 쉘에 있으므로 (터미널을 열면 자동으로 진입), Burp Suite 가 여전히 실행 중인지 확인하십시오. 그렇지 않은 경우, burpsuite로 다시 실행합니다.
Burp Suite 인터페이스에서 Target 탭 또는 Issues 탭 (버전에 따라 다름) 으로 이동합니다. 이 섹션에는 Burp Suite 가 자동으로 감지한 취약점 또는 수동으로 추가한 문제가 나열됩니다. 이전 단계에서 사이트 맵에 잠재적인 XSS 문제를 추가하여 플래그를 지정한 경우 여기에 나타날 수 있습니다.
문제가 나열되지 않은 경우, 연습을 위해 수동으로 하나를 추가할 수 있습니다. Proxy 탭으로 이동하여 XSS 를 테스트한 HTTP history에서 요청을 선택합니다 (예: 입력 test<xss> 사용). 마우스 오른쪽 버튼으로 클릭하고 Report issue 또는 Send to Issues를 선택합니다. 사용 가능한 경우 Cross-site scripting (reflected)와 같은 유형을 선택하고 Potential XSS in input field와 같은 간략한 설명을 추가한 다음 OK를 클릭합니다.
보고서를 생성하려면 Issues 탭에서 Report 버튼을 클릭하거나 메뉴에서 Generate Report를 찾습니다. 보고서 마법사에서 다음 단계를 따릅니다.
- 읽기 쉬운 형식으로 형식을
HTML로 선택합니다. All issues또는 추가한 특정 항목을 포함하도록 선택합니다.- 저장 위치를 묻는 메시지가 표시되면 Kali Linux 컨테이너 내의 경로를
/root/xss_report.html로 설정합니다. Next또는Finish를 클릭하여 보고서를 저장합니다.
보고서를 생성한 후, 터미널에서 다음 명령을 입력하고 Enter 키를 눌러 저장되었는지 확인합니다.
ls -l /root/xss_report.html
예상 출력 (실제 출력은 다를 수 있음):
-rw-r--r-- 1 root root [size] [date] /root/xss_report.html
이 출력은 파일 xss_report.html이 /root 디렉토리에 있음을 확인합니다. 파일이 없는 경우, 보고서 생성 프로세스를 반복하고 올바른 경로가 지정되었는지 확인합니다.
이제 테스트 결과를 문서화하는 Burp Suite 보고서를 성공적으로 만들었습니다. 이것으로 랩이 완료되어 Kali Linux 환경에서 필수 도구를 사용하여 웹 보안 테스트에 대한 실질적인 경험을 제공합니다.
요약
이 랩에서는 LabEx VM 환경의 Kali Linux 컨테이너 내에서 Burp Suite 를 사용하여 웹 애플리케이션 보안 테스트의 필수 사항을 배웠습니다. Burp Suite 를 설치하고 실행하는 것으로 시작하여 웹 트래픽을 가로채도록 Burp Proxy 를 구성했습니다. Firefox 를 설정하여 프록시를 통해 트래픽을 라우팅함으로써 HTTP/HTTPS 요청 및 응답을 캡처하고 분석했습니다. 또한 테스트 입력을 제출하고 서버 응답을 검사하여 XSS 취약점을 테스트했습니다. 마지막으로, 발견 사항을 문서화하기 위해 자세한 보고서를 생성했습니다. 이러한 단계는 업계 표준 도구를 사용하여 웹 보안 문제를 식별하고 해결하는 데 필요한 실질적인 기술을 제공했습니다.


