Una aplicación cliente-servidor vulnerable (VuCSA) para practicar pruebas de penetración

Se crea una aplicación cliente-servidor vulnerable (VuCSA) para aprender y presentar cómo poder realizar unas pruebas de penetración a clientes pesados que no son http, esto está escrito en Java con interfaz gráfica de usuario JavaFX.

Actualmente, la aplicación vulnerable contiene los siguientes desafíos:

  1. Sobrelectura de búfer (simulado)
  2. Ejecución de comandos
  3. Inyección SQL
  4. Enumeración
  5. XML
  6. Control de acceso horizontal
  7. Control de acceso vertical

Si desea saber cómo resolver estos desafíos, eche un vistazo al  sitio web de PETEP , que describe cómo utilizar la herramienta de código abierto PETEP para explotarlos.

Consejo: antes de comenzar a hackear, no olvide verificar la estructura de datos de los mensajes a continuación.

Como ejecutar

Para ejecutar el servidor y el cliente vulnerables, puede usar una de las versiones en GitHub o ejecutar gradle ensamblar, que crea paquetes de distribución (tanto para Windows como para Unix). Estos paquetes contienen scripts sh/bat que ejecutarán el servidor y el cliente mediante JVM.

Estructura del proyecto

El proyecto se divide en tres módulos:

  • vucsa-common  : funcionalidad común tanto para el cliente como para el servidor (incluidas las utilidades de procesamiento de protocolos)
  • vucsa-client  : cliente vulnerable con interfaz gráfica de usuario JavaFX
  • vucsa-server  : servidor vulnerable para uso de terminales

Estructura de datos

Los mensajes transmitidos entre el servidor y el cliente tienen el siguiente formato simple:

[type][target][length][payload]
32b 32b 32b ???

Estas cuatro partes tienen el siguiente significado:

  • type  : tipo del mensaje (utilizado para serialización/deserialización)
  • target  – controlador de destino que recibirá el mensaje
  • length  – longitud de la carga útil
  • payload  : datos serializados en bytes

DESCARGA