Pages

Ads 468x60px

martes, 2 de agosto de 2016

Hacking desde 0. Hoy, file Inclusion (high level)



De nuevo una entrada más de la serie Hacking desde 0. En este caso vamos directos al nivel alto de la vulnerabilidad "file inclusion". En este enlace tenéis un ejemplo (que casualmente coincide con el nivel básico de DVWA) en el que podéis leer a cerca de la vulnerabilidad.

Vamos directos al curro.
Si probamos la idea que nos sugiere la gente de OWASP, nos daremos cuenta del funcionamiento de la aplicación y del filtrado de este nivel.


Nos encontramos de primeras con esta pantalla.



Si pinchamos en cada uno de los enlaces obtenemos (por orden) lo siguiente.



Si nos fijamos, en todas las imágenes tenemos algo en común, y es el parámetro en la URL ?page=fileX.php. Así que ahí será donde ataquemos.
Como decía, si probásemos la idea de la gente de OWASP vemos lo siguiente.



Obviamente, nos dice que el archivo no lo encuentra, y es que el filtrado está trabajando. Antes de mirar el código con "View Source" ya me imagino lo que está pasando. Seguramente nos están filtrando los caracteres ../../ o ..\..\ o ambos. Vamos a probar lo siguiente más lógico (aunque ya me imagino que tampoco va a funcionar) que es "URLencodear" los caracteres ../../ de manera que pasamos ..%2F..%2F..%2F..%2F en su lugar.




Como suponía, no funciona, e incluso si lo pasásemos a hexadecimal o cualquier otro tipo de codificación, casi seguro que no funcionaría. Vamos a ser más prácticos y a cambiar totalmente de tercio. Vamos a pedirle con "file" el archivo que queremos obtener, de la siguiente manera.

     ?page=file:///etc/passwd



Pues ahí lo tenemos, el resultado esperado. Hemos bypaseado el filtro y obtenido lo que queríamos, así que, hemos pasado el nivel.

<?php// The page we wish to display $file $_GET'page' ];// Input validation if( !fnmatch"file*"$file ) && $file != "include.php" ) {
    
// This isn't the page we want!
    
echo "ERROR: File not found!";
    exit;
}
?> 


Ese es el código del nivel "high".


Roberto García (@1GbDeInfo)
Creative Commons Licence
1Gb De informacion by Roberto García Amoriz is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.
Based on a work at http://www.1gbdeinformacion.com/.
Permissions beyond the scope of this license may be available at http://www.1gbdeinformacion.com/.

Perfil profesional en Linkedin

 
Blogger Templates