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-2017-14980 — Estouro de buffer baseado em pilha no Sync Breeze Enterprise 10.0.28 acessível através do manipulador /login, demonstrando como o comprimento de entrada não verificado pode corromper a memória da pilha. | Kitploit
Ferramentas/GitHubGitHub/themalwareguardian/cve-2017-14980
Análise de VulnerabilidadesExploraçãoEngenharia ReversaShellcodeExploração de Aplicações WebDepuradoresFuzzingAprendizado e EducaçãoDesenvolvimento de Payloads
Exploração de Binários
GitHubthemalwareguardian/cve-2017-14980

CVE-2017-14980

Estouro de buffer baseado em pilha no Sync Breeze Enterprise 10.0.28 acessível através do manipulador /login, demonstrando como o comprimento de entrada não verificado pode corromper a memória da pilha.

Ver Repositório
13há 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

🐞 CVE-2017-14980: Sync Breeze Enterprise 10.0.28 - Estouro de Buffer Baseado na Pilha

Estouro de buffer baseado na pilha no Sync Breeze Enterprise 10.0.28 acessível através do manipulador /login, demonstrando como a falta de verificação do comprimento da entrada pode corromper a memória da pilha.




📑 Tabela de Conteúdos

  • Por que este repositório existe
  • Por que esta vulnerabilidade é interessante
  • Contexto e software afetado
  • Sobre a vulnerabilidade
  • Acionando a falha
  • Exploração



🎓 Por que este repositório existe

Este repositório faz parte do material que uso ao ensinar exploração de corrupção de memória (além do meu trabalho regular, também leciono em diferentes cursos de segurança cibernética, onde ajudo a treinar a próxima geração de engenheiros reversos).

CVE-2017-14980 é um caso que utilizo quando quero que os alunos experimentem uma sobrescrita EIP vanilla sobre HTTP, em vez de um protocolo TCP bruto. Parece simples à primeira vista — um formulário de login, uma senha longa, uma falha — mas o contexto HTTP introduz um conjunto de caracteres problemáticos que não são imediatamente óbvios e que forçam os alunos a pensar sobre como os dados estão sendo processados antes de atingirem o buffer vulnerável. Entender por que %, &, + e = são caracteres ruins aqui exige compreender a codificação URL, o que é uma lição útil por si só.




💡 Por que esta vulnerabilidade é interessante

Sync Breeze Enterprise é um aplicativo Windows de sincronização de arquivos que expõe uma interface de gerenciamento web. A vulnerabilidade está no manipulador de login, que copia o campo de senha para um buffer de pilha de tamanho fixo sem validação de comprimento. O que torna este caso útil para ensino:

  • Nenhuma autenticação necessária. O estouro ocorre durante o processamento do login, antes de qualquer verificação de credenciais.
  • Sobrescrita direta de EIP. Sem SEH, sem heap, sem exploração em múltiplas etapas. O endereço de retorno salvo é sobrescrito diretamente.
  • Contexto HTTP introduz caracteres ruins não óbvios. Além dos habituais \x00, \x0a e \x0d, o tipo de conteúdo application/x-www-form-urlencoded adiciona \x25 (%), \x26 (&), \x2b (+) e \x3d (=) como caracteres ruins, pois o servidor decodifica o corpo codificado na URL antes de copiá-lo para o buffer. Alunos que pulam a análise de caracteres ruins e vão direto para o shellcode obterão um payload que é silenciosamente corrompido antes de atingir a memória.
  • Um gadget confiável em um módulo fornecido com o aplicativo. libspp.dll, incluída com o Sync Breeze, foi compilada sem ASLR, SafeSEH ou CFG, tornando o endereço do gadget fixo entre reinicializações.



🔍 Contexto e software afetado

Sync Breeze Enterprise é uma ferramenta de sincronização de arquivos para Windows que inclui um servidor web embutido para gerenciamento remoto. A interface web escuta na porta TCP 80 quando ativada e expõe um formulário de login em /login. A vulnerabilidade está no manipulador POST que processa o campo de senha.

Detalhes técnicos principais:

  • Tipo de vulnerabilidade: Estouro de buffer baseado na pilha
  • Versão afetada: Sync Breeze Enterprise 10.0.28
  • Endpoint afetado: POST /login, parâmetro password
  • Componente vulnerável: Manipulador do formulário de login
  • Autenticação necessária: Não
  • Impacto: Execução remota de código



⚠️ Sobre a vulnerabilidade

O Sync Breeze processa o formulário de login lendo o corpo POST e extraindo o campo de senha. O valor é copiado para um buffer de pilha de tamanho fixo sem verificar seu comprimento. Uma versão simplificada da lógica vulnerável se parece com isso:

root@kitploit:~
char password_buffer[256];

strcpy(password_buffer, password_field);

O corpo POST é decodificado pela URL antes que a cópia ocorra, o que significa que caracteres como %25 são decodificados para % antes de atingir o buffer. É também por isso que certos caracteres especiais de URL atuam como caracteres ruins: eles são interpretados pela camada HTTP antes que os dados atinjam a operação de cópia vulnerável. Enviar um valor de senha suficientemente longo faz com que a cópia escreva além do final do buffer, sobrescrevendo o endereço de retorno salvo. Quando a função retorna, a CPU carrega o valor controlado pelo atacante da pilha para EIP e salta para ele.




💥 Acionando a falha

A falha pode ser reproduzida enviando uma senha excessivamente longa em uma solicitação POST para /login. Nenhuma autenticação é necessária. Exemplo usando Python:

root@kitploit:~
import socket

HOST = '127.0.0.1'
PORT = 80

payload = b"A" * 600

body = b"username=admin&password=" + payload
request = (
	b"POST /login HTTP/1.1\r\n"
	b"Host: 127.0.0.1\r\n"
	b"Content-Type: application/x-www-form-urlencoded\r\n"
	b"Content-Length: " + str(len(body)).encode() + b"\r\n"
	b"Connection: close\r\n"
	b"\r\n" +
	body
)

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.send(request)
s.close()
Baixar ferramenta

Quando executado sob um depurador, a falha mostra EIP sobrescrito com dados controlados pelo usuário:

root@kitploit:~
EIP = 41414141

confirmando que o endereço de retorno salvo foi corrompido pelo estouro.




💣 Exploração

O objetivo deste repositório não é apenas demonstrar a falha, mas percorrer o processo completo de exploração passo a passo, desde o fuzzing até um shell reverso funcional.

Para manter o README principal limpo, as notas detalhadas de exploração, scripts e etapas do depurador estão na pasta Vulnerability 📂 deste repositório.

Lá você encontrará o fluxo de trabalho completo usado para explorar este CVE, incluindo:

  • Fuzzing do campo de senha para identificar a falha.
  • Descoberta de deslocamento para localizar a posição exata do EIP na pilha.
  • Análise de caracteres ruins para o corpo POST codificado na URL, incluindo os caracteres ruins específicos do HTTP.
  • Localização de um gadget JMP ESP na libspp.dll, um módulo compilado sem ASLR ou SafeSEH.
  • Posicionamento e execução do shellcode.