Vida de un Programador

Experiencias, ideas y programas

Formas de ejecutar código PHP

PHP contiene un mecanismo útil, la ejecución de código PHP dinámicamente.

Puedes crear código mientras se ejecuta PHP y añadirlo. Pero, aparte de usos benignas, esto también se puede utilizar de formas malignas para crear una puerta trasera oculta.

A continuación veremos las distintas formas que he encontrado de ejecutar código, unas mas conocidas, pero otra menos.

  • eval(): Es la mas conocida, el argumento que se le da es el código a ejecutar
  • preg_replace(): A traves del modificador “/e”, se puede evaluar el resultado del reemplazo directamente.
  • create_function(): Con esto se puede crear una función (con codigo) asignada a una variable (funciones lambda, anónimas); y entonces llamarla poniendo () al final de la variable con la que se creo.
  • runkit_function_add(): Al igual que create_function(), pero tiene otro nombre y es parte de una extension no muy común.
  • assert(): Funciona EXACTAMENTE igual que eval(), excepto que devuelve un valor booleano. No es muy conocida, pero es igual de “peligrosa” que el resto.
  • include() y require(): Se puede crear un archivo temporal con el codigo y llamarlo con estas funciones. Al ser demasiado comunes, se dificulta la deteccion

ATENCION!
Estas funciones pueden ocultarse utilizando variables para su llamada.
Ejemplo con preg_replace()

$hid = "preg"."_"."replace";
$hid("//e", "", "phpinfo();");

Esto llamaria a phpinfo(), por lo que buscar simplemente nombres de funciones no serviria en algunos casos, lo mejor es mirar a mano.

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: