seguridad web 101
  • Introducción
  • XSS
    • Reflejado
    • Almacenado
    • Dom
    • Código correcto
  • SQLi
    • SQLi Union
    • Blind SQLi
    • Código correcto
  • Command injection
    • Código Correcto
  • File Inclusion
    • LFI
    • RFI
    • Código Correcto
  • File Upload
    • Código correcto
  • CSP
Powered by GitBook
On this page
  • Bajo
  • Medio
  • Alto
  1. File Inclusion

LFI

PreviousFile InclusionNextRFI

Last updated 6 years ago

Bajo

Como dicho ataque consiste en poder cargar archivos locales, podemos ir a la url principal y buscar el robots.txt para las pruebas, si existe lo que tenemos que hacer es averiguar donde esta, esto lo hacemos entrando y saliendo de los directorios, por lo que si ponemos el siguiente codigo

../../robots.txt

Podemos observar que carga el fichero con los permisos para los robots.

Ahora lo que tenemos que hacer es seguir buscando los diferentes niveles de carpetas hasta llegar a información interesante como el /etc/passwd

../../../../../etc/paswd

Medio

Cambiamos el nivel y si volvemos a probar la ruta de robots, vemos que esta vez no funciona

Si nos fijamos en el código , vemos que hace una sustitución con str_replace no dejándonos usar el ../ para movernos por los directorios

$file = str_replace( array( "../", "..\"" ), "", $file );

Pero como str_replace no es recursivo, podemos jugar con ello cambiando los el movimiento de carpetas por esto

....//

Lo que sucederá es que se eliminara el ../ dejando el que lo envuelve en su lugar, volviendo a funcionar el ataque.

Alto

Vamos con el ultimo nivel, volvemos a probar los ataques de antes

Y como vemos no nos funcionan ninguno de los dos, al fijarnos en el código

if( !fnmatch( "file*", $file ) && $file != "include.php" ) {
    // This isn't the page we want!
    echo "ERROR: File not found!";
    exit;
}

vemos que usa la función fnmatch para comprobar si en la ruta existe la palabra file, por lo que podemos usar file:// que da acceso al sistema de ficheros local en php y contiene la palabra file

file:///var/www/html/robots.txt
file:///etc/passwd