NoSQL-инъекция
Что такое NoSQL-инъекция?
NoSQL-инъекцияИнъекционная атака, которая манипулирует операторами, JSON или языком запросов NoSQL-БД, чтобы обойти логику приложения или извлечь данные.
NoSQL-инъекция нацелена на приложения, которые формируют запросы к документным или key-value хранилищам (MongoDB, CouchDB, Elasticsearch) из недоверенного ввода. Вместо синтаксиса SQL злоумышленник изменяет структуру JSON, операторы вроде $ne или $gt либо фрагменты языка запросов, чтобы войти без учётных данных, получить произвольные документы или запустить выполнение JavaScript на стороне сервера, если движок это поддерживает. Слепые варианты выкачивают данные через булевы или временные различия. Защита включает строгую валидацию схемы, приведение ввода к ожидаемым примитивным типам, отказ принимать объект там, где ожидается строка, использование query builder драйвера с явными операторами и применение минимальных прав к учётным записям БД.
● Примеры
- 01
Отправка {"username": "admin", "password": {"$ne": null}} в MongoDB-логин, где хеш сравнивается со строкой.
- 02
Внедрение JavaScript-выражения в конструкцию $where для перечисления документов через уязвимый эндпоинт.
● Частые вопросы
Что такое NoSQL-инъекция?
Инъекционная атака, которая манипулирует операторами, JSON или языком запросов NoSQL-БД, чтобы обойти логику приложения или извлечь данные. Относится к категории Атаки и угрозы в кибербезопасности.
Что означает NoSQL-инъекция?
Инъекционная атака, которая манипулирует операторами, JSON или языком запросов NoSQL-БД, чтобы обойти логику приложения или извлечь данные.
Как защититься от NoSQL-инъекция?
Защита от NoSQL-инъекция обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия NoSQL-инъекция?
Распространённые альтернативные названия: NoSQLi.