Превышение привилегий через манипуляцию с атрибутами аккаунта
Сегодня мы увидим, как параметры могут привести к большим финансовым потерям для компании.
Давайте начнем с аккаунтом обычного пользователя на сайте, который представляет собой платформу электронной коммерции, где происходит покупка и продажа товаров. Допустим, сайт называется Example.com.
Когда вы переходите в раздел покупки товаров и добавляете несколько позиций в корзину, вы видете примерно следующее...
Первая мысль, которая пришла мне в голову — есть ли на этом сайте пользователи с более высокими привилегиями? И если есть, как их определить? Это администраторы, сотрудники или кто-то еще?
Существует два вида повышения привилегий — вертикальное и горизонтальное.
Вертикальное повышение привилегий — это когда пользователь получает доступ к привилегиям более высокого уровня, чем ему положено. Например, обычный пользователь каким-то образом получает права администратора и может управлять всем сайтом.
Горизонтальное повышение привилегий — это когда пользователь получает доступ к привилегиям другого пользователя на том же уровне. Например, один обычный пользователь может получить доступ к аккаунту или данным другого обычного пользователя, не становясь администратором.
Хорошо, а как их искать? Когда я посмотрел JavaScript-файлы, я нашёл некоторые параметры и перешёл в Burp Suite, чтобы изучить их более детально. Да, я нашёл их в GET-запросе, а именно в GET /customer/{{ID}}. Я заметил эти две переменные:
isEmployee
isCorporate
Окей, здесь используется GET-запрос. Как теперь отправить запрос, который изменяет false на true? Как вам идея воспользоваться функцией "Match and Replace" в Burp Suite?
Это не сработало. Теперь давай попробуем отправить OPTIONS-запрос на /customer/{{ID}}
.
Вау, этот эндпоинт принимает PATCH-запрос!
Теперь мы отправим PATCH-запрос на /customer/{{ID}}
И вот что получилось!
Теперь давайте вернёмся на сайт и перейдём к эндпоинту "checkout"!!!
Супер! Когда я добавил больше товаров, чем нужно, мне дали скидку более 3 000 евро, потому что теперь я сотрудник, а не обычный пользователь!
Ещё больше познавательного контента в Telegram-канале — Life-Hack - Хакер