Estoy viendo un sitio web que usa un parámetro de URL para incluir la página actual, como http://host.tld/index.php?page=about
.
Si agrego algo que no sea la página actual (por ejemplo, http://host.tld/index.php?page=test
) refleja el parámetro, se agrega con un .php
e indica que no se encontró el recurso.
Aquí reflejado XSS ya funciona, pero estoy tratando de incluir otros archivos.
Ahora, si coloco /etc/passwd
como parámetro, no encontrará el archivo /etc/passwd.php
.
He intentado agregar %00
, %2500
y
al final del parámetro, ninguno de los cuales funciona: %00
-
%2500
produce un error:Advertencia: file_exists () espera que el parámetro 1 sea una ruta válida, la cadena se encuentra en /var/www/html/index.php en la línea 69
-
"test%00.php"
refleja el parámetro (prueba) comotest
.php
.php - %code% simplemente se agrega al parámetro cuando se refleja, como %code%
El %code% no se agrega en el lado del cliente.
¿Hay alguna otra forma de explotar esto para incluir otros archivos del sistema? La respuesta del servidor indica Apache / 2.4.10 (Debian).