Hackbar 를 이용한 XSS 취약점 실험 수행

NmapBeginner
지금 연습하기

소개

대화형 랩에 오신 것을 환영합니다! 여기서는 웹 애플리케이션에서 흔하지만 중요한 취약점인 Cross-Site Scripting (XSS) 에 초점을 맞춰 웹 보안의 세계를 탐구할 것입니다. 웹사이트가 XSS 로부터 제대로 보호되지 않으면 공격자들의 놀이터가 될 수 있습니다.

하지만 걱정하지 마세요! 이 문제를 이해하고 해결하는 데 도움을 드리겠습니다. 먼저 XSS 가 무엇인지, 왜 중요한지, 어떻게 악용될 수 있는지 자세히 살펴보겠습니다. 그런 다음 잠재적인 XSS 취약점을 식별하는 데 도움이 되는 'hackbar'라는 도구를 사용하는 방법을 안내해 드리겠습니다.

또한 다양한 '우회 기술 (bypassing techniques)'도 탐구할 것입니다. 이는 공격자가 보안 조치를 우회하기 위해 사용할 수 있는 영리한 방법이며, 이를 이해함으로써 웹사이트를 더 잘 보호할 수 있습니다.

배움은 실천을 통해 이루어진다는 점을 기억하세요. 따라서 전체 과정에서 실습을 진행할 것입니다. 이 랩이 끝나면 XSS 취약점과 이를 방지하는 방법에 대한 확실한 이해를 갖게 될 것입니다. 시작해 봅시다!

Hackbar 설치 및 사용법

이 모듈에서는 XSS (Cross-Site Scripting) 취약점을 탐지하는 데 사용할 주요 도구인 'hackbar'에 익숙해질 것입니다.

먼저 hackbar 브라우저 확장 프로그램을 설치해 보겠습니다.

  1. /home/labex/project 디렉토리로 이동합니다.

  2. hackbar-2.3.1-fx.xpi 파일을 찾아 더블 클릭한 다음, 팝업 창에서 "Add"를 클릭하여 확장 프로그램을 설치합니다. 아래 그림과 같이 표시됩니다.

    hackbar extension installation popup

설치가 완료되면 브라우저에서 개발자 도구를 실행하여 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 취약점을 악용하는 단계는 다음과 같습니다.

  1. F12 를 눌러 hackbar 를 실행하고 "Load URL"을 클릭하여 현재 페이지 URL 을 가져옵니다.
  2. name 매개변수 값을 123으로 수정하고 "Execute"를 클릭합니다. 아래 이미지와 같이 페이지가 이 새 값으로 업데이트되는 것을 확인할 수 있습니다. XSS name parameter update
  3. hackbar 의 내장 XSS 페이로드 (XSS > XSS Alert) 를 사용하고 "Execute"를 클릭합니다. 아래 이미지와 같이 XSS 경고가 트리거되어야 합니다. XSS alert triggered

XSS 취약점 실험 2

이 부분에서는 XSS (Cross-Site Scripting) 필터를 우회하는 기본적인 기술을 살펴보겠습니다.

먼저 웹 브라우저에서 아래 URL 로 이동합니다.

http://127.0.0.1:82/xss/example2.php?name=hacker

XSS 필터를 우회하는 단계는 다음과 같습니다.

  1. hackbar 를 사용하여 간단한 XSS 페이로드 (payload) 를 주입해 봅니다. 예를 들어, <script>alert(1)</script>를 사용합니다. 아래 이미지와 같이 예상한 결과가 나오지 않는 것을 확인할 수 있습니다. Failed XSS injection attempt
  2. 페이지의 소스 코드를 검사합니다. 아래 이미지와 같이 <script></script> 태그가 필터링되고 있는 것을 확인할 수 있습니다. XSS filter source code
  3. 이 필터를 우회하기 위해 script 태그에 다른 대소문자를 사용해 봅니다. 예를 들어, <ScripT>alert(1)</ScripT>를 사용합니다. 아래 이미지와 같이 필터를 우회하고 XSS 페이로드를 성공적으로 주입할 수 있습니다. XSS bypass successful injection

XSS 취약점 실험 3

이 단계에서는 다양한 HTML 태그와 속성을 사용하여 XSS (Cross-Site Scripting) 공격을 실행하는 방법을 배우겠습니다.

먼저 웹 브라우저에서 아래 URL 로 이동합니다.

http://127.0.0.1:82/xss/example4.php?name=hacker

XSS 필터를 우회하고 공격을 실행하려면 다음 단계를 따르세요.

  1. hackbar 를 사용하여 간단한 XSS 페이로드를 주입해 봅니다. 그러나 아래 이미지와 같이 서버가 script 키워드를 식별하고 차단하는 것을 확인할 수 있습니다. XSS filter blocks script tag
  2. 이 필터를 우회하기 위해 <a> HTML 태그를 onclick 속성과 함께 사용합니다.
<a onclick="alert('xss')">xss</a>

이 페이로드는 웹 페이지에 클릭 가능한 링크를 생성합니다. 클릭하면 alert('xss') JavaScript 함수가 트리거됩니다.

  1. 페이지에서 "xss" 링크를 클릭합니다. 아래 이미지와 같이 XSS 경고가 활성화되는 것을 확인할 수 있습니다. XSS alert activation example

XSS 공격을 시작하기 위해 함께 사용할 수 있는 다양한 HTML 태그와 속성이 있습니다. 더 정교한 XSS 페이로드에 대해서는 다음 저장소를 참조하십시오.

https://github.com/iSecurity-Club/Pentest-Methodologies/blob/master/web-exploit-exp/xss/payloads.txt

요약

이 랩에서는 XSS 취약점을 발견하고 악용하는 기본적인 기술을 배웠습니다. hackbar 도구를 사용하여 XSS 취약점을 테스트하는 방법과 대소문자 조작, 다양한 HTML 태그 및 속성 사용과 같은 다양한 우회 기술을 탐구했습니다. 실습을 통해 웹 애플리케이션에서 XSS 취약점을 식별하고 악용하는 실질적인 경험을 얻었습니다. 이 랩은 더 발전된 XSS 기술과 웹 애플리케이션 보안 테스트를 더 탐구하기 위한 튼튼한 기반을 제공했습니다.