Descripción

This lab allows client applications to dynamically register themselves with the OAuth service via a dedicated registration endpoint. Some client-specific data is used in an unsafe way by the OAuth service, which exposes a potential vector for SSRF.

To solve the lab, craft an SSRF attack to access http://169.254.169.254/latest/meta-data/iam/security-credentials/admin/ and steal the secret access key for the OAuth provider’s cloud environment.

You can log in to your own account using the following credentials: wiener:peter

SSRF via OpenID dynamic client registration writeup

Entraremos al laboratorio y realizaremos el proceso de inicio de sesión en ‘My account’. Al volver a Burp Suite, en ‘Target’ encontraremos el servidor ‘OAuth’:

Teniendo su URL, le añadiremos ‘/.well-known/openid-configuration’ para ver su configuración. Allí encontraremos un endpoint para usar el servicio:

Enviaremos a ‘/reg’ una petición GET. Nos obligará a cambiarla a POST. Al hacerlo encontraremos el siguiente error:

Si añadimos el siguiente código:

Content-Type: application/json

{
    "redirect_uris" : [
        "https://cyberhub.es"
    ]
}

Veremos que hemos creado un usuario:

El único momento donde se llama al usuario en el registro es en la siguiente petición:

Por lo que tendremos que crear una URL e incrustarla en el logo. Esto lo haremos con el siguiente fragmento de código:

Content-Type: application/json

{
    "redirect_uris" : [
        "https://cyberhub.es"
    ],
"logo_uri" : "http://169.254.169.254/latest/meta-data/iam/security-credentials/admin/"
}

Ahora, tomaremos la petición del logo y cambiaremos el id por el que nos ha devuelto el servicio de OAuth en el campo ‘client_id’. Enviaremos la petición y obtendremos la clave que nos pide el enunciado:

Al enviarla completaremos el laboratorio:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *