¿Impedir la mejor práctica en el cruce de caminos?

0

Script:

header("Content-type: text/css; charset: UTF-8");

$var = $_GET['var'];
$var = str_replace(array('/', '../'), array('', ''), $var);

echo file_get_contents($var);

¿Es posible explotar Path Traversal sin usar barra diagonal?

En otras palabras, ¿este código sería suficiente para evitar el paso de ruta?

$var = str_replace(array('/', '../'), array('', ''), $var);
  • En caso afirmativo:

    1. ¿Qué pasa con la barra inclinada hacia atrás? ¿Es seguro?
    2. ¿La doble codificación y la codificación hexadecimal afectarán eso?
  • Si no:

    1. ¿Cómo calificaría su impacto?
    2. ¿Cuál es su sugerencia para una mejor solución?
  

PS: Sistema operativo: Linux

    
pregunta Abdelhafidh Belalia 29.06.2017 - 00:05
fuente

1 respuesta

-1

Editado: Si Realmente no entendí el punto de la pregunta, lamento eso. El filtrado de barra diagonal hacia adelante evitará el LFI en Linux, pero no en los servidores basados en Windows. Y LFI puede llevar a RCE. Lo hice muchas veces, pero es otro argumento.

Así que estás seguro si estás usando Linux como dijiste, pero si alguien usó tu script en Windows, se puede omitir fácilmente con (..) barra diagonal.

El truco y el hexadecimal de codificación doble no funcionarán en esta situación, ya que muestra el archivo después del filtrado.

Eso es todo lo que sé.

    
respondido por el Abdullah Hussam 29.06.2017 - 17:10
fuente

Lea otras preguntas en las etiquetas