LFI - Omitir Preg_Replace

0

Tengo un script que tiene este código:

$name = preg_replace('/[^a-z0-9_.]/', '', $_GET['name']);

$ _GET ['name'] = ../../conf.php pero preg_replace filtró mi barra (/) y $ name será ... conf.php ¿Puedo evitarlo?

    
pregunta Salman Daryanavard 20.09.2016 - 18:08
fuente

1 respuesta

2

Probablemente no. Es un regex de lista blanca (el ^ es un no) que reemplaza cualquier cosa que no sea literalmente a-z o 0-9 o subrayado o punto con nada: lo elimina.

En realidad, es la forma recomendada de hacerlo si puedes: al ser tan restrictivo con lo que está permitido, eliminan los caracteres de control, las barras diagonales, el escape (% o &), todo lo que pueda romperlo.

Lo mejor que puedes hacer que puedo ver es "..", lo que podría hacer que abra el directorio principal y te proporcione información, pero probablemente no.

    
respondido por el crovers 20.09.2016 - 18:39
fuente

Lea otras preguntas en las etiquetas