
Extensión de Burp para probar problemas de autorización. Repetición automatizada de solicitudes y extracción de valores de parámetros sobre la marcha.
La extensión de Burp te ayuda a encontrar bugs de autorización. Solo navega por la aplicación web con un usuario con altos privilegios y deja que Auth Analyzer repita tus solicitudes para cualquier usuario no privilegiado definido. Con la posibilidad de definir parámetros, Auth Analyzer puede extraer y reemplazar valores de parámetros automáticamente. Con esto, por ejemplo, los tokens CSRF o incluso características completas de sesión pueden extraerse automáticamente de las respuestas y reemplazarse en solicitudes posteriores. Cada respuesta se analizará y etiquetará según su estado de omisión.
Existen otras extensiones de Burp existentes que hacen básicamente lo mismo. Sin embargo, la fuerza de la característica de parámetros y la extracción automática de valores es la razón principal para elegir Auth Analyzer. Con esto no necesitas conocer el contenido de los datos que deben intercambiarse. Puedes definir fácilmente tus parámetros y cookies, y Auth Analyzer capturará sobre la marcha los valores necesarios. Auth Analyzer no realiza ninguna solicitud de pre-vuelo. Básicamente hace lo mismo que tu aplicación web. Con tus roles de usuario / sesiones definidos.
(1) Crea o Clona una sesión para cada usuario que quieras probar.
(2) Guarda y carga la configuración de la sesión
(3) Especifica las características de la sesión (Header(s) y/o Parámetro(s) a reemplazar)
(4) Establece filtros si es necesario
(5) Iniciar / Detener y Pausar Auth Analyzer
(6) Especifica el filtro de la tabla
(7) Navega por la aplicación web con otro usuario y rastrea los resultados de las solicitudes repetidas
(8) Exporta los datos de la tabla a XML o HTML
(9) Analiza manualmente las solicitudes / respuestas originales y repetidas

Si tienes los recursos que deseas probar en tu sitemap, es muy fácil y rápido realizar tus pruebas de autorización. En el primer paso, define las sesiones que deseas probar. Luego, simplemente expande tu sitemap, selecciona los recursos y repite las solicitudes a través del menú contextual. Además, puedes definir algunas opciones sobre qué solicitudes deben repetirse y cuáles no. Con esto, puedes realizar pruebas de autorización de un sitio web complejo en segundos.
Auth Analyzer tiene la posibilidad de definir parámetros que se reemplazan antes de que se repita la solicitud para la sesión dada. El valor del parámetro dado se puede establecer según diferentes requisitos.
El valor del parámetro se extraerá si aparece en una respuesta con una de las siguientes condiciones:
Una respuesta con un Header Set-Cookie cuyo nombre de Cookie se establece en el Nombre del Campo de Extracción definido
Una Respuesta de Documento HTML contiene un campo de entrada con el atributo name establecido en el Nombre del Campo de Extracción definido
Una Respuesta JSON contiene una clave establecida en el Nombre del Campo de Extracción
Por defecto, Auth Analyzer intenta extraer automáticamente el valor del parámetro de todas las ubicaciones. Sin embargo, al hacer clic en el icono de configuración del parámetro, puedes restringir la ubicación de extracción automática según tus necesidades.

El parámetro se extraerá si la respuesta contiene la Cadena de Inicio y Cadena de Fin especificadas en una línea. La Cadena de Inicio-Fin se puede establecer manualmente o directamente mediante el menú contextual correspondiente. Simplemente marca la palabra que deseas extraer en cualquier respuesta y establece como Extraer de Cadena a Cadena para el parámetro que desees.
Por defecto, Auth Analyzer intenta extraer el valor del header y del cuerpo en la mayoría de las respuestas textuales. Sin embargo, al hacer clic en el icono de configuración del parámetro, puedes restringir la ubicación de extracción de Cadena a Cadena según tus necesidades.

Se puede definir un valor de parámetro estático. Esto se puede usar, por ejemplo, para tokens CSRF estáticos o credenciales de inicio de sesión.
Se te solicitará una entrada si el parámetro definido está presente en una solicitud. Esto se puede usar, por ejemplo, para establecer códigos 2FA.
Si se establece un valor (extraído o definido por el usuario), se reemplazará si el parámetro correspondiente está presente en una solicitud. Las condiciones para el reemplazo de parámetros son:
El parámetro se reemplazará si está presente en una de las siguientes ubicaciones:

En la Ruta (ej. /api/user/99/profile → si hay un parámetro llamado user, el valor 99 será reemplazado)
Parámetro de URL (ej. email=hans.wurst[a]gmail.com)
Parámetro de Cookie (ej. PHPSESSID=mb8rkrcdg8765dt91vpum4u21v)
Parámetro del Cuerpo ya sea Codificado en URL o Datos de Formulario Multipart
Parámetro JSON (ej. {"email":"hans.wurst[a]gmail.com"})
Por defecto, el valor del parámetro se reemplazará en cada ubicación. Sin embargo, al hacer clic en el icono de configuración del parámetro, puedes restringir la ubicación según tus necesidades.

El parámetro definido se puede eliminar por completo, por ejemplo, para probar mecanismos de verificación CSRF.
Define el nombre de usuario y la contraseña como un valor estático. El nombre de la cookie de sesión debe definirse como extracción automática. Verifica que comiences navegando por la aplicación sin ninguna cookie de sesión establecida. Inicia sesión en la aplicación web. Auth Analyzer repetirá la solicitud de inicio de sesión con los parámetros estáticos y obtendrá automáticamente la sesión mediante el header Set-Cookie. Esta Cookie se usará para solicitudes posteriores de la sesión dada. La Cookie definida se tratará como un parámetro, por lo tanto, no es necesario definir un Header de Cookie.

Consejo: Puedes restringir las condiciones de extracción y reemplazo para un parámetro para evitar fallos en la etapa de extracción / reemplazo.

Define un header de Cookie y un token CSRF (con extracción automática de valor). El valor del token CSRF se extraerá si está presente en una Etiqueta HTML de Entrada, un Header Set-Cookie o una Respuesta JSON de la sesión dada.

Dado que el método de Extracción Automática solo funciona en Campos de Entrada HTML, Objetos JSON o Headers Set-Cookie, debemos usar el método de extracción genérico llamado De Cadena a Cadena. Con este método de extracción podemos extraer cualquier valor de una respuesta si se encuentra entre una cadena de inicio y una cadena de finalización únicas. Auth Analyzer proporciona un método de menú contextual para establecer la Cadena de Inicio y la Cadena de Fin automáticamente. Simplemente marca la Cadena que deseas extraer y establece como Extraer de Cadena a Cadena mediante el menú contextual.

Dado que el Header de Autorización no se trata como un parámetro (como se hace con el Header de Cookie), podemos usar un punto de inserción de header para lograr lo que queremos. Simplemente marca y haz clic derecho en el valor que deseas reemplazar en el header especificado. El valordefecto se usará si aún no se ha extraído ningún valor de parámetro.

Simplemente crea tantas sesiones como desees para probar varios roles a la vez.

Simplemente presiona Renovar en el panel de estado de la sesión o repite la solicitud afectada mediante el menú contextual (clic derecho del ratón en la entrada de la tabla). Consejo: Las solicitudes de inicio de sesión se pueden marcar y filtrar posteriormente.

Las solicitudes originales se pueden descartar para probar operaciones idempotentes (ej. una función DELETE).

Si un usuario anónimo necesita una característica válida (ej. un valor de cookie válido), debes definir el header como de costumbre. De lo contrario, puedes definir un header para eliminar de la siguiente manera:

Puedes probar fácilmente una gran cantidad de endpoints en sus configuraciones CORS individuales agregando un header Origin en Header(s) a reemplazar y seleccionando Probar CORS en el Panel de Sesión. Al seleccionar Probar CORS, Auth Analyzer cambiará el método HTTP a OPTIONS antes de que se repita la solicitud.

Un parámetro especificado se puede eliminar seleccionando la Casilla de verificación Eliminar. Esto se puede usar, por ejemplo, para probar el mecanismo de verificación CSRF.

Auth Analyzer proporciona una vista de comparación incorporada para verificar las diferencias entre dos respuestas. Simplemente marca el mensaje que deseas analizar y cambia la vista del mensaje (1). Ahora puedes comparar las dos solicitudes (2) (3). La función Diff incorporada calculará y mostrará las diferencias entre las dos solicitudes en tiempo real (4).

Vista expandida de Diff:

Auth Analyzer debe procesar dos tipos de solicitudes / respuestas:
La respuesta contiene un valor que debe extraerse
El recurso solicitado no debería ser accesible por la(s) sesión(es) definida(s)
Por ejemplo, no queremos procesar un archivo JavaScript estático porque es accesible para todos y (con suerte) no contiene ningún dato protegido. Para lograr esto, podemos establecer los siguientes tipos de filtros:
Ambas Respuestas tienen el mismo Cuerpo de Respuesta y el mismo Código de RespuestaAmbas Respuestas tienen el mismo Código de Respuesta y Ambas Respuestas tienen +-5% de la longitud del cuerpo de la respuesta