Obtención de la carga útil en intrusos eructos dinámicamente desde el sitio web

1

Para el propósito de mi tesis, necesito encontrar la combinación de nombre de usuario y contraseña en un sitio web determinado. He intentado lograr el uso de Hydra, pero fallé miserablemente debido a un valor de formulario oculto, que cambia cada vez que el usuario ingresa al sitio web (por lo que también cambia mientras el usuario no puede iniciar sesión).

Supongo que una solución mucho más simple es bastante fácil de conseguir en Burp's Intruder, pero no puedo encontrarla. Conozco el nombre de usuario y la contraseña, que se colocan en una carga útil de lista simple. El problema radica en la tercera carga útil, que es un token. En el navegador, parece estar cambiando como se describe anteriormente. Debido a eso, sospecho que Burp debería solicitar dinámicamente el token del sitio web para cada par de nombre de usuario / contraseña.

¿Es posible hacer? Según este video, debe ser: enlace . De hecho, pensé que el problema se resolvió en este video, pero la carga útil del token no cambia. También he leído algunos documentos de Burp Intruder y no he encontrado una solución.

    
pregunta James Pond 31.08.2016 - 23:54
fuente

2 respuestas

2

La protección que está hablando se denomina tokens anti CSRF . Estos tokens son valores aleatorios generados por el servidor y que pueden usarse solo una vez de manera ideal (como en este caso también).

AFAIK, debe escribir Burp Extender personalizado para actualizar el token cada vez que realice una próxima solicitud.

Otra forma fácil de hacer esto es usar el intruso burp en modo Pitchfork con dos listas. Esto se explica a continuación.

Paso 1: (Recoge los tokens CSRF)

Necesitas hacer mucho (es igual al número de usuarios x número de contraseñas que quieres probar) de solicitudes GET a la página de inicio de sesión usando wget/curl y recopilar los tokens CSRF en un archivo. Permite llamar a esta lista como csrftokens.txt .

Por lo tanto, en el archivo csrftokens.txt tendrás los tokens válidos recopilados anteriormente, como

xxxx-xxxx-xxxxx
yyyy-yyyy-yyyyy

Paso 2: (generar un único nombre de usuario + archivo de contraseña)

Tome su archivo de nombres de usuario ( users.txt ) y el archivo de contraseña ( password.txt ). Cree una lista de todas las combinaciones posibles en el mismo formato que los parámetros de solicitud POST.

muestra users.txt

user1
user2

muestra password.txt

password1
password2

Digamos que la cadena de parámetros de publicación original del sitio era como

token="xxxx-xxxx-xxxx"&user="exampleuser"&password=" examplepass"

Aquí, creas un nuevo archivo con todos los nombres de usuario posibles, combinaciones de contraseña ( users_pass.txt ) como

user1"&password="password1
user1"&password="password2
user2"&password="password1
user2"&password="password2

Paso 3: (Tweak the Burpsuite para derrotar tokens anti CSRF)

Ahora, en el intruso eructo, seleccione el modo Pitchfork y edite los parámetros de publicación como se muestra a continuación

token="§from_csrftokens.txt§"&user="§from_users_pass.txt§"

Aquí, has eliminado el campo de contraseña en la solicitud de eructar Esto vendrá del archivo users_pass.txt .

Burp seguirá enviando las solicitudes en el formato de solicitud de publicación original, como se muestra a continuación.

token="xxxx-xxxx-xxxx"&user="user1"&password="password1"
token="yyyy-yyyy-yyyy"&user="user1"&password="password2"
..
..

Esta solución necesita conocimiento de algún lenguaje de scripting para agarrar los tokens. Y para generar user_pass.txt puede usar una selección simple en la base de datos mysql usando la combinación cruzada.

Al usar el modo Pitchfork, te aseguras de usar el token solo una vez y evitar que las solicitudes sean rechazadas debido a la reutilización del token.

    
respondido por el Sravan 01.09.2016 - 07:47
fuente
1

Debería poder utilizar la función Macros para lograr un efecto similar.

Cree una nueva macro y luego recorra manualmente la secuencia de inicio de sesión. Selecciona la solicitud que genera el token. Haga clic en configurar elemento. Haga clic en agregar parámetro personalizado. Desde aquí, busque en la respuesta el valor del token y resáltelo. Luego, desea configurar el nombre para que sea igual al valor del nombre del parámetro utilizado en la solicitud de inicio de sesión. Guarda la macro.

Luego desea crear una regla de manejo de sesión para usar esta macro. Agregue una acción de regla "La sesión de verificación es válida". Configure esta regla para que coincida con alguna condición en la respuesta que indicaría que el token no es válido. Luego, configure esta regla para ejecutar una macro si la sesión no es válida, y agregue su macro. Asegúrese de que está actualizando el valor del token con el valor de la macro.

Esto es torpe y puede requerir algunos ajustes, pero debería funcionar para ti. ¡Buena suerte!

    
respondido por el Justin LeMay 01.09.2016 - 01:56
fuente

Lea otras preguntas en las etiquetas