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.