Aprende y practica Hacking en AWS:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Aprende y practica Hacking en GCP: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
Los Identificadores Únicos Universales (UUID) son **números de 128 bits utilizados para identificar información de manera única** en sistemas informáticos. Los UUID son esenciales en aplicaciones donde se necesitan identificadores únicos sin coordinación central. Se utilizan comúnmente como claves de base de datos y pueden referirse a varios elementos como documentos y sesiones.
Los UUID están diseñados para ser únicos y **difíciles de adivinar**. Están estructurados en un formato específico, divididos en cinco grupos representados como 32 dígitos hexadecimales. Hay diferentes versiones de UUID, cada una con diferentes propósitos:
* **UUID v1** es basado en el tiempo, incorporando la marca de tiempo, la secuencia de reloj y el ID del nodo (dirección MAC), pero puede potencialmente exponer información del sistema.
El "Ataque Sandwich" es un tipo específico de ataque que **exploita la predictibilidad de la generación de UUID v1 en aplicaciones web**, particularmente en características como restablecimientos de contraseña. El UUID v1 se genera en función del tiempo, la secuencia de reloj y la dirección MAC del nodo, lo que puede hacerlo algo predecible si un atacante puede obtener algunos de estos UUID generados cerca en el tiempo.
Imagina una aplicación web que utiliza UUID v1 para generar enlaces de restablecimiento de contraseña. Así es como un atacante podría explotar esto para obtener acceso no autorizado:
* El atacante inicia un restablecimiento de contraseña para su primera cuenta (\`attacker1@acme.com\`) y recibe un enlace de restablecimiento de contraseña con un UUID, digamos \`99874128-7592-11e9-8201-bb2f15014a14\`.
* Inmediatamente después, el atacante inicia un restablecimiento de contraseña para la cuenta de la víctima (\`victim@acme.com\`) y luego rápidamente para la segunda cuenta controlada por el atacante (\`attacker2@acme.com\`).
* El atacante ahora tiene dos UUID generados cerca en el tiempo (\`99874128\` y \`998796b4\`). Dada la naturaleza secuencial de los UUID basados en el tiempo, es probable que el UUID para la cuenta de la víctima caiga entre estos dos valores.
* El atacante utiliza una herramienta para generar UUID entre estos dos valores y prueba cada UUID generado intentando acceder al enlace de restablecimiento de contraseña (por ejemplo, \`https://www.acme.com/reset/\<generated-UUID>\`).
* Si la aplicación web no limita adecuadamente la tasa o bloquea tales intentos, el atacante puede probar rápidamente todos los UUID posibles en el rango.
* Una vez que se descubre el UUID correcto para el enlace de restablecimiento de contraseña de la víctima, el atacante puede restablecer la contraseña de la víctima y obtener acceso no autorizado a su cuenta.
### Herramientas
* Puedes realizar el ataque sandwich automáticamente con la herramienta: [**https://github.com/Lupin-Holmes/sandwich**](https://github.com/Lupin-Holmes/sandwich)
* Puedes detectar este tipo de UUID en Burp Suite con la extensión [**UUID Detector**](https://portswigger.net/bappstore/65f32f209a72480ea5f1a0dac4f38248).
Aprende y practica Hacking en AWS:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Aprende y practica Hacking en GCP: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Apoya a HackTricks</summary>
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.