Skip to main content

NoSQL Injection (MongoDB / Elastic)

Backend pasa input a MongoDB sin sanitizar; en lugar de string envías un objeto operador.

Categoría: Web · Vectores avanzados 🎯 Trinchera — Backend pasa input a MongoDB sin sanitizar; en lugar de string envías un objeto operador. {"user":"admin","pass":{"$gt":""}} hace match contra cualquier password. 🔗 Kill chain — Auth bypass clásico en login JSON, blind extraction con $regex, RCE via $where en versiones viejas, NoSQLi en ElasticSearch via script_fields. 📡 Huella defensiva — Queries con operadores en campos que deberían ser strings; volumen anómalo de queries con $regex. ⚠️ Falso amigo — Sanitización con escape() (string SQL) no sirve — el input ya es objeto, no string. 🛡️ Remediación — Validar tipo de cada campo (Joi, Zod, AJV), parametrizar queries, no usar $where.
Volver al glosario completo Última actualización: 2026-06-11