0% encontró este documento útil (0 votos)
13 vistas13 páginas

Java Vulnerable 1

El documento detalla la realización de ejercicios de seguridad informática en un entorno llamado JavaVulnerableLab, donde se exploran vulnerabilidades como Insecure Direct Object References, Missing Function Level Access Control, Sensitive Data Exposure y Security Misconfiguration. Se describen técnicas como inyecciones SQL, manipulación de campos ocultos y la creación de páginas JSP maliciosas para demostrar las debilidades del sistema. Además, se incluyen capturas de pantalla y explicaciones sobre cómo se resolvieron cada uno de los ejercicios.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
13 vistas13 páginas

Java Vulnerable 1

El documento detalla la realización de ejercicios de seguridad informática en un entorno llamado JavaVulnerableLab, donde se exploran vulnerabilidades como Insecure Direct Object References, Missing Function Level Access Control, Sensitive Data Exposure y Security Misconfiguration. Se describen técnicas como inyecciones SQL, manipulación de campos ocultos y la creación de páginas JSP maliciosas para demostrar las debilidades del sistema. Además, se incluyen capturas de pantalla y explicaciones sobre cómo se resolvieron cada uno de los ejercicios.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

JAVA VULNERABLE LAB

Alejandro García Arias


La tarea consiste en resolver los siguientes ejercicios en la máquina
JavaVulnerableLab y entregar un documento lo más detallado posible con las
capturas de pantalla de los momentos claves y explicando como se ha resuelto
cada uno de los ejercicios.

Web > Vulnerability > A4 Insecure Direct Object References


Antes que nada, lo primero que hemos hecho es acceder como la cuenta de
administrador haciendo un sql injection del tipo ‘or 1=1 – -

• 04.A4.MV1.1. Ver los detalles de otro usuario


Y ahora podemos navegar entre las diferentes opciones que nos dan, vamos
a navegar hacia ver los detalles del usuario

2
Vemos que en la url pone id=1 simplemente con cambiar ese número
podemos acceder a los demás ids y eso significa a los demas usuarios
registrados

3
Si lo cambiamos a 2 estaríamos en la cuenta de victim
• 04.A4.MV1.2 – Cambiar email a otro usuario

Simplemente navegamos hacia cambiar el email y le damos a inspeccionar


Posteriormente buscamos el campo id y vemos que es de tipo hidden, le
cambiamos por un tipo texto para que aparezca en pantalla.

Una vez hemos cambiado el tipo de campo ya podemos cambiar el email a

4
otros usuarios, lo realizamos y posteriormente lo comprobamos en el perfil de
dicho usuario al que hemos cambiado el correo

• 04.A4.MV1.3 – Descargar el fichero passwd


Interceptamos con burpsuite al descargar un archivo y cambiamos el nombre
del archivo por ../../../../etc/passwd

Web > Vulnerability > A7 - Missing Function Level Access Control

5
• A7.MV1.1 – Bypass admin login
Intentamos una consulta sencilla: ' or '1' = '1, y vemos que la consulta se
realiza
correctamente, aunque no encuentra ningún usuario administrador sin
nombre. Como
sabemos que el nombre de usuario del administrador es "admin", ingresamos
"admin" seguido
de la consulta SQL anterior.

• A7.MV1.2 - Crear una página HTML en la web llamada [Link]

En esta página nos da la opción de añadir una página asi que simplemente creamos
un código html y lo insertamos

• A7.MV1.3 - Crear una jsp en la web con código malicioso llamada [Link], y
que escriba por ejemplo Hacked by <alumno>
Es el mismo caso que antes simplemente ahora pues es otro código en este
caso yo he hecho que al darle a un botón aparezca en rojo Hacked by
Alejandro

6
• A7.MV1.4 - Obtener un mapa de la web (forced browsing) y verificar cuántas
de estas opciones podemos ejecutar sin ser administrado
Para ello vamos a hacerlo con kali linux con gobuster
Esto ha sido el resultado final de gobuster para ver si se puede inicar sin ser
administrador no queda otra que probarlo a mano

A6 Sensitive Data Exposure

7
Web > Vulnerability > A6 Sensitive Data Exposure

• A6.MV1.1. ClearText Transmision of sensitive Information


En este caso si hay información sensible, basta con iniciar sesión y mandarlo
al burpsuite y nos dan cosas como las cookies el token y incluso las
contraseñas y el email

O incluso en el propio perfil podemos ver información que no se debería


mostrar como la trajeta de credito o incluso el cvv y recordemos que
podemos cambiar de usuario sin problema asi que esto es un problema grave
de seguridad

• A6.MV1.2. Obtener los datos de las tarjetas de crédito


Tan solo tenemos que cambiar en my profile o en burpsuite y sale las tarjetas
de creditos con todos los datos incluso el cvv simplemente tenemos que

8
cambiar el id=

• A6.MV1.3 - Obtener la password de los usuarios


Para obtener las contraseñas del usuario vamos a intentar saltarnos las preguntas
con una inyeccion de sql poniendo el nombre del usuario que queramos y despues
ponemos la inyeccion

A5 Security Misconfiguration

Web > Vulnerability > A5 Security Misconfigurationç

• A5.MV1.1.- Obtener la URL de conexión a la base de datos


La url de conexion de la base de datos
Simplemente sale aquí

• A5.MV1.2.- Acceder con la cuenta de administrador

• A5.MV1.3.- Eliminar una base de datos

Simplemente al crear una base de datos se elimina la anterior

9
• A5.MV1.4.- Cambiar la cuenta de administrador
Estaba trabajando en Java Vulnerable Lab y descubrí que el usuario
administrador tiene la capacidad de crear nuevas páginas .jsp a través de
una funcionalidad llamada "Add Page". Esto me hizo pensar que, al poder
subir código JSP personalizado, sería posible ejecutar comandos desde el
servidor, ya que JSP se interpreta del lado del servidor.

Para hacerlo, usé la ayuda de ChatGPT, que me proporcionó un archivo .jsp


capaz de:

Conectarse internamente a la base de datos del sistema.

Ejecutar consultas SQL que yo escribiera desde un formulario web.

Mostrar resultados directamente en la página.

Y permitir acciones como visualizar tablas o modificar datos.

10
Ahora simplemente actualizamos y le ponemos privilegios de admin a la
cuenta que queramos

• A5.MV1.5.- Obtener la versión del contenedor web y el nombre de la tabla


donde se almacenan los temas del foro

Para obtener la versión hemos creado una página .jsp de nuevo para ver que
version tiene con ayuda de chatgpt

En la página que he creado antes podemos ir tabla por tabla buscando donde
se almacenan los temas

11
En este caso es la tabla posts donde se encuentran los temas del foro

• A5.MV1.6.- Crear una página de error por defecto, que muestre un mensaje
genérico sin dar detalles técnicos del error

He creado un html y de nuevo con el panel de administración del admin pues lo he


añadido como una página nueva

12
13

También podría gustarte