Tabla de contenido
Rutas comunes de archivos confidenciales
Perfil de vulnerabilidad
Debido a las necesidades comerciales, algunos sitios web a menudo necesitan proporcionar funciones de visualización o descarga de archivos. En términos generales, en la función de descarga o visualización de archivos, cuando los parámetros del nombre del archivo son controlables y el sistema no filtra los parámetros estrictamente o el filtro no es estricto, puede descargar cualquier archivo en el servidor, lo que resulta en cualquier vulnerabilidad de descarga de archivos. , los piratas informáticos pueden utilizar ( ../ ) para saltar del directorio restringido del programa y descargar cualquier archivo.
causa
- Proporcionar función de descarga de archivos y aceptar variables de parámetros relacionados.
- Utilice la función que lee el archivo.
- Los parámetros relevantes no están verificados o el control no es estricto.
explotar
1. Hay puntos funcionales para la función de descarga.
2. Hackear la búsqueda en Google
- inurl:"readfile.php?file="
- inurl:"downfile.php?nombre de archivo="
Rutas comunes de archivos confidenciales
sistema windows
C:\boot.ini Ver la versión del sistema
C:\Windows\System32\inetsrv\MetaBase.xml Archivo de configuración de IIS
C:\Windows\repair\sam almacena la contraseña para la instalación inicial del sistema
C:\Archivos de programa\mysql\my.ini Mysql配置
C:\Archivos de programa\mysql\data\mysql\user.MYD Raíz de Mysql
C:\Windows\php.ini información de configuración de php
C:\Windows\win.ini Archivo de configuración del sistema Windows
sistema linux
/root/.ssh/authorized_keys archivo de clave pública
/root/.ssh/id_rsa archivo de clave privada
/root/.ssh/known_hosts registra la clave pública de cada usuario que accede a la computadora
/etc/passwd guarda toda la información del usuario en el sistema
/etc/shadow guarda la información de contraseña de todos los usuarios del sistema
/etc/my.conf archivo de configuración mysql
/etc/httpd/conf/httpd.conf Archivo de configuración de Apache
/root/.bash_history Archivo de registro de comandos del historial del terminal de usuario
/root/.mysql_history archivo de registro de comando histórico de mysql
/var/lib/mlocate/mlocate.db ruta completa del archivo
/usr/local/app/apache2/conf/httpd.conf archivo de configuración predeterminado de apache2
/usr/local/app/apache2/conf/extra/httpd-vhosts.conf configuración del sitio web virtual
/usr/local/app/php7/lib/php.ini archivos de configuración relacionados con php
/etc/php5/apache2/php.ini La ruta predeterminada del sistema ubuntu
Aplicación web
PHP
- Obtenga el archivo inc/config.php y obtenga la información de la contraseña en la cadena de conexión de la base de datos
ÁSPID
- Obtenga el archivo inc/config.asp, obtenga la contraseña de la cadena de conexión de la base de datos y obtenga la contraseña de la base de datos
aspx
- Obtenga el archivo web.config en el directorio raíz del sitio web y obtenga la información de la contraseña en la cadena de conexión de la base de datos;
- Obtenga el archivo bin/*.dll, obtenga el código fuente (código incompleto) del sitio web y utilice la herramienta reflector .NET para abrir el archivo dll compilado;
JSP
- Obtenga conf/tomcat-user.xml, obtenga la información de la contraseña de la interfaz de administración de Tomcat y cargue el paquete war getshell
- Obtenga el archivo WEB-INF/Web.xml y obtenga la información de la contraseña en la cadena de conexión de la base de datos
Método de explotación
Aunque no conocemos la ruta del sitio web, podemos usar "../.../../" para adivinar la ruta del sitio web capa por capa. El caso es el siguiente:
- descargar.php?file=../../../etc/passwd
- descargar.php?file=../../../../index.php
- descargar.php?f=file:///etc/passwd
- readfile.php?f=file:///etc/passwd
- readfile.php?file=../../../etc/contraseña
Precauciones
- Tenga en cuenta el número de ../, que representa el número de directorios principales del directorio de consulta.
- Al encontrar cualquier vulnerabilidad de descarga de archivos, debe prestar atención al problema del permiso de descarga, que puede determinar el alcance del archivo descargado.
- El método de envío de algunos sitios web es la solicitud POST, que necesita utilizar Burp suite para capturar paquetes.
- Los caracteres o letras del filtro se pueden omitir codificando
Pruebas de vulnerabilidad
1. Busque aleatoriamente un sitio web a través de Google Grammar para realizar pruebas.
2. Puede ver que el archivo passwd se descargó correctamente y se envió la plataforma de vulnerabilidad.