На странице
ID пользователя контролируется параметром запроса, с непредсказуемыми ID
Лаборатория
User ID controlled by request parameter, with unpredictable user IDs · Apprentice
Решение
Дано
This lab has a horizontal privilege escalation vulnerability on the user account page, but identifies users with GUIDs.
To solve the lab, find the GUID for carlos, then submit his API key as the solution.
You can log in to your own account using the following credentials: wiener:peter
Анализ задания
Лаба очень похожа на предыдущую, за исключением того, что нам нужно разыскать на сайте GUID нужного пользователя.
Разведка
Логинимся под пользователем, смотрим запросы. Тут есть API-ключ.
Прогуляемся по сайту, видим список постов, заходим в первый. О, carlos оставил коммент, его имя — ссылка, кликнем:
GET /blogs?userId=2481e38a-2dba-4f3b-a2a1-433c37c9ce03
Мы получили id нужного пользователя. Теперь можем сделать запрос на получение инфы о пользователе, но подставив туда id carlos. Окей, делаем запрос:
GET /my-account?id=2481e38a-2dba-4f3b-a2a1-433c37c9ce03
В ответе получили:
<div>Your API Key is: uqyLbJbk1E14YlHvsWrB2jHaL3C3lvQd</div>
Лаба решена!
Ещё в этой категории
Эксплуатация небезопасной десериализации через функции приложения (PortSwigger Lab)
Подмена поля `avatar_link` в объекте сессии для удаления произвольного файла через функцию удаления аккаунта.
Изменение типов сериализованных данных (PortSwigger Lab)
Эксплуатируем нестрогое сравнение PHP, меняя тип `access_token` на целое `0` и обходя аутентификацию.
Изменение сериализованных объектов (PortSwigger Lab)
Меняем булево поле `admin` в PHP-сериализованной куке сессии и получаем права администратора.