CyberGlossary

Ataques e ameaças

Injeção NoSQL

Também conhecido como: NoSQLi

Definição

Ataque de injeção contra bases documentais, chave-valor ou de grafos no qual o atacante insere operadores ou JavaScript em objetos de consulta.

A injeção NoSQL visa bases como MongoDB, CouchDB, DynamoDB ou Redis, cujas linguagens de consulta se baseiam em JSON, BSON ou JavaScript embebido. Em vez de escapar de strings, o atacante manipula a estrutura — por exemplo enviando um JSON com operadores como {"$ne": null} ou {"$where": "..."} para contornar a autenticação, extrair documentos ou executar JavaScript no servidor. A desserialização automática de objetos em linguagens dinâmicas (PHP, Node.js) facilita o ataque ao tornar a entrada parte do DSL. As defesas incluem tipagem estrita e validação por esquema, recusa de operadores fornecidos pelo utilizador, APIs parametrizadas, desativação do JavaScript no servidor e papéis de base de dados com mínimo privilégio.

Exemplos

  • Enviar {"username": "admin", "password": {"$ne": ""}} a um endpoint MongoDB de login para ignorar a verificação de palavra-passe.
  • Abusar de {"$where": "sleep(5000) || true"} para extrair dados por diferenças de tempo.

Termos relacionados