Unrestricted file upload

Descripción

Las vulnerabilidades de carga de archivos sin restrincciones ocurren cuando se permite a los usuarios subir archivos a su aplicación sin validar suficientemente cosas como su nombre, extensión, tipo, contenido o tamaño. Si no se aplican correctamente las restricciones, podría significar que incluso una función básica de carga de imágenes se pueda usar para cargar archivos arbitrarios y potencialmente peligrosos. Esto podría incluso incluir archivos de script del lado del servidor que permitan la ejecución remota de código.

Clasificación

Tipo
Valor

OWASP Top 10 2017

A6:2017 - Security Misconfiguration

OWASP Top 10 2021

A5:2021 - Security Misconfiguration

Common Weakness Enumeration (CWE)

Impacto

El impacto puede cambiar según el contexto de la vulnerabilidad.

Recomendaciones

Incorporar validaciones de nombre, extensión, tipo (Content-Type), contenido (MIME-Type), tamaño y análisis/escaneo (sandbox) para el proceso de carga de archivos en la aplicación.

  • Establezca un límite de longitud para el nombre de archivo. Restrinja los caracteres permitidos.

  • Asegúrese que el nombre del archivo no contenga caracteres especiales y subcadenas que puedan interpretarse como un directorio o una secuencia transversal (../).

  • Compruebe el nombre del archivo con una lista negra de extensiones prohibidas.

  • Verifique la extensión del archivo con una lista blanca de extensiones permitidas. Solo admita extensiones seguras y necesarias para la funcionalidad del comercio/negocio.

  • Valide el tipo y contenido del archivo, no confíe en el encabezado de tipo de contenido (Content-Type), ya que puede ser falsificado.

  • Establezca un límite de tamaño de archivo para evitar ataques de denegación de servicio en el espacio de almacenamiento u otras funciones de la aplicación.

  • No revele el directorio o ubicación de cargas y no proporcione acceso directo al archivo cargado. Siempre oculte el directorio de carga de los usuarios finales y solo permita descargar los archivos a través de una página de descarga.

  • Aleatorizar los nombres de los archivos cargados y almacene sus nombres originales "sanitizados".

  • La carga de archivos solo debe ser accesible para usuarios autenticados y autorizados.

  • Almacene los archivos en un host diferente, lo que permite una segregación completa de funciones entre la aplicación que atiende al usuario y el host que maneja las cargas de archivos y su almacenamiento.

  • El directorio o lugar de almacenamiento de los archivos no debe tener ningún permiso de "ejecución".

  • Analicé y escaneé (sandbox) los archivos en busca de malware o cadenas maliciosas.

  • Utilice un Web Application Firewall (WAF) como una capa secundaria de protección.

Referencias

Última actualización

¿Te fue útil?