Cómo usar macros Burp para pasar parámetros al intruso

3

Mi problema es que estoy intentando distorsionar un inicio de sesión de 2 etapas para una aplicación web personalizada.

Lo que debo hacer es obtener la página inicial, que me proporcionará un token anti-csrf y un ID de sesión.

Desde allí PUBLICAMOS un nombre de usuario cuya respuesta me proporcionará otro token

Ese segundo token se utilizará en la POST final junto con el token anti-csrf y sessionID para enviar la contraseña al servidor. El nombre de usuario solo está vinculado al segundo POST a través del segundo token que se rastrea en cada intento de inicio de sesión, por lo que se requiere uno nuevo en cada intento de inicio de sesión.

Idealmente, me gustaría fusionar ambos POST en una cadena usando intruso, pero me conformaré con una macro cadena que permitirá que los parámetros del GET y el primer POST se pasen al intruso, momento en el cual el campo de la contraseña será difuso y enviado al servidor.

He investigado un poco sobre macros de burp y parece que debería ser posible, aunque poco ortodoxo por su uso normal. El problema que tengo es con la extracción y el paso de los parámetros al intruso.

Cualquier ayuda sería muy apreciada, gracias.

    
pregunta Desblock 27.09.2017 - 07:36
fuente

1 respuesta

1

Esto normalmente puede hacerse mediante macros y reglas de manejo de sesión. Según tengo entendido, tiene tres solicitudes:

  1. obtener el token CSRF
  2. Publicar nombre de usuario
  3. Publicar contraseña

El primer paso es reproducirlos en su navegador, con Burp configurado como un proxy.

Luego cree una macro con las solicitudes 1 y 2. En el Editor de macros, seleccione la solicitud 2 y haga clic en Configurar elemento. Si el token CSRF es un campo oculto, debería haberlo detectado automáticamente, y en el manejo de Parámetros verá algo como "csrf_token - deriva de la respuesta anterior". Si no es así, es posible que deba configurar esto manualmente. Es posible que deba realizar la configuración del elemento a petición 1 y definir una ubicación de parámetros personalizada. Luego, puede usar la macro de prueba para confirmar que esto está funcionando.

Luego, crea una Regla de Manejo de Sesiones. Establezca el ámbito para cubrir la URL y la ruta de la solicitud 3. Agregue una acción que sea Ejecutar una macro, seleccione su macro y deje esta opción habilitada: "Actualizar la solicitud actual con los parámetros coincidentes de la respuesta de la macro final".

Luego envía la solicitud 3 al Repetidor. Cuando haga clic en Ir, la macro se ejecutará, y debería ver que su solicitud se actualice con nuevos valores de token. Si no es así, utilice el rastreador de sesión para averiguar qué es lo que no funciona.

Una vez que esté funcionando en Repeater, puedes usar otras herramientas como Intruder, Scanner, etc.

Su idea acerca de confundir ambas solicitudes en una cadena es interesante. No puedo pensar en una forma fácil de hacerlo, pero esa sería una extensión interesante para escribir.

    
respondido por el PortSwigger 27.09.2017 - 11:20
fuente

Lea otras preguntas en las etiquetas