Заскучали? Продолжаем решать задачки по информационной безопасности web-серверов. Сегодня задачка с портала root-me.org, называется "User-agent". За решение задачки дают 10 баллов, начальная сложность.
По названию понятно, что уязвимость будет связана с "User agent" браузера.
При посещении веб-сайта клиентское приложение (браузер) обычно посылает веб-серверу информацию о себе. Это текстовая строка, являющаяся частью HTTP-запроса, начинающаяся с User-agent: или User-Agent:, и обычно включающая такую информацию, как название и версию приложения, операционную систему компьютера и язык.
Следует помнить, что "User agent" — это полностью подконтрольный пользователю параметр.
Ссылки
Решение
Переходим на страницу задания:
http://challenge01.root-me.org/web-serveur/ch2/
Видим сообщение: "Wrong user-agent: you are not the "admin" browser".
Ну ладно, зайдём из браузера "admin", для этого достаточно подменить User Agent текущего браузера. У меня Chrome, устанавливаю расширение "User-Agent Switcher for Chrome".
Такими расширениями пользуются Web разработчики для проверки, как реагирует сайт на разные версии браузеров.
В настройках расширения создаю User-Agent для браузера admin.
И переключаюсь на него.
Страничка задания видит, что к ней зашёл браузер admin и беспечно отдаёт флаг rr$Li9%L34qd1AAe27.
Флаг найден. Валидируем.
Well done, you won 10 Points. Флаг принят.
Безопасность
- Не стоит привязывать безопасность вашего web-сервера к User-Agent браузера, данный параметр легко может быть изменён пользователем.
- User-Agent можно использовать только для "усиления" безопасности, например, запоминая не только логин-пароль пользователя, но и его браузер. Злоумышленник не сможет с первого раза подключиться к личному кабинету, если не знает браузер пользователя.