# 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>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://beafn28.gitbook.io/beafn28/web-security/laboratorios-portswigger/jwt.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
