De descarga de archivos inseguros y de carga - descarga Principios y Caso

Principios y descarga Caso

Introducción vulnerabilidades

Algunos sitios debido a las necesidades del negocio, a menudo tienen que proporcionar documentos para ver o descargar archivos,
pero si a los usuarios ver o descargar archivos sin límite, el usuario malintencionado podrá ver o descargar los archivos sensibles,
esta es la imagen a la vista y la vulnerabilidad de descarga.

uso

forma general de enlaces

			download.php?path=
			down.php?file=
			data.php?file=
		

O contiene parámetros

&Src=
			&Inputfile=
			&Filepath=
			&Path=
			&Data=

Ideas de uso general

(1) un perfil de descarga convencional, por ejemplo: ssh, WebLogic, ftp, mysql como configuración

(2) .log descargar una variedad de documentos, desde la búsqueda de alguna dirección fondo, sitio de carga de archivos como el lugar, si tiene suerte conseguir algunos predecesores de la puerta trasera.

(3) archivos de negocios descarga web caja blanca auditorías más exploit anotó servidores. Cualquier archivo en la URL son todos los nombres de los archivos correspondientes a
intentar leer /root/.bash_history para ver si tienen privilegios de root. Si no es así. Sólo podemos utilizar ... paso a paso hacia atrás / salto adelante y hacia atrás para leer algunos archivos de configuración de ssh, archivos de lectura .bash_history en MySQL. Para ver si el registro de algunos datos que pueden ser utilizados.
Luego, uno por uno tenemos que descargar el archivo de código auditado, pero el tiempo de descarga se vuelve muy complicado, sólo podemos tratar de adivinar el directorio de la solución, y luego descargar el registro para el análisis de algunas de middleware.

Si nos encontramos con el medio ambiente es + Java de Oracle

/WEB-INF/classes/applicationContext.xml puede descargar archivos, hay un registro correspondiente en la configuración del servidor web, y luego descargar el archivo descompilar /WEB-INF/classes/xxx/xxx/ccc.class, a continuación, buscar carga de archivos palabras clave para ver si hay algunas interfaces API, si cualquier estructura de página de carga podemos usar interfaz API local a nuestro servidor de transferencia de archivos

Si tiene privilegios de root

Hay tal comando de un localice se utiliza para encontrar el archivo o directorio, que no busca un directorio específico, pero buscando un /var/lib/mlocate/mlocate.db base de datos en Linux. Esta base de datos contiene información sobre todos los periódicos locales. sistema Linux crea automáticamente la base de datos y se actualiza automáticamente una vez al día. Cuando no sabemos en qué circunstancias es el camino, esto puede decirse que es un arma nuclear, y nos aprovechamos de cualquier resquicio mlocate.db descarga de archivos de descarga de archivos, utilizando el comando de datos de salida localizar a un archivo, que contiene toda esta ruta del archivo de información .
localizar método de lectura: locate mlocate.db admin// mlocate.db se puede incluir en el nombre de archivo del administrador de contenido a la salida completa

archivo de uso común

/root/.ssh/authorized_keys
		/root/.ssh/id_rsa
		/root/.ssh/id_ras.keystore
		/root/.ssh/known_hosts //记录每个访问计算机用户的公钥
		/etc/passwd
		/etc/shadow
		/etc/my.cnf //mysql配置文件
		/etc/httpd/conf/httpd.conf //apache配置文件
		/root/.bash_history //用户历史命令记录文件
		/root/.mysql_history //mysql历史命令记录文件
		/proc/mounts //记录系统挂载设备
		/porc/config.gz //内核配置文件
		/var/lib/mlocate/mlocate.db //全文件路径
		/porc/self/cmdline //当前进程的cmdline参数
	

La razón de lagunas

Cuando el atacante clic en el enlace de descarga, se enviará una solicitud de descarga a un segundo plano, por lo general contendrá un nombre de archivo, pero no si el fondo del parámetro de nombre de archivo transmitido desde el usuario envía los cheques de filtro directamente en el archivo ejecutable para descarga, lo que resulta en un atacante puede construir arbitraria ruta del directorio de archivos, descargar cualquier archivo en cualquier camino

correcciones de errores

(1) Filtro "", para que el usuario no puede volver atrás en el directorio url matriz
(2) determinar el formato de los parámetros de entrada del usuario estrictamente regulares
open_basedir definición (3) Rango de acceso a los archivos de configuración php.ini

Publicado 80 artículos originales · ganado elogios 8 · vistas 4224

Supongo que te gusta

Origin blog.csdn.net/weixin_43079958/article/details/105353163
Recomendado
Clasificación