
Automatizar JWT Exploit (CVE-2018-0114)
Creé esta herramienta con fines educativos y para automatizar el secuestro de tokens JWT sin depender del uso de BurpSuite. El código está bien documentado y es fácil de seguir. Basado en (CVE-2018-0114). La vulnerabilidad ocurre porque en el backend, el servidor verifica el objeto jwk incrustado dentro del encabezado JWT; este contiene 'n' y 'e', que son dos parámetros utilizados para formar la clave pública.
1) Un atacante genera un nuevo PAR DE CLAVES RSA,
2) Obtiene 'n' y 'e' y los inyecta dentro del objeto jwk en los encabezados JWT
3) Cambia cualquier valor en la sección del cuerpo del JWT y lo firma con su clave privada
4) El servidor utiliza la clave pública del atacante para verificar la firma.
5) He creado una función de verificación para asegurarme de que el JWT se haya explotado correctamente o no, intentando decodificarlo usando la clave pública del atacante ('n' y 'e').
1) Sobrescribe el valor de la variable "jwt_original" en la línea 125 con el nuevo JWT vulnerable
2) Agrega cualquier atributo que desees cambiar dentro del objeto de diccionario "dict_values" en la línea 126
3) Disfruta