На странице
Роль пользователя меняется в профиле
Лаборатория
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. Отправляем — вуаля, роль поменялась.
Перезагружаем страницу, доступна админка. Удаляем пользователя. Лаба решена!
Ещё в этой категории
Web Shell Upload через обход блек-листа расширений (PortSwigger Lab)
.php в блек-листе, но .htaccess заливается без вопросов — подсовываем свой конфиг Apache и заставляем сервер исполнять shell.bug как PHP.
Web Shell Upload через обфускацию расширения (PortSwigger Lab)
Блек-лист расширений не пускает .php, двойное расширение shell.php.jpg отдаётся как картинка — null-byte shell.php%00.jpg обходит обе проверки.
Remote Code Execution через загрузку web shell (PortSwigger Lab)
Загрузка аватарки без валидации — заливаем PHP web shell и читаем /home/carlos/secret.