¿Inyección de byte nulo en PHP?

2

¿Es posible realizar una inyección de bytes nulos en el código PHP? Y, ¿cómo se vería el código vulnerable? ¿Podría darme algunos ejemplos, ya que me di cuenta de que:

<?php

echo $_GET['get'];

No hará que el código sea vulnerable. Quiero saber cuáles son las posibles fallas de seguridad en el código que pueden causar este tipo de vulnerabilidad, si es posible. Cualquier ejemplo sería apreciado y útil. Gracias.

    
pregunta black_hat_cat 06.01.2014 - 23:51
fuente

2 respuestas

4

La inyección de bytes nulos en PHP se refiere a cómo se manejan los bytes nulos en las operaciones del sistema de archivos. Si un atacante puede inyectar un byte nulo en una ruta de archivo, la función C subyacente ignorará cualquier cosa después del carácter malicioso. Se puede usar para evitar restricciones como la extensión del archivo deseado.

El siguiente ejemplo es de php.net:

<?php
$file = $_GET['file']; // "../../etc/passwd
<?php
$file = $_GET['file']; // "../../etc/passwd%pre%"
if (file_exists('/home/wwwrun/'.$file.'.php')) {
    // file_exists will return true as the file /home/wwwrun/../../etc/passwd exists
    include '/home/wwwrun/'.$file.'.php';
    // the file /etc/passwd will be included
}
?>
" if (file_exists('/home/wwwrun/'.$file.'.php')) { // file_exists will return true as the file /home/wwwrun/../../etc/passwd exists include '/home/wwwrun/'.$file.'.php'; // the file /etc/passwd will be included } ?>

enlace

En este caso, la extensión '.php' se ignorará durante las operaciones del archivo si el usuario envía un carácter nulo al final del parámetro del archivo. Combinado con una cadena transversal de directorio, permite al atacante "incluir" archivos arbitrarios que se divulgarán.

    
respondido por el itscooper 07.01.2014 - 01:06
fuente
3

Esta información solo es relevante para versiones anteriores (no compatibles) de PHP.

La inyección de bytes nulos se ha corregido en PHP 5.3.4 (que en sí mismo ya es una versión PHP antigua y no compatible): enlace .

    
respondido por el Boy Baukema 09.12.2014 - 22:23
fuente

Lea otras preguntas en las etiquetas