Уязвимости
Загрязнение прототипа
Также известно как: Загрязнение Object.prototype, Инъекция __proto__
Определение
JavaScript-уязвимость, при которой недоверенный ввод изменяет Object.prototype, добавляя свойства всем объектам и меняя поведение приложения вплоть до RCE.
Примеры
- POST {"__proto__":{"isAdmin":true}} на эндпоинт JSON-merge — и пользователь становится админом везде.
- Загрязнение прототипа меняет опции рендеринга шаблонов и приводит к RCE.
Связанные термины
Небезопасная десериализация
Уязвимость, при которой приложение десериализует недоверенные данные, позволяя атакующему создавать произвольные объекты и часто получать удалённое выполнение кода.
Массовое присваивание (Mass Assignment)
Уязвимость, при которой приложение слепо привязывает поля запроса от клиента к внутренним свойствам объекта, позволяя задавать те, что не должны контролироваться.
Input Validation
Input Validation — definition coming soon.
Нарушенный контроль доступа
Класс уязвимостей, при которых правила авторизации отсутствуют или применяются неверно, давая пользователям выполнять действия или получать данные сверх их прав.
Атака на цепочку поставок
Атака, при которой компрометируется доверенный сторонний поставщик ПО, оборудования или услуг с целью добраться до его конечных клиентов.