Injeção NoSQL
O que é Injeção NoSQL?
Injeção NoSQLAtaque de injeção que manipula operadores, JSON ou o DSL de consulta de uma base NoSQL para contornar a lógica ou extrair dados.
A injeção NoSQL explora aplicações que constroem consultas para armazenamentos documentais ou chave-valor (como MongoDB, CouchDB ou Elasticsearch) a partir de entradas não confiáveis. Em vez de injetar sintaxe SQL, o atacante manipula a estrutura JSON, operadores como $ne ou $gt ou fragmentos da linguagem de consulta, para autenticar sem credenciais, devolver documentos arbitrários ou desencadear a execução de JavaScript no servidor quando o motor o permite. Variantes cegas extraem dados por comportamento booleano ou temporal. As defesas incluem validação rigorosa de esquema, conversão das entradas para o tipo primitivo esperado, rejeição de cargas tipo objeto onde se espera uma string, uso dos construtores de consulta do driver com operadores explícitos e privilégios mínimos para as contas da base de dados.
● Exemplos
- 01
Enviar {"username": "admin", "password": {"$ne": null}} a um endpoint de login MongoDB que compara hashes com uma string.
- 02
Injetar uma expressão JavaScript numa cláusula $where para enumerar documentos a partir de um endpoint vulnerável.
● Perguntas frequentes
O que é Injeção NoSQL?
Ataque de injeção que manipula operadores, JSON ou o DSL de consulta de uma base NoSQL para contornar a lógica ou extrair dados. Pertence à categoria Ataques e ameaças da cibersegurança.
O que significa Injeção NoSQL?
Ataque de injeção que manipula operadores, JSON ou o DSL de consulta de uma base NoSQL para contornar a lógica ou extrair dados.
Como se defender contra Injeção NoSQL?
As defesas contra Injeção NoSQL costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.
Quais são outros nomes para Injeção NoSQL?
Nomes alternativos comuns: NoSQLi.