Vulnerabilidades de descarga de archivos en pruebas de penetración

Vulnerabilidad de descarga de archivos

teoría:

1. Debido a necesidades comerciales, algunos sitios web a menudo necesitan proporcionar funciones de visualización o descarga de archivos, pero si no existen restricciones sobre los archivos que los usuarios pueden ver o descargar, los usuarios malintencionados pueden ver o descargar cualquier archivo confidencial. Este es el archivo visualización y descarga de vulnerabilidades.

2. Método de uso:
formulario de enlace general:
download.php?
Path = down.php? File =
data.php? File =
download.php? Filename =

O incluya parámetros:
& Src =
& Inputfile =
& Filepath =
& Path =
& Data =

Al encontrar una descarga de archivo arbitraria, nuestras ideas de uso general:

(1) Descargue archivos de configuración convencionales, como: ssh, weblogic, ftp, mysql y otras configuraciones relacionadas

(2) Descargue varios archivos .log, busque algunas direcciones de back-end, puntos de carga de archivos, etc., si tiene suerte, obtendrá algunas puertas traseras de los predecesores.

(3) Descargue archivos comerciales web para la auditoría de caja blanca y use las lagunas para penetrar más en el servidor.
Intente leer /root/.bash_history para ver si tiene privilegios de root. Que no. Solo podemos usar paso a paso ... / Saltar hacia adelante y hacia atrás para leer algunos archivos de información de configuración en .ssh, y leer archivos .bash_history en mysql. Para ver si se registra alguna información relevante que se pueda utilizar. Luego descargue los archivos de código que necesitamos auditar uno por uno, pero se vuelve muy engorroso al descargar, solo podemos intentar adivinar el directorio y luego descargar algunos registros de middleware para su análisis.

4. Si estamos en un entorno java + oracle, podemos
descargar primero el archivo /WEB-INF/classes/applicationContext.xml, aquí se registra la configuración correspondiente del servidor web, y luego descargar / WEB-INF / classes / xxx / xxx /ccc.class descompila el archivo y luego busca la palabra clave upload en el archivo para ver si hay algunas interfaces api, si existen, podemos construir la página de carga localmente y usar la interfaz api para transferir nuestros archivos a el servidor

5. Si tiene privilegios de root
, existe un comando de localización en Linux para buscar archivos o directorios, que no busca directorios específicos, sino una base de datos /var/lib/mlocate/mlocate.db. Esta base de datos contiene toda la información del archivo local. El sistema Linux crea automáticamente esta base de datos y la actualiza automáticamente una vez al día. Cuando no sabemos cuál es la ruta, se puede decir que es un arma nuclear. Usamos la vulnerabilidad de descarga de archivos arbitrarios para descargar el archivo mlocate.db, y usamos el comando de localización para enviar los datos a un archivo, que contiene toda la información de la ruta del archivo.

Ubique el método de lectura: ubique mlocate.db admin // Puede generar todo el contenido del nombre del archivo de administración en mlocate.db

Documentos de uso común

/root/.ssh/authorized_keys
/root/.ssh/id_rsa
/root/.ssh/id_ras.keystore
/root/.ssh/known_hosts // Registra la clave pública de cada usuario que accede a la computadora
/ etc / passwd
/ etc / shadow
/ etc / my.cnf // archivo de configuración de mysql / etc /
httpd / conf / httpd.conf // archivo de configuración de apache
/root/.bash_history // archivo de registro de comando de historial de usuario
/ root / .mysql_history // registro de comando de historial de mysql file
/ proc / mounts // Registre el dispositivo de montaje del sistema / porc /
config.gz // Archivo de configuración del kernel
/ var / lib / mlocate / mlocate.db // Ruta completa del archivo
/ porc / self / cmdline // Los parámetros de cmdline de el proceso actual

Arreglo del fallo

(1) Filtre "." Para que los usuarios no puedan volver al directorio principal en la URL.

(2) Las reglas regulares juzgan estrictamente el formato de los parámetros de entrada del usuario.

(3) php.ini configura open_basedir para limitar el rango de acceso a archivos

Supongo que te gusta

Origin blog.csdn.net/weixin_45380284/article/details/108469790
Recomendado
Clasificación