🍿Laboratorio: Inyección arbitraria de objetos en PHP

A veces puedes leer código fuente al agregar un tilde (~) a un nombre de archivo para recuperar un archivo de copia de seguridad generado por editor archivo.txt~
Tendremos que inyectar un objeto malicioso que llame a un método de la clase para eliminar directorios o archivos y ese es el que tomaremos en cuenta, será un método magico.
Aqui ya por ejemplo podemos ver en el DOM un comentario que hace referencia a un código PHP →


Vemos que no muestra nada, pero si le añadimos el signo virgulilla ~ nos muestra la copia de seguridad que hace el editor de código →

Info importante warning ⚠️

__destruct: → Método Magico Este método se llama cuando un objeto está a punto de ser destruido o cuando el script termina. Se utiliza típicamente para tareas de limpieza, como cerrar manejadores de archivos o conexiones a bases de datos.
Destructor (__destruct()):
Este método se ejecuta al destruir la instancia de la clase. Verifica si el archivo de bloqueo existe y lo elimina con
unlink($this->lock_file_path).Cookie:
Algo importante que me pasó:
Toda la tarde estuvo intentando inyectar el objeto arbitrario con toda la estructura de la cookie de session porque bajo la logica mía era: “si ingrese como wiener, le voy a inyectar a la estructura de la cookie el object”, sin embargo así no fue como me funcionó, totalmente opuesto luego de ver en el laboratorio bastaba simplemente con enviar literalmente solo la estructura del objeto inyectado de la clase CustomTemplatepara poder comprender y eliminar el archivo morale.txt
Efectivamente encodeando a base64 y luego a url.

con esto queda de moraleja que la inserialización insegura no siempre se debe seguir al margen la cookie de session a veces podemos saltarnos las reglas para hacer algo un tanto diferente y no morir en el intento.

Eso es todo, gracias por leerme, si te gustó no olvides seguirme en Twitter/X como @pwnedrar_ :)
Last updated