Найти тему

CTF — HTTP Improper redirect

Оглавление

Продолжаем решать задачки по информационной безопасности web-серверов. Сегодня задачка с портала root-me.org, называется "HTTP - Improper redirect". За решение задачки дают 15 баллов, чуть посложнее начального уровня.

-2

Задача: получить доступ к индексной странице. Get access to index.

Уязвимость будет связана с неправильным редиректом в PHP.

В PHP код http_redirect() или header('Location: ...') не выполняет остановку выполнения кода. В результате вместе со статусом 301 или 302 клиенту отправляется полное содержимое HTML страницы. Да, браузер клиента выполняет редирект, но можно же не пользоваться браузером!

Ссылки

CTF - Capture The Flag

https://www.root-me.org

http://cwe.mitre.org/data/definitions/698.html

Решение

Переходим на страницу задания:

http://challenge01.root-me.org/web-serveur/ch32

И попадаем на login.php.

-3

А нам требуется index.php.

-4

Но зайти не получается.

-5

Браузер на странице index.php получает код "302 Found" и и выполняет редирект на "./login.php?redirect".

Как отключить редирект?

Можно, конечно, установить специализированное ПО для безопасников типа Burp Suite.

-6

Минут 20 и вы разберётесь как поймать index.pxp и отобразить полное содержимое страницы. Флаг подсветил.

-7

Но есть решение проще, запускаем командную строку или bash и используем curl:

curl http://challenge01.root-me.org/web-serveur/ch32/index.php
-8

Флаг: ExecutionAfterRedirectIsBad.

Валидируем.

-9

Флаг подходит, зарабатываем 15 очков.

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

  • Помните о том, что следует вручную прекращать выполнение PHP кода после выполнения редиректа. Без exit() после заголовка header('Location: ...') PHP продолжает выполнение и отправляет вместе с заголовком содержимое страницы.

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

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