Проведение экспериментов с уязвимостью XSS с помощью Hackbar

NmapBeginner
Практиковаться сейчас

Введение

Добро пожаловать в наш интерактивный лабораторный курс! Здесь мы погрузимся в мир веб-безопасности, сосредоточившись на межсайтовом скриптинге (Cross-Site Scripting, XSS) - распространенной, но очень важной уязвимости веб-приложений. Если веб-сайт не защищен должным образом от XSS, он может стать полем для атаки злоумышленников.

Но не беспокойтесь! Мы поможем вам понять и справиться с этой проблемой. Сначала мы разберем, что такое XSS, почему это важно и как его можно эксплуатировать. Затем мы расскажем, как использовать инструмент под названием 'hackbar', который поможет нам выявить потенциальные уязвимости XSS.

Кроме того, мы также рассмотрим различные 'методы обхода защиты'. Это хитрые методы, которые злоумышленники могут использовать для обхода мер безопасности, и, понимая их, мы сможем лучше защитить наши веб-сайты.

Помните, что лучший способ научиться - это практика, поэтому мы будем проводить практические эксперименты на протяжении всего курса. К концу этого лабораторного занятия вы получите твердое понимание уязвимостей XSS и способов их предотвращения. Давайте начнем!

Установка и использование Hackbar

В этом модуле мы познакомимся с удобным инструментом под названием 'hackbar', который станет нашим основным помощником в обнаружении уязвимостей XSS (Cross-Site Scripting - межсайтового скриптинга).

Во - первых, установим расширение браузера hackbar:

  1. Перейдите в каталог /home/labex/project.
  2. Найдите файл hackbar - 2.3.1 - fx.xpi, дважды кликните по нему, а затем в всплывающем окне нажмите "Добавить", чтобы установить расширение. Как показано на следующем изображении. hackbar extension installation popup

После завершения установки вы можете открыть hackbar, запустив инструменты разработчика в браузере. Обычно это можно сделать, нажав клавишу F12 или перейдя в Настройки > Разработчик > Отладчик.

Давайте быстро рассмотрим некоторые важные функции hackbar:

  • Load URL: Эта функция вставляет URL текущей страницы в hackbar.
  • Split URL: Эта функция разбивает параметры URL для удобства чтения и понимания.
  • Execute: Эта функция отправляет измененный URL обратно на сервер.
  • Post data: Эта функция позволяет отправлять POST - данные на сервер.

Кроме того, hackbar имеет встроенные полезные нагрузки (payloads) для различных уязвимостей, включая SQL - инъекцию, XSS и XXE.

Эксперимент по уязвимости 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. Используйте встроенную полезную нагрузку (payload) XSS в hackbar (XSS > XSS Alert) и нажмите "Execute". В результате должен появиться предупреждение (alert) XSS, как показано на следующем изображении. XSS alert triggered

Эксперимент по уязвимости XSS 2

В этом разделе мы рассмотрим базовую технику обхода фильтров XSS (Cross-Site Scripting - межсайтового скриптинга).

Начните с того, чтобы перейти по следующему URL в веб - браузере:

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

Вот шаги для обхода фильтра XSS:

  1. Попробуйте внедрить простую полезную нагрузку (payload) XSS с помощью hackbar, например, <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. Попробуйте внедрить простую полезную нагрузку (payload) XSS с помощью hackbar. Однако вы заметите, что сервер распознает и блокирует ключевое слово script, как показано на следующем изображении. XSS filter blocks script tag
  2. Чтобы обойти этот фильтр, мы будем использовать HTML-тег <a> в сочетании с атрибутом onclick:
<a onclick="alert('xss')">xss</a>

Эта полезная нагрузка создает кликабельную ссылку на веб-странице. При нажатии на нее запускается JavaScript-функция alert('xss').

  1. Нажмите на ссылку "xss" на странице. Вы должны увидеть, что появляется предупреждение (alert) XSS, как показано на следующем изображении. XSS alert activation example

Существует множество HTML-тегов и атрибутов, которые можно использовать совместно для запуска атак XSS. Для более сложных полезных нагрузок XSS обратитесь к следующему репозиторию:

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

Резюме

В этой лабораторной работе мы изучили основные методы обнаружения и эксплоитации уязвимостей XSS. Мы рассмотрели, как использовать инструмент hackbar для тестирования на наличие уязвимостей XSS и применили различные методы обхода, такие как манипуляция регистром и использование различных HTML-тегов и атрибутов. В результате практических экспериментов мы приобрели опыт в выявлении и эксплоитации уязвимостей XSS в веб-приложениях. Эта лабораторная работа дала прочную основу для дальнейшего изучения более продвинутых методов XSS и тестирования безопасности веб-приложений.