На странице
Обход method-based access control
Лаборатория
Method-based access control can be circumvented · Apprentice
Решение
Дано
This lab implements access controls based partly on the HTTP method of requests. You can familiarize yourself with the admin panel by logging in using the credentials administrator:admin.
To solve the lab, log in using the credentials wiener:peter and exploit the flawed access controls to promote yourself to become an administrator.
Анализ задания
Нам нужно ознакомиться, как работает админка, найти там уязвимость, которая поможет обычному пользователю поднять свои права до административных.
Разведка
Залогинимся и посмотрим, как работает админка. Видим ссылку «Admin panel». Тут есть селектор выбора пользователя и 2 кнопки — по сути означают «Сделать админом» и «Убрать из админов». Попробуем сделать админом пользователя wiener и уберём его из админов.
Запрос:
POST /admin-roles
username=wiener&action=upgrade
И вариант с action=downgrade.
Попробуем зайти под пользователем wiener и выполнить этот запрос на повышение прав — «Unauthorized».
Пробуем поменять POST на GET — «Missing parameter 'username'». О, передадим параметр в URL тогда:
GET /admin-roles?username=wiener&action=upgrade
Прошло! Лаба решена.
Ещё в этой категории
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.