Ayuda Anti-CSRF del método POST con Burp Suite

1

Estoy probando una aplicación web y me encuentro con tokens anti-CSRF dentro de las formas, lo que dificulta los intentos de fuzzing al usar el intruso Burp Suite. Un token anti-CSRF aparece como csrf-token dentro de un meta campo HTML. Al enviar un formulario, el mismo token se codifica como URI y se envía como un parámetro authenticity-token dentro del cuerpo de la solicitud POST.

La aplicación termina la sesión del usuario si el token no es válido, como ocurre cuando se ejecuta Intruder, ya que el token es de un solo uso como se espera (no durante la vida de la sesión del usuario).

Aunque parece sencillo, no he podido configurar con las siguientes guías:
enlace
enlace

La selección de la solicitud y el token apropiado no parece hacer mucho, pero al probar la macro se obtiene una nueva respuesta con un nuevo csrf-token . En particular, señal de autenticidad no se actualiza entre cada solicitud y no hay evidencia de que las reglas de manejo de la sesión estén funcionando.

Apreciaría una buena guía o ayuda sobre esto, ya que no estoy seguro de lo que me estoy perdiendo en este momento.

    
pregunta user1330734 17.10.2018 - 03:40
fuente

2 respuestas

2

Aquí está la ruta que tomé finalmente, gracias al video en enlace :

  1. Identifique el token anti-CSRF (por ejemplo, el campo oculto csrf_token dentro de el formulario)
  2. Ir a Opciones de proyecto > Sesiones > Agregar para grabar una nueva macro.
  3. En la Grabadora de macros, seleccione la solicitud HTTP del historial de proxy y haga clic en "Aceptar".
  4. Seleccione el elemento de macro y presione el elemento de configuración.
  5. En la parte inferior derecha, Agregar parámetro personalizado , resaltando la cadena que se extraerá para su uso como el token anti-CSRF. La ' Definir los campos de inicio y finalización 'deben actualizarse con los términos de búsqueda. Rellene el campo Nombre de parámetro, con la descripción como csrf-token .
  6. Agregar regla de manejo de sesión.
  7. Agregue una acción de regla ( Ejecutar una macro ) de la lista desplegable.
  8. Seleccione Actualizar solicitud actual con parámetros que coincidan con la respuesta macro final .
    Seleccione actualizar solo los siguientes parámetros e ingrese el nombre del parámetro, p. Ej. authentication_token .
  9. Finalmente, haga clic en la pestaña Alcance dentro del Editor de reglas de manejo de sesión y configure el alcance según las Herramientas de Burp, los Parámetros y las URL de alcance deseadas.

Pasé más tiempo del que quería en este tema, así que espero que esto ayude a alguien a ahorrar algo de dolor; si no está claro, hágamelo saber e intentaré llenar los vacíos.

    
respondido por el user1330734 22.10.2018 - 13:07
fuente
0

Suena como si estuvieras en las líneas correctas. No hay un tutorial más detallado que el que has vinculado.

Para ayudarlo a diagnosticar qué está mal, abra Sessions Tracer. Además, envíe una solicitud a Repeater que tenga un token de autenticidad. Lo que desea ver es que cuando presiona Ir en el Repetidor, la regla de manejo de la sesión se activa, ejecuta una macro para obtener un token nuevo y actualiza la solicitud en el Repetidor. Saber exactamente qué parte de esto no funciona debería ayudarte a solucionarlo.

Debido a que el token está en una metaetiqueta, deberá usar una ubicación de parámetros personalizada. En el Editor de macros, haga clic en Configurar elemento, luego agregue una ubicación de parámetro personalizado.

Alternativamente, usa Burp 2, que debería manejar esto automáticamente.

    
respondido por el PortSwigger 17.10.2018 - 11:44
fuente

Lea otras preguntas en las etiquetas