Capítulo VII descargas de archivos no seguros y subidas
1. Descarga de archivos y presentación principios inseguras
demostración escena
Se puede descargar haciendo clic en el nombre, se abre en una nueva pestaña
Nos fijamos en el proceso de descarga de la URL
El ai.png este nombre se extendió a un segundo plano, el fondo para encontrar el archivo, este archivo se lee y responder a la salida de front-end, el navegador puede descargar abajo.
Descarga de archivos de vulnerabilidad, se puede usar directorio de manera transversal para hacer la prueba. El nombre introducido aquí lo suficientemente ../../../../ puede saltar al directorio raíz. Y luego hacer el directorio raíz de la lectura relevante como punto de partida.
Puede descargar este archivo
Mira el código detrás
Al hacer clic en la imagen, de hecho, se aprobó una una etiqueta mediante una etiqueta ( GET solicitudes) pasa un parámetro, y luego se pasa exedownload.php .
Para llegar al nombre del archivo, y luego empalmado directamente a la descarga de directorio, las imágenes se existen descarga , sin ningún tipo de tratamiento bajo.
Hecho después del empalme, a la fopen , leerlo, y se calcula su longitud, y luego en la cabecera en respuesta a que el extremo delantero.
Después de la cara del documento ciclo de lectura, todo el interior del flujo de bytes de lectura, como eco a la parte delantera.
El principal problema es que no hay front-end de transferencia de archivos a través de juez, no si un archivo no existe es su directorio, se lee directamente. En caso de ser aprobada en a una comprobación también es necesario definir un rango.
2. insegura cliente de carga de archivos de derivación a los principios y
demostración escena
Intenta cargar un php archivo, no
Se trata de un cuadro emergente directamente a través de la parte delantera
Buscamos limitación no se realiza por la parte delantera
Cuando la entrada de etiqueta para onChange (cambiado) y van a ir a llamar checkFileExt ()
Mira la fuente de la página
Esta función es a través de JavaScript para juzgar el contenido cargado. Esta operación de determinación se realiza por completo en el extremo frontal. Aquí se pasa por alto fácilmente. Justo antes de XSS como para conseguir librarse de longitud.
Los onChange parámetros removidos, una vez más intenta cargar
éxito
Aquí hay que saber lo que pongamos los archivos cargados en el camino
Copiamos el camino para acceder a ella
Por x para transmitir un parámetro de comando
Aquí estamos directamente de derivación del cliente restricciones carga un archivo inesperado, Sistema, PHP palabra escrita archivo de Troya, que ha subido una palabra troyano, frase por servidor back-end de control de acceso de Troya.
3. vulnerabilidad de subida de los tipos MIME principios de validación y de derivación (servidor)
Cuando el reconocimiento explorador de archivos, se le dará este archivo para definir un tipo, pero pondrá este tipo HTTP con antelación.
Usted puede obtener información del archivo.
demostración escena
Imagen cargada con éxito
Mirar el código fuente
solicitud de adquisición de la primera front-end presentado.
El punto clave es que el tipo del archivo adquirida por la función, que se define y se compara tipo.
El problema es que esta función desde el navegador del HTTP para salir adelante con el contenido del tipo , contenido del tipo es una interfaz de usuario se puede controlar. Esta adquisición no es una información fiable.
Vinimos para la captura de paquetes y cargar una palabra acerca de los archivos de Troya para la carga de imágenes
Fotos de:
Sube éxito
archivo de Troya
Este paquete de datos se envía al repetidor en
Nos tipo de contenido modificado a la imagen / png ver cómo
El éxito, a través de HTTP modificar la cabecera, sin pasar por tipo MIME restricciones. La palabra de Troya archivos subidos con éxito, que puede ser controlado a través de la participación masiva