Inyección NoSQL
¿Qué es Inyección NoSQL?
Inyección NoSQLAtaque de inyección que manipula operadores, JSON o el lenguaje de consulta de una base NoSQL para eludir la lógica o extraer datos.
La inyección NoSQL ataca aplicaciones que construyen consultas para almacenes documentales o clave-valor (como MongoDB, CouchDB o Elasticsearch) a partir de entradas no fiables. En lugar de inyectar sintaxis SQL, el atacante manipula la estructura JSON, operadores como $ne o $gt o fragmentos del lenguaje de consulta para autenticarse sin credenciales, obtener documentos arbitrarios o desencadenar la evaluación de JavaScript del lado del servidor cuando el motor lo permite. Las variantes ciegas extraen datos mediante comportamiento booleano o temporal. Las defensas incluyen validación estricta del esquema, conversión de entradas al tipo primitivo esperado, rechazar cargas tipo objeto donde se espera una cadena, usar constructores de consultas con operadores explícitos y aplicar el principio de mínimo privilegio a los usuarios de la base.
● Ejemplos
- 01
Enviar {"username": "admin", "password": {"$ne": null}} a un inicio de sesión MongoDB que compara hashes con una cadena.
- 02
Inyectar una expresión JavaScript en una cláusula $where para enumerar documentos desde un endpoint vulnerable.
● Preguntas frecuentes
¿Qué es Inyección NoSQL?
Ataque de inyección que manipula operadores, JSON o el lenguaje de consulta de una base NoSQL para eludir la lógica o extraer datos. Pertenece a la categoría de Ataques y amenazas en ciberseguridad.
¿Qué significa Inyección NoSQL?
Ataque de inyección que manipula operadores, JSON o el lenguaje de consulta de una base NoSQL para eludir la lógica o extraer datos.
¿Cómo defenderse de Inyección NoSQL?
Las defensas contra Inyección NoSQL combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para Inyección NoSQL?
Nombres alternativos comunes: NoSQLi.