Обход аутентификации с использованием root-массива
Этичный ХакерПривет, охотники за ошибками! Сегодня у нас новая статья об одной из моих находок во время пентеста. Метод, который мы использовали для обхода, сложен, и я хочу поделиться им с вами, так что давайте начнем.

Обзор
Клиент выполняет процесс входа в систему, отправляя учетные данные и получая ответ в формате JSON. Хитрость заключается в том, чтобы поместить свои учетные данные в root массив, и если на бэкэнде есть массив с таким именем, это будет работать.
Обратите внимание, что цель использовала Cloudflare в качестве сервера, поэтому было сложно сосредоточиться на инъекциях.
Действия по воспроизведению уязвимости
1. Попробуйте войти в систему с фиктивными учетными данными, чтобы проверить запрос и ответ.

Вы уже заметите, что учетные данные отправляются в формате JSON, и ответ также будет в формате JSON. На данный момент я пробовал несколько трюков, таких как:
Изменить false на true → Неудачно Изменить сообщение на "Success" → Неудачно Удалить всё сообщение → Неудачно Удалить статус → Неудачно
2. Пришло время поиграть с JSON-данными запроса.
Измените данные с:
{"email":"test@aykalam.com","password":"test"}
на такие:
{"root": {
"password": "test",
"email": "test@aykalam.com"
}}
Ответ будет содержать все данные, относящиеся к пользователю root.

3. Попробуйте перехватить запрос, изменить данные JSON так, как мы сделали выше и отправить запрос.

4. Вы войдете в систему как администратор.

Примечания
- Если цель отправляет ваши учетные данные в формате JSON, это не означает, что цель уязвима.
- Прежде чем сдаться, попробуйте изменить имя массива на
adminилиroot, илиuser, илиadministratorи т.д. - Если ответ в формате JSON, попробуйте манипулировать ответом и кодом состояния.
На этом все, спасибо за просмотр!