• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья XSS для новичков. От зеленного к зеленным (решаем модуль XSS с HTB) #1

Patriarxkiop

floppy-диск
Забанен
Регистрация
07.01.2024
Сообщения
8
Реакции
3
Пожалуйста, обратите внимание, что пользователь заблокирован
Моя первая статья в принципе в области Инфобеза, сам только начинаю этот путь и хочу объяснить тему новичкам языком новичка. Просьба не засерать статью сообщениями по типу "да чему ты, скрипткидик можешь нас научить", так как писал я статью не один день, возможно будут не точности, я их буду стараться редактировать. Суть- объяснить так, что бы новичкам было понятно.
Приятного прочтения

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Что такое XSS

Типичное веб-приложение работает, получая HTML-код с внутреннего сервера и отображая его в клиентском интернет-браузере. Когда уязвимое веб-приложение не выполняет надлежащую очистку пользовательского ввода, злоумышленник может внедрить дополнительный код JavaScript в поле ввода (например, комментарий/ответ), поэтому, когда другой пользователь просматривает ту же страницу, он неосознанно выполняет вредоносный код JavaScript.
1736541869999.png


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Типы XSS

Существует три основных типа XSS-уязвимостей:
1736541953705.png

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Сохраненный XSS (Stored XSS)

Если внедренная нами полезная нагрузка XSS сохраняется в бэкэнд-базе данных и извлекается при посещении страницы, это означает, что наша атака XSS является постоянной и может затронуть любого пользователя, посещающего страницу. Это делает этот тип XSS наиболее критическим, поскольку он затрагивает гораздо более широкую аудиторию, поскольку любой пользователь, посещающий страницу, станет жертвой этой атаки. Кроме того, Stored XSS может быть нелегко удалить, и может потребоваться удаление полезной нагрузки из внутренней базы данных.
1736633728617.png

Практика:
1736542306489.png

2)Вставляем IP в браузер и смотрим что нам выдает:
1)Та полезная нагрузка из задания:
Что мы видим? Мы видим код JS, который при отсутствия каких либо фильтраций спокойно показывает нам url адрес страницы
1)
1736542667705.png

2)
1736542475215.png

Из задания мы видим, что нам нужны куки, так как там флаг, а поскольку мы с вами не Кевины Митники, то обращаемся в гугл и ищем скрипты связанные с куки
Из интернета я нашел след. скрипт: <script>alert(document.cookie)</script>
Ну и естественно вводим это в поле ввода. Результат:
1736543061245.png

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

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Отражённый XSS (Reflected XSS)

1736543550234.png


Давайте сразу к таску:
1736627462505.png



переходим по айпишнику:
1736627501819.png



Казалось бы, такая же ху*ня, тот же to-do list и как вообще возможно искать другой вид xss, но не торопитесь мои юные коллеги, все по порядку. Давайте мы введем в форму "test" и глянем что будет.
1736627536215.png



А теперь все внимание на url-ку. Если сравнивать результат после ввода в форму, то обратим наше чудное внимание на их разницу: все одинаково. но в этой лабе добавляется ?task=test. Когда я это проходил, то не сразу заметил разницу в url, а когда заметил, не зная основ веб приложений и устройства веб страниц вспомнил этого дядьку
1736544662759.png


В итоге вводим тот же скрпит, что и в первой лабе <script>alert(document.cookie)</script> и получаем:
1736627879827.png


Следующий вопрос который у вас возникнет: почему вводя один и тот же скрипт, мы получаем разные виды XSS. Все просто: пейлоуд из первой лабы на сохраненную XSS сохраняется на серваке, никому ничего не нужно отправлять, он срабатывает уже при заходе пользователя на домен.
А вот со второй лабой на отраженный XSS интереснее. Пейлоуд заключен в URL адресе, он срабатывает только тогда, когда пользователь будет переходить по ссылке. Давайте просто возьмем и посетим url который получился во второй лабе, дабы проверить себя.
1736628318407.png

Заметим что браузер автоматически закодировал наш пейлоуд, делается это по большей части для:
1736628786852.png


Если я нажму enter, страница выведет мне следующее:
1736628862734.png


Флаг получен, переходим дальше:

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

DOM-XSS-атаки (Dom XSS)

1736629178464.png


Перейдем сразу к таску:

1736629316707.png


Из определения HTB нам сказано, что при DOM XSS все обрабатывается на клиентской части, давайте перейдем опять по IP-шнику и что-нибудь введем:
1736629505984.png

Опять этот ебуч*й todo, ну ладно.
Тестовый запрос и под капот:
Что мы видим? Наш запрос обрабатывается, в теге ul виден наш текст. Еще видим, что в url появилась # для добавленного нами элемента, что означает, что это клиентский параметр, проще говоря после решетки сервак ничего не обрабатывает. (в данном примере его нету, но в общем случае так)
1736629814309.png


Пробуем ввести тот же код, что и в двух предыдущих лабах подряд:

1736630540562.png

Фильтрации нету, тогда какого х*я это не работает? Минут 10 я думал над этим пока не вспомнил, на что воздействует зловредный код. Синоним DOM- это клиент (мне так проще было запомнить), а этот скрипт обрабатывается сервером. Так как может обработать код то -чего нету, тогда до меня дошло, нужен пейлоуд связанный с клиентской частью. В гугле нашел это: <img src="" onerror=alert(document.cookie)>. Что делает код? Это стандартный обработчик событий, он как бы говорит: Загрузи изображение из src, а если будет какая-то ошибка(у нас поле пустое, значит ошибка будет), то выполни alert(document.cookie). Ну и получим флаг. Задание решено
1736631312722.png

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Итог:

Я очень рад что вы дочитали эту статью. В ней мы разобрали практически все начиная от определения и видов XSS, заканчивая умением их обнаруживать, как их эксплуатировать я сделаю отдельную часть. Ниже я прикреплю табличку из GPT для новичков, что бы закрепить полученные знания:

1736632168726.png


Несколько моментов которые я понял для себя:

1) Тупо тестить интересующий вас домен, не нужно искать, сравнивать виды уязвимостей на сайте, берите тупо список и вставляйте в формы, консоли браузеров либо различных скриптов по автоматизации этих действий (xsstrike как пример) и отталкивайтесь от этих результатов
2) Недостаточно тупо читать статьи, практикуйтесь. Я с форумом относительно давно, стараюсь читать все что интересно, прошу контакты людей в тг(удобнее), что бы узнать нужную мне инфу. Пока я не оформил подписку на HTB(не реклама), я думал что я подкован во всем, а по факту-нигде, много проблем возникало на простых вещах, теорию знаю, а применять не умею.
3) Время- ваш главный ресурс, максимально используйте GPT, пока гуглите всю инфу (а ее капец как много, я хоть не так много модулей прошел, но без GPT я бы умер это гуглить ).

P.S. Если есть косяки обязательно пишите, буду править инфу.( пунктуацию в школе не проходил :) )


Любите хакинг, Изучайте хакинг, Создавайте хакинг
BitByte
 

Вложения

  • 1736542464907.png
    1736542464907.png
    19 КБ · Просмотры: 6
  • 1736543996872.png
    1736543996872.png
    35.9 КБ · Просмотры: 6
  • 1736544109513.png
    1736544109513.png
    13.7 КБ · Просмотры: 7
  • 1736544310373.png
    1736544310373.png
    14.1 КБ · Просмотры: 7
  • 1736627871782.png
    1736627871782.png
    15.2 КБ · Просмотры: 7
  • 1736630439378.png
    1736630439378.png
    48.7 КБ · Просмотры: 7
  • 1736632039705.png
    1736632039705.png
    29.3 КБ · Просмотры: 7
  • 1736632125828.png
    1736632125828.png
    39.1 КБ · Просмотры: 7


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх