소개
대화형 랩에 오신 것을 환영합니다! 여기서는 웹 애플리케이션에서 흔하지만 중요한 취약점인 Cross-Site Scripting (XSS) 에 초점을 맞춰 웹 보안의 세계를 탐구할 것입니다. 웹사이트가 XSS 로부터 제대로 보호되지 않으면 공격자들의 놀이터가 될 수 있습니다.
하지만 걱정하지 마세요! 이 문제를 이해하고 해결하는 데 도움을 드리겠습니다. 먼저 XSS 가 무엇인지, 왜 중요한지, 어떻게 악용될 수 있는지 자세히 살펴보겠습니다. 그런 다음 잠재적인 XSS 취약점을 식별하는 데 도움이 되는 'hackbar'라는 도구를 사용하는 방법을 안내해 드리겠습니다.
또한 다양한 '우회 기술 (bypassing techniques)'도 탐구할 것입니다. 이는 공격자가 보안 조치를 우회하기 위해 사용할 수 있는 영리한 방법이며, 이를 이해함으로써 웹사이트를 더 잘 보호할 수 있습니다.
배움은 실천을 통해 이루어진다는 점을 기억하세요. 따라서 전체 과정에서 실습을 진행할 것입니다. 이 랩이 끝나면 XSS 취약점과 이를 방지하는 방법에 대한 확실한 이해를 갖게 될 것입니다. 시작해 봅시다!
Hackbar 설치 및 사용법
이 모듈에서는 XSS (Cross-Site Scripting) 취약점을 탐지하는 데 사용할 주요 도구인 'hackbar'에 익숙해질 것입니다.
먼저 hackbar 브라우저 확장 프로그램을 설치해 보겠습니다.
/home/labex/project디렉토리로 이동합니다.hackbar-2.3.1-fx.xpi파일을 찾아 더블 클릭한 다음, 팝업 창에서 "Add"를 클릭하여 확장 프로그램을 설치합니다. 아래 그림과 같이 표시됩니다.
설치가 완료되면 브라우저에서 개발자 도구를 실행하여 hackbar 에 액세스할 수 있습니다. 일반적으로 F12 키를 누르거나 설정 > 개발자 > 디버거로 이동하여 수행합니다.
hackbar 의 주요 기능을 간략하게 살펴보겠습니다.
- Load URL: 이 기능은 현재 페이지의 URL 을 hackbar 로 가져옵니다.
- Split URL: URL 매개변수를 분해하여 읽고 이해하기 쉽게 만듭니다.
- Execute: 이 기능은 수정된 URL 을 서버로 다시 보냅니다.
- Post data: POST 데이터를 서버로 보낼 수 있습니다.
또한 hackbar 에는 SQL injection, XSS 및 XXE 를 포함한 다양한 취약점에 대한 내장 페이로드 (payload) 가 함께 제공됩니다.
XSS 취약점 실험 1
이 부분에서는 기본적인 XSS (Cross-Site Scripting) 취약점을 자세히 살펴보고 hackbar 를 사용하여 이를 악용하는 방법을 배우겠습니다.
먼저, 아래 명령을 실행하여 랩 환경을 준비합니다.
docker run -d -p 82:80 --name pentesterlab-WebforPentest-1 -it jewel591/vulnbox:pentesterlab-WebforPentest-1 /bin/sh -c 'service apache2 start && tail -f /var/log/apache2/error.log'
다음으로 웹 브라우저를 실행하고 다음 URL 로 이동합니다.
http://127.0.0.1:82/xss/example1.php?name=hacker
XSS 취약점을 악용하는 단계는 다음과 같습니다.
- F12 를 눌러 hackbar 를 실행하고 "Load URL"을 클릭하여 현재 페이지 URL 을 가져옵니다.
name매개변수 값을123으로 수정하고 "Execute"를 클릭합니다. 아래 이미지와 같이 페이지가 이 새 값으로 업데이트되는 것을 확인할 수 있습니다.
- hackbar 의 내장 XSS 페이로드 (
XSS > XSS Alert) 를 사용하고 "Execute"를 클릭합니다. 아래 이미지와 같이 XSS 경고가 트리거되어야 합니다.
XSS 취약점 실험 2
이 부분에서는 XSS (Cross-Site Scripting) 필터를 우회하는 기본적인 기술을 살펴보겠습니다.
먼저 웹 브라우저에서 아래 URL 로 이동합니다.
http://127.0.0.1:82/xss/example2.php?name=hacker
XSS 필터를 우회하는 단계는 다음과 같습니다.
- hackbar 를 사용하여 간단한 XSS 페이로드 (payload) 를 주입해 봅니다. 예를 들어,
<script>alert(1)</script>를 사용합니다. 아래 이미지와 같이 예상한 결과가 나오지 않는 것을 확인할 수 있습니다.
- 페이지의 소스 코드를 검사합니다. 아래 이미지와 같이
<script>및</script>태그가 필터링되고 있는 것을 확인할 수 있습니다.
- 이 필터를 우회하기 위해
script태그에 다른 대소문자를 사용해 봅니다. 예를 들어,<ScripT>alert(1)</ScripT>를 사용합니다. 아래 이미지와 같이 필터를 우회하고 XSS 페이로드를 성공적으로 주입할 수 있습니다.
XSS 취약점 실험 3
이 단계에서는 다양한 HTML 태그와 속성을 사용하여 XSS (Cross-Site Scripting) 공격을 실행하는 방법을 배우겠습니다.
먼저 웹 브라우저에서 아래 URL 로 이동합니다.
http://127.0.0.1:82/xss/example4.php?name=hacker
XSS 필터를 우회하고 공격을 실행하려면 다음 단계를 따르세요.
- hackbar 를 사용하여 간단한 XSS 페이로드를 주입해 봅니다. 그러나 아래 이미지와 같이 서버가
script키워드를 식별하고 차단하는 것을 확인할 수 있습니다.
- 이 필터를 우회하기 위해
<a>HTML 태그를onclick속성과 함께 사용합니다.
<a onclick="alert('xss')">xss</a>
이 페이로드는 웹 페이지에 클릭 가능한 링크를 생성합니다. 클릭하면 alert('xss') JavaScript 함수가 트리거됩니다.
- 페이지에서 "xss" 링크를 클릭합니다. 아래 이미지와 같이 XSS 경고가 활성화되는 것을 확인할 수 있습니다.

XSS 공격을 시작하기 위해 함께 사용할 수 있는 다양한 HTML 태그와 속성이 있습니다. 더 정교한 XSS 페이로드에 대해서는 다음 저장소를 참조하십시오.
https://github.com/iSecurity-Club/Pentest-Methodologies/blob/master/web-exploit-exp/xss/payloads.txt
요약
이 랩에서는 XSS 취약점을 발견하고 악용하는 기본적인 기술을 배웠습니다. hackbar 도구를 사용하여 XSS 취약점을 테스트하는 방법과 대소문자 조작, 다양한 HTML 태그 및 속성 사용과 같은 다양한 우회 기술을 탐구했습니다. 실습을 통해 웹 애플리케이션에서 XSS 취약점을 식별하고 악용하는 실질적인 경험을 얻었습니다. 이 랩은 더 발전된 XSS 기술과 웹 애플리케이션 보안 테스트를 더 탐구하기 위한 튼튼한 기반을 제공했습니다.



