Pregunta 1)
en PHP cuando verificamos:
dir1/dir2/../file.txt ====(this is same as)=====> dir1/file.txt
es algo así como posible:
file_get_contents('/home/path/' . $_GET['evil']. '/file.txt');
si el pirata informático configuró $evil
como:
o ../
evil_character
(quiero saber si existen reales) que hacen que PHP escape la parte derecha de PATH (sé cómo escapar de la parte izquierda del camino ), entonces, hacker accedió de esta manera:
'/home/path/'. 'eviltfile.php?$evil = '../red apple dir1/dir2/../file.txt ====(this is same as)=====> dir1/file.txt
';
$message = 'green ' . $evil. ' banana';
print($message ) ==============> red apple
'. '/file.txt'' //and thus file.txt was ignored
Pregunta 2)
Tengo otra pregunta sobre las cadenas generales (no la ruta del archivo), por lo tanto, si hay algún %code% que haga que PHP se escape de la parte izquierda o derecha de la cadena STRING, como esto:
file_get_contents('/home/path/' . $_GET['evil']. '/file.txt');
p.s. No necesitas respuestas para versiones antiguas de php.