> For the complete documentation index, see [llms.txt](https://beafn28.gitbook.io/beafn28/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://beafn28.gitbook.io/beafn28/web-security/laboratorios-portswigger/jwt.md).

# JWT

## Lab: JWT authentication bypass via unverified signature

### Enunciado

Este laboratorio utiliza un mecanismo basado en JWT para gestionar las sesiones. Debido a fallos en la implementación, el servidor no verifica la firma de los JWT que recibe. Modifica tu token de sesión para obtener acceso al panel de administración en `/admin`, y luego elimina al usuario carlos.

Puedes iniciar sesión en tu propia cuenta con las siguientes credenciales:

* **Usuario:** `wiener`
* **Contraseña:** `peter`

### Resolución

Vemos la petición y las partes del JWT.

<figure><img src="/files/qiuGWigeHT3xhyPySqGa" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/fzBXPzsjAelkvTfv3kkI" alt=""><figcaption></figcaption></figure>

Vamos a inteptar el tráfico y cambiamos al usuario administrator.

<figure><img src="/files/iQJsDSk6Su6pgIrPVOjr" alt=""><figcaption></figcaption></figure>

Lo mismo hacemos con ese cambio para eliminarlo.

<figure><img src="/files/eiCUg4pmtWf3FRA1M9en" alt=""><figcaption></figcaption></figure>

## Lab: JWT authentication bypass via flawed signature verification

### Enunciado

Este laboratorio utiliza un mecanismo basado en JWT para gestionar las sesiones. El servidor está configurado de forma insegura para aceptar JWT sin firma. Modifica tu token de sesión para obtener acceso al panel de administración en `/admin` y luego elimina al usuario carlos.

Puedes iniciar sesión en tu propia cuenta con las siguientes credenciales:

* **Usuario:** `wiener`
* **Contraseña:** `peter`

### Resolución

Nos logueamos e interceptamos en **/admin**.

<figure><img src="/files/LPgQ1gilA4oaLfVU7Dw6" alt=""><figcaption></figcaption></figure>

No nos deja hacer lo del anterior laboratorio. Volvemos a autenticarnos. Hay que cambiar tanto el usuario y eliminar la parte de firma y cambiar que no hay algoritmo de firma.

<figure><img src="/files/HwuFS0tzd5ph7QneHg7B" alt=""><figcaption></figcaption></figure>

Hacemos los mismos cambios en la petición de eliminar a carlos.

<figure><img src="/files/ol29OaljA3mLpQZf36qP" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/xqKmqtP8UVUXI1wo5yEc" alt=""><figcaption></figcaption></figure>
