На странице
apsyleg1 мин
#portswigger #access-control #web-security
Роль пользователя контролируется параметром запроса
Лаборатория
User role controlled by request parameter · Apprentice
Решение
Дано
This lab has an admin panel at /admin, which identifies administrators using a forgeable cookie.
Solve the lab by accessing the admin panel and using it to delete the user `carlos`.
You can log in to your own account using the following credentials: `wiener:peter`
Анализ задания
У админки простая защита — проверяет наличие определённой куки. Нужно зайти в неё и удалить пользователя.
Разведка
Залогинимся на сайте и посмотрим, что происходит.
POST /login ставит интересную куку:
Set-Cookie: Admin=false; Secure; HttpOnly
Попробуем очевидный шаг — заменим на Admin=true. И правда, появляется ссылка на админку.
Удаляем пользователя. Лаба решена!
Ещё в этой категории
Внедрение произвольного объекта в PHP (PortSwigger Lab)
Восстановление утёкшего исходного кода и внедрение сериализованного объекта CustomTemplate, чей __destruct удаляет произвольный файл.
Эксплуатация небезопасной десериализации через функции приложения (PortSwigger Lab)
Подмена поля `avatar_link` в объекте сессии для удаления произвольного файла через функцию удаления аккаунта.
Изменение типов сериализованных данных (PortSwigger Lab)
Эксплуатируем нестрогое сравнение PHP, меняя тип `access_token` на целое `0` и обходя аутентификацию.