Las funciones del servidor pueden convertirse en vías de ataque cuando recuperan URLs suministradas por el usuario, resuelven entidades XML o confían en campos JWT sin una verificación sólida. Este curso explora SSRF, XXE y manipulación de JWT mediante ejercicios de terminal contra servicios deliberadamente vulnerables.
Pasarás de identificar cada comportamiento a demostrar su impacto: alcanzar un servicio interno, leer archivos locales, cambiar claims de tokens y recuperar un secreto de firma. El reto final encadena la divulgación XXE con la creación de un token administrativo HS256 válido para una API protegida.
Lo que aprenderás
- Identificar un parámetro que recupera URLs y verificar que el servidor realiza la solicitud saliente.
- Evadir un filtro literal de localhost con otra representación IP y alcanzar un servicio administrativo interno.
- Consultar un servicio simulado de metadatos cloud mediante SSRF e inspeccionar credenciales preparadas.
- Confirmar el análisis XML y la expansión de entidades y crear una entidad externa que lea
/etc/passwd. - Extraer un JWT, separar sus tres partes y decodificar el encabezado y los claims Base64Url.
- Falsificar un token administrativo sin firma contra una API que acepta incorrectamente el algoritmo
none. - Encadenar la divulgación XXE de un secreto con firma HS256 en Python para acceder a una flag protegida.
A quién va dirigido este curso
Este curso intermedio está dirigido a estudiantes de seguridad web que saben construir solicitudes básicas y desean estudiar límites de confianza en componentes del servidor. Es apropiado para futuros pentesters, estudiantes de seguridad de APIs y desarrolladores que buscan ejemplos de recuperación insegura de URLs, configuración de parsers XML y verificación JWT.
Requisitos previos: Manejo de terminal Linux y curl, métodos y encabezados HTTP, sintaxis básica XML y JSON, procesamiento de texto en shell y conceptos Base64, además de poder leer un script Python breve.
Entorno de aprendizaje: Una terminal Ubuntu 22.04 con aplicaciones vulnerables locales en los puertos 5000 y 8080, un servicio de metadatos simulado en 169.254.169.254:8000 y la biblioteca Python jwt. La primera comprobación SSRF pide a la aplicación local recuperar example.com; los objetivos posteriores son servicios preparados del laboratorio.
Preguntas frecuentes
¿Son reales las credenciales de metadatos cloud?
No. El endpoint y su respuesta estilo IAM son simulaciones alojadas dentro del laboratorio en el puerto 8000. Muestran la ruta de solicitud y su posible impacto sin utilizar una cuenta cloud real.
¿El laboratorio XXE utiliza Burp Suite o un proxy gráfico?
No. Crearás y editarás un archivo XML en la terminal y lo enviarás con curl. El proceso enseña la estructura de la solicitud y el comportamiento del parser sin herramienta gráfica.
¿Decodificar un JWT equivale a romper su cifrado?
No. Los encabezados y payloads JWT están codificados en Base64Url y normalmente se pueden leer; en estos laboratorios no están cifrados. La seguridad depende de verificar la firma y proteger el secreto.
¿En qué se diferencian los dos ataques JWT?
El laboratorio guiado explota un servidor que acepta erróneamente alg: none, por lo que el token no tiene firma. En el reto final, el servidor exige HS256 correctamente: primero revelas su secreto mediante XXE y después generas un token administrativo realmente firmado.





