Actualmente estoy haciendo un desafío CTF y extraje lo que supongo es la bandera inyectando una ruta relativa en el $filename
parámetro de una llamada a la función PHP.
file_get_contents($filename)
que es ejecutado por un servidor Apache en el sistema de destino.
Obtuve el nombre del archivo en el que estaba oculta la bandera a través de una pista en algún otro punto, pero me preguntaba:
¿Existe algún archivo comúnmente presente en un sistema Linux que contenga información sobre la estructura de directorios y los archivos contenidos en estos directorios?
Intenté buscar en varios archivos de registro para encontrar referencias a archivos interesantes, pero todavía tengo que encontrar una lista detallada de nombres de archivos. Tampoco tengo permiso para leer archivos completos del dispositivo. Tengo control total sobre el $filename
parámetro, pero según tengo entendido, solo puedo insertar rutas absolutas o relativas sin comodines allí.
Respuesta1
El locate
comando, que está instalado en la mayoría de las máquinas Linux, obtiene su información de una base de datos que contiene todas las rutas del sistema. Un trabajo cron mantiene esta base de datos.
Hay implementaciones en competencia locate
y probablemente ideas en competencia sobre dónde debería estar la base de datos, por lo que es posible que tenga que buscar algunas versiones para encontrar todos los lugares donde podría estar escondida. (¡Si ya estuvieras en la máquina, podrías hacerlo locate locatedb
!)
En mi máquina Debian es/var/cache/locate/locatedb
Respuesta2
Parece que estás preguntando sobre los inodos y el superbloque. Ver:http://www.linfo.org/superblockyen.wikipedia.org/wiki/Inode
Los sistemas de archivos no necesitan un "archivo maestro" para realizar un seguimiento de todos los archivos y directorios que contienen, per se. Entonces yo diría que no, no hay"archivo que comúnmente está presente en un sistema Linux y que contiene información sobre la estructura de directorios y los archivos contenidos en estos directorios".
Sin embargo, mediante el uso de inodos y el superbloque, los sistemas de archivos realizan un seguimiento de todos los archivos y directorios. Pero de forma distribuida y no centralizada.