Last updated
Last updated
Si nosotros por ejemplo tenemos este codigo de PHP
como una pagina por ejemplo:
index.php
Vemos que no valida la entrada que se serializa
y la deserializa
lo que venga de forma insegura, ya que no tiene ninguna medida de seguridad como por ejemplo una implementacion de JWT
, si entramos a esta pagina veremos lo siguiente:
El usuario por defecto sera el siguiente:
Ingresamos las credenciales y abriremos BurpSuite
para recargar la pagina con la sesion iniciada del usuario user
y veremos lo siguiente en la peticion con BurpSuite
:
Peticion de BurpSuite
Vemos que la serializacion
esta en session=
por lo que tendremos que reemplazar su contenido, por otro codigo serializado
con el comando que queramos ejecutar.
Nos crearemos un script en bash
para generar codigos serializados
:
exploitSerial.sh
Ahora lo ejecutaremos de la siguiente forma:
Info:
Ahora este resultado tendremos que pegarlo en la peticion donde session=
quedando de la siguiente forma:
Ahora si enviamos la peticion
veremos lo siguiente en la pagina:
Vemos que algo ha sido modificado, por lo que podemos deducir que si ha funcionado correctamente.
Vamos a irnos al servidor para comprobar que ha funcionado la deserializacion
y que se ha ejecutado de forma correcta en el servidor:
Vemos que ha funcionado, por lo que podremos generar payloads
y ejecutar codigo de forma remota.