# Lab: Brute-forcing a stay-logged-in cookie

<figure><img src="https://2827710683-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV9yg1NBoB0HDHj681gSk%2Fuploads%2F8cICA7sxhZEVKwKWw3pe%2Fimagen.png?alt=media&#x26;token=727f0cf7-a4bc-4ffa-8520-0226967ac022" alt=""><figcaption></figcaption></figure>

This lab allows users to stay logged in even after they close their browser session. The cookie used to provide this functionality is vulnerable to brute-forcing.

To solve the lab, brute-force Carlos's cookie to gain access to his "My account" page.

* Your credentials: `wiener:peter`
* Victim's username: `carlos`
* [Candidate passwords](https://portswigger.net/web-security/authentication/auth-lab-passwords)

¿Que podriamos hacer?

### Analicemos a wiener - peter

* Con el podemos ver como es la estructura de la cookie de un user, y con ello podemos tomar la base para intentar por fuerza bruta descifrar la cookie de carlos e ingresar, para ello analizaremos la cookie de Wiener.

### Aqui hay ALGO:

* Pille pues como es la vuelta, lo que hicimos fue tomar la cookie de wiener:

<figure><img src="https://2827710683-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV9yg1NBoB0HDHj681gSk%2Fuploads%2FNBOD8EFbCvg4OFLX1yRe%2Fimagen.png?alt=media&#x26;token=dfeeda50-da42-4e66-833e-f5c1f47c16db" alt=""><figcaption></figcaption></figure>

Ahi la tenemos, ahora si nos vamos a un BASE64 para intentar decodificarla, encontramos lo sig:

<figure><img src="https://2827710683-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV9yg1NBoB0HDHj681gSk%2Fuploads%2Fy9SDwjxahmBcf5INURkE%2Fimagen.png?alt=media&#x26;token=7bd59cdb-534b-4f1f-9b81-363f0aa597bd" alt=""><figcaption></figcaption></figure>

Aqui tenemos algo muy importante porque vemos que hay algo del tipo username:codigo Extraño.

Pero si analizamos más a detalle lo que hay despues de los dos puntos despues de “wiener”, nos encontramos con que un simple cifrado por MD5, es un hash de 128 bits, hace como 10 años que le hicieron criptoanalisis a ese hash y quedo obsoleto y de hecho fue por fuerza bruta por computadora, 128 bits ya es muy poco para resistir ataques por fuerza bruta, por eso se usa AES de 256 bits y hasta 312 bits, en fin simplemente vamos a una pagina que nos decode el MD5 y esto fue lo que encontramos:

<figure><img src="https://2827710683-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV9yg1NBoB0HDHj681gSk%2Fuploads%2FiBpn4xIPz4vUo7EKYR8P%2Fimagen.png?alt=media&#x26;token=24d1db96-d69d-4fc3-b895-6e5c4d369de3" alt=""><figcaption></figcaption></figure>

Tal cual como lo pensé, lo que esta en hash MD5 es la contraseña, osea que finalmente la estructura de la cookie **stay-logged-in=Username+Password,** con eso ya tenemos para empezar nuestro vector de ataque, simplemente la contraseña de username le añadimos parametro de posición, vamos a ver como.

Esta es una idea, puedo crear un ataque del tipo pitchFork que me paylodee ambos parametros de posición, ahora bien, lo que haré con ello será probar por un lado las contraseñas normales y por otro las contraseñas hasheadas al MD5

<figure><img src="https://2827710683-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV9yg1NBoB0HDHj681gSk%2Fuploads%2FrSMLXsOs8BpUgDQ4AKiI%2Fimagen.png?alt=media&#x26;token=2aaf7e21-3350-4757-ab07-8ccb8d151866" alt=""><figcaption><p>un punto de pista del lab resolución</p></figcaption></figure>

### Payload processing →

* Esta es una caracteristica muy importante de burpsuite que nos ayuda a poder llevar a cabo un ataque con caracteristicas especificas para un diccionario de palabras, en este caso para la contraseñas posibles de carlos.

<figure><img src="https://2827710683-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV9yg1NBoB0HDHj681gSk%2Fuploads%2FkRffbVg2U3EJVPpy0Lv8%2Fimagen.png?alt=media&#x26;token=0f77fb36-1e1e-4159-8d16-2b419bfa6058" alt=""><figcaption></figcaption></figure>

#### Entonces, listo vamos a ver como nos va, a darle 🔥

<figure><img src="https://2827710683-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV9yg1NBoB0HDHj681gSk%2Fuploads%2F4N2lw5ZZk1fagktIsA4K%2Fimagen.png?alt=media&#x26;token=1794ac45-1829-4f5f-a59b-8f0a30e97921" alt=""><figcaption></figcaption></figure>

Es importante entender que cuando iniciamos como wiener automaticamente nos lleva a actualizar el correo con el boton “Update email”, literalmente una persona normal no lo podra ver como algo más pero uno de pentester web puede entender mucho, nosotros usaremos un grep Match desde burp para poder tomar la petición que nos muestre este bóton especifico.

<figure><img src="https://2827710683-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV9yg1NBoB0HDHj681gSk%2Fuploads%2F46HUxpLLGH1LmqwtiDCM%2Fimagen.png?alt=media&#x26;token=53e48d0f-35d9-4655-9fc6-e7a01d1e726e" alt=""><figcaption></figcaption></figure>

Está será la que enviemos a burp intruder.

<figure><img src="https://2827710683-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV9yg1NBoB0HDHj681gSk%2Fuploads%2FqaXtEldQ7hpZ1umJS4vd%2Fimagen.png?alt=media&#x26;token=83f33aa7-122b-4700-b6d3-c2a08cc2456e" alt=""><figcaption></figcaption></figure>

Para que nos matcheé el boton que ya mencionamos antes.

<figure><img src="https://2827710683-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV9yg1NBoB0HDHj681gSk%2Fuploads%2FGlCsaedPbiOCpeRdWVg8%2Fimagen.png?alt=media&#x26;token=a21b8854-018a-4227-a79f-b86091eb7b52" alt=""><figcaption></figcaption></figure>

Vamos a ver!

Importante antes de darle a iniciar ataque, cerramos sesión en la cuenta que ya teniamos abierta de WIENER.

ahora iniciamos el ataque y Eureka:

<figure><img src="https://2827710683-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV9yg1NBoB0HDHj681gSk%2Fuploads%2FbNu0xi4TCc7tkJj0vlvD%2Fimagen.png?alt=media&#x26;token=c1c58620-767d-47e7-abac-f2e6932a0d49" alt=""><figcaption><p>PoC</p></figcaption></figure>

Esté nos devolvió un 200 y el comentario de Update email que es el Boton, así que vamos a darle en show response in browser, probablemente este sea el user con la password.

<figure><img src="https://2827710683-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV9yg1NBoB0HDHj681gSk%2Fuploads%2Fq70W4yNgHGv7b9G6jTUQ%2Fimagen.png?alt=media&#x26;token=63854070-e8ce-498e-86bb-10d920ac8b25" alt=""><figcaption></figcaption></figure>

Decodificamos el hash **MD5** ->

<figure><img src="https://2827710683-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV9yg1NBoB0HDHj681gSk%2Fuploads%2FkvNigxVKfU8yQvRoAvKT%2Fimagen.png?alt=media&#x26;token=bf323880-531e-4df3-ac20-56dbf5cdb3c5" alt=""><figcaption></figcaption></figure>

1. Username: **Carlos**
2. Password: **sunshine**

<figure><img src="https://2827710683-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV9yg1NBoB0HDHj681gSk%2Fuploads%2Ff4sGX87k67f1JNq0pPVP%2Fimagen.png?alt=media&#x26;token=9e63ea58-637b-490b-9fcf-06bf7194a052" alt=""><figcaption></figcaption></figure>

Así fue como lo solucionamos.

Si llegaste hasta aquí gracias por leerme y espero te haya servido :)
