Перейти к основному содержанию

CTF — HTTP Verb tampering

CTF

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

ctf

Задача: обойти аутентификацию. Bypass the security establishment.

Уязвимость связана с неправильной настройкой разрешённых методов аутентификации web-сервера.

Уязвимость HTTP Verb Tampering – ошибка настройки контроля доступа для методов протокола HTTP. Тупо аутентификация включена не для всех разрешённых на web-сервере HTTP методов.

Вспомним некоторые HTTP-методы:

  • GET — используется для получения информации от сервера по заданному URI.
  • HEAD — тот же GET, но сервер посылает только заголовки и статусную строку без тела HTTP сообщения.
  • POST — используется для отправки данных на сервер.
  • PUT — используется для загрузки содержимого запроса на заданный URI.
  • DELETE — удаляет указанный в URI ресурс.
  • CONNECT — преобразует существующее соединение в тоннель.
  • OPTIONS — используется для получения параметров текущего HTTP соединения.
  • TRACE — создает петлю, благодаря которой клиент может увидеть, что происходит с сообщением на всех узлах передачи.

Бывают и другие, например: PATCH, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK, SEARCH, POLL, NOTIFY и прочие. Наверное, появятся ещё какие-нибудь новые.

Ссылки

https://www.root-me.org

Решение

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

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

И срабатывает система аутентификации, которая запрашивает у нас логин и пароль.

ctf

Больше нам здесь делать нечего. Открываем командную строку и с помощью curl отправляем запрос к серверу.

curl http://challenge01.root-me.org/web-serveur/ch8/

По умолчанию curl отправляет запрос методом GET. В ответ получаем 401 Authorization Required. Заодно видим, что на сервере используется web-сервер Apache.

ctf

Сменим метод на POST.

curl -X POST http://challenge01.root-me.org/web-serveur/ch8/

Результат тот же. 401 Authorization Required.

ctf

Проверим, на все ли методы админ настроил аутентификацию. Сменим метод на OPTIONS.

curl -X OPTIONS http://challenge01.root-me.org/web-serveur/ch8/

В результате получаем содержимое страницы.

ctf

А вот и флаг: a23e$dme96d3saez$$prap

Валидируем.

ctf

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

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

  • Ограничивайте не web-сервере список доступный HTTP методов.
  • Если настраиваете аутентификацию, то убедитесь, что она включена для всех доступных HTTP методов.

Web-сервер также должен верно отрабатывать при использовании несуществующих HTTP методов. К примеру, укажем метод INTERNET_LAB_RU:

curl -X INTERNET_LAB_RU http://challenge01.root-me.org/web-serveur/ch8/

ctf

Веб сервер снова выдаёт содержимое страницы с флагом.

Теги

 

Похожие материалы