На странице
apsyleg1 мин
#portswigger #access-control #web-security

Многошаговый процесс без контроля доступа на одном из шагов

Лаборатория

Multi-step process with no access control on one step · Apprentice

Решение

Дано

This lab has an admin panel with a flawed multi-step process for changing a user's role. 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.

Анализ задания

Есть админка, в которой есть уязвимость в процессе смены роли пользователя. Нам нужно посмотреть, как устроена админка (дали креды). И, зайдя под пользователем wiener, эксплуатировать уязвимость и повысить свои права до административных.

Разведка

Посмотрим админку. Есть селектор пользователей, выбранного можно сделать админом. Также можно убрать из админов.

Мы выбрали пользователя, нажали сделать админом:

POST /admin-roles
username=carlos&action=upgrade

В ответ получили HTML — страница подтверждения действия. Если нажимаем «Подтвердить»:

POST /admin-roles
action=upgrade&confirmed=true&username=carlos

Как видим, здесь добавляется параметр confirmed=true. Как мне кажется, как раз этот второй запрос и уязвим. Но проверим оба шага.

Залогинимся под wiener и попробуем вызвать POST /admin-roles без параметра confirmed, а потом с ним. 2 варианта нагрузки:

POST /admin-roles
action=upgrade&username=wiener
POST /admin-roles
action=upgrade&confirmed=true&username=wiener

Первая нагрузка — «Unauthorized». Вторая — успех.

Лаба решена.