Introducción
Burp Suite es una potente plataforma para la prueba de seguridad de aplicaciones web. Una de sus herramientas más versátiles es Burp Intruder, que le permite automatizar ataques personalizados contra aplicaciones web. Intruder tiene varios tipos de ataque, cada uno diseñado para diferentes escenarios de prueba.
El tipo de ataque Pitchfork se utiliza cuando necesita probar múltiples parámetros con cargas útiles (payloads) diferentes pero relacionadas simultáneamente. Utiliza una lista de cargas útiles separada para cada posición marcada. Durante el ataque, Intruder toma la primera carga útil de la primera lista y la empareja con la primera carga útil de la segunda lista, luego la segunda con la segunda, y así sucesivamente. Esto es ideal para probar cosas como una lista de pares conocidos de nombre de usuario y contraseña.
En este laboratorio, aprenderá a configurar y ejecutar un ataque Pitchfork en Burp Intruder contra un formulario de inicio de sesión simple.
Enviar una Solicitud con Dos Parámetros a Intruder
En este paso, iniciará Burp Suite, capturará una solicitud de inicio de sesión y la enviará a la herramienta Intruder para su modificación. El entorno del laboratorio ya ha iniciado una aplicación web simple para que la pruebe.
Primero, abra una terminal desde el escritorio e inicie Burp Suite. Normalmente puede encontrarlo en el menú de aplicaciones o iniciarlo desde la línea de comandos. Para este laboratorio, lo iniciaremos desde la terminal.
burpsuite
En el asistente de inicio, seleccione "Proyecto temporal" y haga clic en "Siguiente", luego haga clic en "Iniciar Burp".
Una vez que Burp Suite esté abierto, vaya a la pestaña Proxy y luego a la sub-pestaña Intercept. Haga clic en el botón "Abrir navegador" (Open Browser). Esto iniciará un navegador Chromium preconfigurado para funcionar con el proxy de Burp.
En el navegador de Burp, navegue a la aplicación de destino ingresando la siguiente URL:
http://127.0.0.1:8000
Verá un formulario de inicio de sesión simple. Regrese a la ventana de Burp Suite y desactive la interceptación haciendo clic en el botón "Intercept is on" para que cambie a "Intercept is off". Esto permite que las solicitudes fluyan libremente hacia la aplicación.
Ahora, regrese al navegador. Ingrese test para el nombre de usuario y test para la contraseña, luego haga clic en "Submit".
Regrese a la ventana de Burp Suite y navegue a la pestaña Proxy > HTTP history. Debería ver una solicitud POST /login en la lista del historial. Haga clic derecho en esta solicitud y seleccione "Enviar a Intruder" (Send to Intruder).
Esta acción envía una copia de la solicitud a la herramienta Intruder, donde puede configurar el ataque. Debería ver la pestaña Intruder resaltada.
Añadir Marcadores de Carga Útil a Ambos Parámetros
En este paso, definirá las posiciones en la solicitud donde Intruder debe colocar sus cargas útiles (payloads). Para un ataque Pitchfork, necesita marcar cada valor de parámetro que desea someter a fuzzing.
Navegue a la pestaña Intruder y luego a la sub-pestaña Positions. Verá la solicitud POST /login capturada.
Burp Intruder a menudo identifica automáticamente las posiciones potenciales de carga útil y las marca con símbolos §. Para este laboratorio, queremos controlar las posiciones con precisión. Primero, haga clic en el botón Clear § en el lado derecho para eliminar cualquier marcador predeterminado.
El cuerpo de la solicitud en la parte inferior de la ventana se ve así:
username=test&password=test
Queremos insertar cargas útiles en los valores de los parámetros username y password.
- En el editor de solicitudes, resalte el valor
testpara el parámetrousername. - Haga clic en el botón
Add §en la derecha. El parámetro ahora debería verse comousername=§test§. - A continuación, resalte el valor
testpara el parámetropassword. - Haga clic en el botón
Add §nuevamente. El parámetro ahora debería verse comopassword=§test§.
El cuerpo de su solicitud ahora debería tener dos posiciones marcadas:
username=§test§&password=§test§
Estos marcadores le indican a Intruder exactamente dónde colocar las cargas útiles de los conjuntos de cargas útiles correspondientes.
Establecer el Tipo de Ataque a 'Pitchfork'
En este paso, seleccionará el tipo de ataque Pitchfork. Esta es la configuración crucial que habilita el comportamiento de inyección de carga útil emparejada que queremos probar.
Mientras aún se encuentra en la pestaña Intruder > Positions, localice el menú desplegable "Tipo de ataque" (Attack type) en la parte superior de la pantalla. Es probable que esté configurado como Sniper por defecto.
Haga clic en el menú desplegable. Verá cuatro opciones:
- Sniper: Utiliza un único conjunto de cargas útiles e itera a través de cada posición una por una.
- Battering ram: Utiliza un único conjunto de cargas útiles y coloca la misma carga útil en todas las posiciones a la vez.
- Pitchfork: Utiliza múltiples conjuntos de cargas útiles. Empareja la primera carga útil del conjunto 1 con la primera del conjunto 2, la segunda con la segunda, y así sucesivamente.
- Cluster bomb: Utiliza múltiples conjuntos de cargas útiles y prueba todas las combinaciones posibles de cargas útiles.
Para nuestro escenario de prueba de pares de nombre de usuario/contraseña, Pitchfork es la opción correcta. Seleccione Pitchfork de la lista.
Una vez que seleccione Pitchfork, notará que la interfaz no cambia mucho en esta pantalla, pero Burp ahora está preparado para manejar dos listas de cargas útiles separadas que corresponden a los dos marcadores de carga útil que estableció en el paso anterior.
Configurar Dos Listas de Cargas Útiles Separadas en la Pestaña Payloads
En este paso, configurará las dos listas de cargas útiles que utilizará el ataque Pitchfork. La primera lista contendrá nombres de usuario y la segunda contendrá contraseñas correspondientes.
Navegue a la sub-pestaña Payloads dentro de la pestaña Intruder.
Debido a que seleccionó el tipo de ataque Pitchfork y tiene dos posiciones de carga útil, verá un menú desplegable "Payload set". Esto le permite configurar cada lista de cargas útiles de forma independiente.
Configurar Conjunto de Cargas Útiles 1 (Nombres de Usuario):
- Asegúrese de que el menú desplegable "Payload set" esté configurado en
1. - El "Payload type" debe ser "Simple list".
- En la sección "Payload Options" de abajo, haga clic en el botón
Clearpara eliminar cualquier elemento predeterminado. - Haga clic en el botón
Adde introduzca los siguientes nombres de usuario, uno por uno:userguestadmintest
Configurar Conjunto de Cargas Útiles 2 (Contraseñas):
- Ahora, seleccione
2del menú desplegable "Payload set". - Nuevamente, asegúrese de que el "Payload type" sea "Simple list".
- Haga clic en el botón
Clearpara vaciar la lista. - Haga clic en el botón
Adde introduzca las siguientes contraseñas, que corresponden a los nombres de usuario de la primera lista:userpassguestpassword123test
Ahora ha configurado dos listas de cargas útiles distintas. El ataque Pitchfork las emparejará en orden: (user, userpass), (guest, guest), (admin, password123) y (test, test). El número total de solicitudes será 4, que es el tamaño de sus listas.
Ejecutar el Ataque y Observar la Inyección de Cargas Útiles Emparejadas
En este paso final, lanzará el ataque y analizará los resultados para ver el ataque Pitchfork en acción.
Con el tipo de ataque y las cargas útiles configuradas, está listo para comenzar. En la esquina superior derecha de la pestaña Intruder, haga clic en el botón "Start attack".
Se abrirá una nueva ventana "Intruder attack (1)", que mostrará los resultados en tiempo real. Observe la tabla de resultados. Verá columnas para "Payload 1" y "Payload 2".
Observe cómo las cargas útiles se emparejan exactamente como las configuró:
- La Solicitud 1 utiliza
useryuserpass. - La Solicitud 2 utiliza
guestyguest. - La Solicitud 3 utiliza
adminypassword123. - La Solicitud 4 utiliza
testytest.
Ahora, observe las columnas "Status" y "Length". La mayoría de las solicitudes probablemente tendrán el mismo código de estado (por ejemplo, 200) y longitud de respuesta, lo que indica un intento de inicio de sesión fallido. Sin embargo, una solicitud debería destacar. La solicitud con el par de cargas útiles admin y password123 es el conjunto de credenciales correcto. Debería ver una longitud de respuesta diferente para esta solicitud, lo que indica una respuesta del servidor diferente (por ejemplo, un mensaje de "Login successful!").
Ejemplo de resultados esperados:
| Request | Payload 1 | Payload 2 | Status | Length |
|---|---|---|---|---|
| 1 | user | userpass | 200 | 450 |
| 2 | guest | guest | 200 | 450 |
| 3 | admin | password123 | 200 | 452 |
| 4 | test | test | 200 | 450 |
Al observar esta diferencia, ha identificado con éxito las credenciales válidas utilizando un ataque Pitchfork. Ahora puede cerrar la ventana de ataque.
Resumen
En este laboratorio, ha configurado y ejecutado con éxito un ataque Pitchfork utilizando Burp Intruder.
Ha aprendido a:
- Interceptar una solicitud web utilizando Burp Proxy y enviarla a Intruder.
- Establecer manualmente marcadores de carga útil en múltiples posiciones de parámetros.
- Seleccionar el tipo de ataque
Pitchfork, que está diseñado para fuzzing de múltiples parámetros relacionados. - Configurar dos listas de cargas útiles separadas y correspondientes para los parámetros de nombre de usuario y contraseña.
- Lanzar el ataque y analizar los resultados para identificar anomalías, encontrando con éxito las credenciales de inicio de sesión correctas al observar la inyección de cargas útiles emparejadas.
El ataque Pitchfork es una técnica valiosa para probar escenarios donde los datos en múltiples parámetros están vinculados, como nombres de usuario y contraseñas, o cualquier otro conjunto de datos emparejados.
