pikachu gama -Unsafe FileDownload / FileUpload descarga de archivos inseguros y la vulnerabilidad de subida

En primer lugar, descargar archivos no seguros

1. Concepto

 

Visión general de descarga de archivos inseguros
función de descarga de archivos aparecerá en muchos sistemas web, generalmente cuando se hace clic en el enlace de descarga, se enviará una solicitud de descarga a un segundo plano, esta solicitud contendrá normalmente el nombre de un archivo para ser descargado, entre bastidores después de recibir la solicitud después de la reunión comenzó el código de descarga, el nombre de archivo del archivo correspondiente a la respuesta del navegador para completar la descarga. Si el nombre de archivo entre bastidores después de recibir la solicitud, se descargará el archivo directamente en la lucha en el camino de su seguridad sin juicio, entonces podría conducir a la vulnerabilidad insegura descarga de archivos.
En este momento, si no se espera que un programa para presentar la atacante nombre del archivo, sino un camino cuidadosamente construida (como ../../../etc/passwd), lo más probable es que el archivo especificado directamente descarga. Lo que resulta en una información de fondo sensibles (archivos de contraseña, código fuente, etc.) se descarga.
Por lo tanto, en la función de descarga de archivos de diseño, si el archivo descargado se pasa por el gol llegó en la parte delantera, a continuación, el archivo debe ser aprobada en las consideraciones de seguridad. Recuerde: Toda la interacción de datos y front-end no es seguro y no puede tomarse a la ligera!
Puede "archivos no seguros de descarga" sección de prueba correspondiente, a una mejor comprensión de la vulnerabilidad.

 

2.Unsafe FileDownload

 

 Seleccionamos el derecho abierto en una nueva pestaña en el nombre del hipervínculo

 

 fuente de observación encontró sin ninguna seguridad, directamente para obtener la descarga de concatenación de cadenas

Construimos una URL para descargar el archivo

../../../password.txt

De hecho, se trata de un documento que he creado, y con el fin de facilitar la presentación para optar por descargarlo.

 

 

En segundo lugar, la carga de archivos inseguros

1. Concepto

 

Descripción general de la vulnerabilidad de carga de archivos inseguros
función de carga de archivos son comunes en las aplicaciones web, como muchos sitios registrados cuando la necesidad de la subida de imágenes, archivos adjuntos de carga, y así sucesivamente. Cuando el usuario hace clic en el botón Subir, el fondo va a cargar el archivo para determinar si tal es el tipo especificado, extensión, tamaño, etc., y luego cambiar el nombre del directorio después de almacenamiento de acuerdo con el diseño del formato especificado. Si el fondo de los archivos cargados sin ningún juicio o criterio sobre el estado de seguridad no es lo suficientemente estrictas, un atacante podría cargar un archivo malicioso, como una palabra de Troya, causando servidor back-end es WebShell.
Por lo tanto, al diseñar una función de carga de archivos, asegúrese de archivo de seguridad estricta en el pasado. Por ejemplo:
- Verificar el tipo de archivo, extensión, tamaño;
- documentos de verificación de carga;
- el archivo determinado cambio de nombre compleja;
- No exponga el camino después de la carga de archivos;
- y así sucesivamente ...

 

2. El cliente no pasa por el cheque del cliente

 

 

 

<Script> 
    función checkFileExt (filename) 
    { 
        var = En la bandera en false; // estado 
        var ARR = [ "JPG", "PNG", "GIF"]; 
        // eliminar extensión de carga de 
        índice var = filename.lastIndexOf ( " . "); 
        EXT var = filename.substr (+ índice 1);. 
        // comparación 
        for (var i = 0; I <arr.Length; i ++) 
        { 
            IF (EXT == ARR [I]) 
            { 
                En Flag = true; // Una vez que la encontró adecuada, salga inmediatamente del bucle 
                PAUSA; 
            } 
        } 
        // condicional 
        IF (bandera!) 
        { 
            alert ( "carga de archivos no cumple con los requisitos, por favor, vuelva a seleccionar!"); 
            location.reload (true);
        }
    }
</ Script>

  Ya sea checkFileExt aquí () es para determinar el archivo subido es un formato de imagen, si no el cuadro de diálogo emergente.

Utilizamos Inspeccionar elemento se eliminará a cabo

 

 

 A continuación, cargar nuestro fichero de Troya palabra

 

 

 A continuación, podemos utilizar un cuchillo de cocina o una estructura conectada a url

Ejemplo de URL:

http://127.0.0.1/pikachu-master/vul/unsafeupload/uploads/yijuhua.php/?czs=ipconfig 

3. El tipo MIME del servidor

 

 

 

 

 

 

If (isset ($ _ POST [ 'Enviar'])) { 
// var_dump ($ _ los archivos); 
    $ MIME = array ( 'Imagen / JPG', 'image / jpeg', 'image / png'); // especificada MIME escribir, tipo MIME aquí sólo para hacer juicio. 
    $ Save_path = 'subidos'; // crear un directorio especificado en el directorio actual 
    $ carga = upload_sick ( 'uploadfile' , $ mimo, $ save_path); // llamar a la función 
    IF ($ Subir [ 'retorno']) { 
        $ HTML. = "<p class = 'aviso '> archivo subido correctamente </ p> <p class = 'aviso'> ruta del archivo guardado: {$ Subir [ 'new_path']} </ P>"; 
    } else {el 
        $ . HTML = "<P class = Aviso> {$ Subir [ 'error']} </ P>"; 
    } 
}

  

 

 

 

 

 Sube el formato de archivo correcto, usar paquetes de captura burpsuite

 

 

 Sube una palabra de Troya

 

 

 Leemos los periódicos y encontramos una palabra troyano ha subido un éxito

 

 A continuación, podemos utilizar un cuchillo de cocina o URL para conectarse.

http://192.168.233.138/pikachu-master/vul/unsafeupload/uploads/1.php/?czs=ipconfig

4.getimagesize

 

 

  Getimagesize () devuelve el resultado tiene el tamaño de archivo y tipo de archivo, si el uso de esta función para obtener el tipo de juzgar si la imagen, no habrá problemas.

El fondo será comparada según varios ex formato hexadecimal a subir fotos, el primer pocos se fijan en línea con la imagen es realmente, png: 8950 4e47 

Preparamos una imagen normal y un archivo php que contiene código malicioso

 Introduzca un comando cmd

copia / b 1.png + 1.php yi.png

 Después de una buena producción puede subir una vía de retorno con éxito

 http: //localhost/pikachu-master/vul/fileinclude/fi_local.php archivo = .. / .. / unsafeupload / uploads / 2020/03/31 / 5349015e830f4b00004846209034.png y publica =% E6% 8F% 90% E4% de BA % A4% E6% 9F% A5% E8% AF% A2

Supongo que te gusta

Origin www.cnblogs.com/c1047509362/p/12635250.html
Recomendado
Clasificación