Hola a todos, bienvenidos una vez más a Who is secure. Esta semana seguimos con la máquina de PentesterLab "Web for pentester", en esta ocasión con el ataque de file inclusion.
File inclusion es una vulnerabilidad que usa una variable la cual controlamos para ejecutar un archivo deseado por nosotros. Por ejemplo, ese archivo podría ser /etc/passwd para intentar obtener credenciales o podríamos pasar de file inclusion a remote code execution, con lo que por ejemplo, podríamos obtener una reverse shell. Esta vulnerabilidad se divide en dos, dependiendo cada uno de los tipos de dónde provenga el archivo, remote file inclusion y local file inclusion.
Sabiendo el funcionamiento de este ataque, vamos a pasar a resolver los retos en los que mostraré el archivo passwd.
Para este reto cambiaremos el valor de page, como prueba, cambiaré el valor a "test".
Como veis, nos muestra un error ya que no existe tal archivo, pero podemos ir a la raíz con / y dentro de esta, acceder al directorio etc/ para ver el archivo passwd. Esto quedaría así:
¡Primer ejercicio resuelto! Nos muestra el archivo. Pasemos al dos.
Si abrimos el segundo reto, nos encontramos esto:
Es algo diferente, si probamos a cambiar algo, veremos qué ocurre por detrás.
Como veis, el archivo que no existe es /etc/passwd.php. Lo que ocurre es que el texto que pongamos recibirá la extensión .php al final. Necesitamos bypassear esta función.
Este ejercicio es igual que el anterior con el matiz de que es vulnerable a los null characters, este error desapareció en versiones anteriores de php, pero aquí funciona. Estos caracteres tienen como valor 0 y un ejemplo de este caracter url encoded es .
¡Completado! Y con esto terminamos los retos de file include.
Espero que os haya gustado la entrada y hayáis aprendido algo. Muchas gracias por leerme una vez más, nos vemos en la próxima publicación..
No hay comentarios:
Publicar un comentario