Falta de Verificación de la Firma del JWT
Última actualización
Última actualización
¿Crees tener lo que se necesita para ser un experto en Pentesting contra AWS? Si nuestro libro te abrió los ojos a las posibilidades de la ciberseguridad ofensiva o si ya cuentas con habilidades en este campo, es momento de subir de nivel. Te retamos a certificarte en el CPNA - Curso Profesional de Pentesting Contra AWS. No será fácil: te enfrentarás a un examen riguroso de 12 horas donde deberás hackear una infraestructura completa alojada en AWS. ¿Listo para el desafío? Acepta el reto y demuestra tu verdadero potencial.
En el mundo del desarrollo de software, la seguridad de las aplicaciones serverless ha ganado una atención significativa debido a su escalabilidad, eficiencia de costos y flexibilidad. Sin embargo, estas ventajas vienen acompañadas de nuevos desafíos y vectores de ataque que los profesionales de la seguridad deben conocer y mitigar. Uno de estos vectores se centra en la autenticación y autorización, procesos críticos que, si se manejan incorrectamente, pueden exponer las aplicaciones a vulnerabilidades significativas. En este artículo, nos sumergimos en una vulnerabilidad específica relacionada con la autenticación utilizando JWTs (JSON Web Tokens) en una aplicación serverless deliberadamente vulnerable: la Damn Vulnerable Serverless Application (DVSA).
Te recomendamos el siguiente articulo antes de continuar:
Damn Vulnerable Serverless ApplicationDVSA utiliza AWS Cognito, un servicio de Amazon que proporciona control de acceso y autenticación. Cuando un usuario inicia sesión, AWS Cognito autentica al usuario y emite un JWT. Este token se utiliza luego en el encabezado de autorización de las solicitudes HTTP para identificar y autorizar al usuario.
El núcleo de la vulnerabilidad en DVSA radica en el manejo inadecuado del JWT. Aunque el JWT contiene toda la información del usuario y se utiliza para la autorización de las solicitudes, DVSA no verifica adecuadamente la firma del JWT. Esto significa que un atacante podría modificar el contenido del JWT para alterar la información del usuario, como su identidad, sin invalidar el token.
La falta de verificación de la firma del JWT abre la puerta a varios ataques, incluyendo la suplantación de usuario (impersonation) y el elevamiento de privilegios. Un atacante podría generar un JWT modificado que los servidores de la aplicación considerarían legítimo, permitiéndole acceder a datos o realizar acciones reservadas para otros usuarios.
En el video adjunto a este artículo, ofrecemos una demostración detallada de cómo explotar esta vulnerabilidad en DVSA. A través de una serie de pasos claros, mostramos cómo un atacante podría manipular un JWT para suplantar a otro usuario y cómo se pueden enviar solicitudes a la aplicación bajo esta falsa identidad: