На странице
Роль пользователя меняется в профиле
Лаборатория
User role can be modified in user profile · Apprentice
Решение
Дано
This lab has an admin panel at /admin. It's only accessible to logged-in users with a roleid of 2.
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
Анализ задания
Тут похоже конкретная наводка — админка доступна пользователям с roleid=2, и роль, похоже, можно менять в профиле пользователя. Нужно попасть в админку и удалить пользователя carlos.
Разведка
Пойдём и посмотрим профиль пользователя — там форма смены почты. Окей, поменяем. Улетает:
POST /my-account/change-email
{"email":"xxx@xxx.ru"}
В ответ:
{
"username": "wiener",
"email": "xxx@xxx.ru",
"apikey": "sNK5lPO4Q9iCMxU18Tevh5HTKt9NmR9Y",
"roleid": 1
}
Интересно — получается, можно вместе с email передать роль и поменять её? Отправляем запрос в Repeater, добавляем поле roleid в запрос и ставим значение 2. Отправляем — вуаля, роль поменялась.
Перезагружаем страницу, доступна админка. Удаляем пользователя. Лаба решена!
Ещё в этой категории
Внедрение произвольного объекта в PHP (PortSwigger Lab)
Восстановление утёкшего исходного кода и внедрение сериализованного объекта CustomTemplate, чей __destruct удаляет произвольный файл.
Эксплуатация небезопасной десериализации через функции приложения (PortSwigger Lab)
Подмена поля `avatar_link` в объекте сессии для удаления произвольного файла через функцию удаления аккаунта.
Изменение типов сериализованных данных (PortSwigger Lab)
Эксплуатируем нестрогое сравнение PHP, меняя тип `access_token` на целое `0` и обходя аутентификацию.