¿Los archivos de registro son ejecutables?

1

Como principiante en el proyecto de investigación de seguridad, me topé con la inyección de registros y mi pregunta es acerca de los archivos de inyección de registros. ¿Los archivos de inyección de registro son ejecutables? Si no, ¿cómo se ejecutan / ejecutan los códigos / archivos maliciosos que se cargan en ellos, si existe la vulnerabilidad de la inyección de registro?

    
pregunta Hrishikesh D Kakkad 17.11.2018 - 08:39
fuente

2 respuestas

2

Al leer tu pregunta, creo que estás hablando de ataques de envenenamiento de registros.

Por ejemplo, si ha descubierto una vulnerabilidad llamada inclusión de archivos locales (LFI), podría ser posible envenenar los registros que podrían resultar en la ejecución del código a través del envenenamiento de registros.

Déjame darte algunos detalles más mostrando un código (muy incorrecto):

<?php
  if (isset($_GET['file'])) {
     include($_GET['file']);
  }
?>

Este archivo de código incluye cualquier archivo, lo ejecuta y lo muestra en el navegador del usuario. Ahora supongamos por un momento que PHP open_basedir * no está configurado.

https://www.somedomain.tld/index.php?file=contact.php

Ahora, esto cargaría el archivo contact.php que se encuentra en el mismo directorio donde se encuentran las páginas web.

Ahora cambiando el nombre del archivo a algo como esto:

https://www.somedomain.tld/index.php?file=../../../../../var/log/nginx/access_log

En este escenario, supongamos que el archivo de registro se carga y se muestra en el navegador del usuario. En este caso, ya es lo suficientemente malo porque básicamente puede cargar cualquier archivo al que el usuario www tenga acceso de lectura.

Envenenamiento del registro

Ahora inyectemos algo de código PHP en el archivo de registro. Esto se puede lograr haciendo algo como esto:

https://www.somedomain.tld/index.php?file=<?php echo phpinfo(); ?>

Ya que esta es una solicitud HTTP GET, esto terminará en el archivo de registro. Esta etapa se llama envenenamiento de archivos de registro. Aunque la solicitud anterior probablemente mostrará un error, al volver a leer el archivo de registro del servidor web, se ejecutará el código.

Ejecución de código

Dado que el archivo de registro del servidor web está envenenado con el código PHP previamente inyectado, pero al cargar el archivo de registro del servidor web ocurrirá lo siguiente:

  1. PHP lee el archivo de registro.
  2. PHP detecta el código PHP en el archivo de registro.
  3. PHP analizará el código PHP y analizará su salida en el navegador del usuario, mostrando la información de PHP.

A dónde ir desde aquí

Usa tu imaginación a dónde ir desde aquí. Sin embargo, aquí hay algunas cosas que vienen a la mente:

  1. Pruebe exec , passthru para ver si puede ejecutar comandos (hay una diferencia entre el código y la ejecución de comandos)
  2. Use el comando wget para descargar un shell web o un shell inverso.

Para resumir las cosas:

  1. Los archivos de registro no tienen (no deberían) tener establecido el bit ejecutable.
  2. El acceso de lectura a los archivos de registro es suficiente para ejecutar el código una vez que están envenenados (esto requiere LFI)
  3. Los registros del servidor web no son los únicos archivos de registro que pueden envenenarse, y el correo electrónico también puede hacer el truco.

    • = open_basedir es una restricción de directorio en PHP. Cuando se establece, solo se pueden leer los archivos dentro de la ruta de acceso de open_basedir.
respondido por el Jeroen - IT Nerdbox 17.11.2018 - 09:55
fuente
1

No hay "archivos de inyección de registro" . El registro se puede hacer en archivos y los registros inyectados terminarán también en los archivos. La ejecución solo se implementa si alguien ejecuta código basado en datos en los archivos de registro al asumir que estos datos son confiables. No se trata de ejecutar los archivos de registro en sí.

Para obtener más información, consulte OWASP: Inyección de registro .

    
respondido por el Steffen Ullrich 17.11.2018 - 08:59
fuente

Lea otras preguntas en las etiquetas