Ataques Web del Lado del Servidor

Ataques Web del Lado del Servidor. Aborda vulnerabilidades avanzadas del lado del servidor, incluyendo SSRF, XXE y manipulación de JWT. Aprende a encadenar fallos para leer archivos confidenciales y falsificar tokens administrativos.

Cybersecurity EngineerCiberseguridad

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

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.

Profesor

labby
Labby
Labby is the LabEx teacher.