
Extension Burp pour tester les problèmes d'autorisation. Répétition automatisée des requêtes et extraction des valeurs de paramètres à la volée.
Cette extension Burp vous aide à trouver des bugs d'autorisation. Naviguez simplement dans l'application web avec un utilisateur hautement privilégié et laissez Auth Analyzer répéter vos requêtes pour tout utilisateur non privilégié défini. Grâce à la possibilité de définir des paramètres, Auth Analyzer peut extraire et remplacer automatiquement les valeurs des paramètres. Ainsi, par exemple, les jetons CSRF ou même des caractéristiques complètes de session peuvent être extraits automatiquement des réponses et remplacés dans les requêtes suivantes. Chaque réponse est analysée et étiquetée en fonction de son statut de contournement.
Il existe d'autres extensions Burp qui font fondamentalement la même chose. Cependant, la force de la fonctionnalité des paramètres et de l'extraction automatique des valeurs est la principale raison de choisir Auth Analyzer. Avec cela, vous n'avez pas besoin de connaître le contenu des données qui doivent être échangées. Vous pouvez facilement définir vos paramètres et cookies, et Auth Analyzer capturera à la volée les valeurs nécessaires. Auth Analyzer n'effectue aucune requête préliminaire. Il fait essentiellement la même chose que votre application web, avec vos rôles/sessions utilisateur définis.
(1) Créez ou clonez une session pour chaque utilisateur que vous souhaitez tester.
(2) Sauvegardez et chargez la configuration de session.
(3) Spécifiez les caractéristiques de la session (en-tête(s) et/ou paramètre(s) à remplacer).
(4) Définissez des filtres si nécessaire.
(5) Démarrez / Arrêtez et mettez en pause Auth Analyzer.
(6) Spécifiez le filtre du tableau.
(7) Naviguez dans l'application web avec un autre utilisateur et suivez les résultats des requêtes répétées.
(8) Exportez les données du tableau en XML ou HTML.
(9) Analysez manuellement les requêtes/réponses originales et répétées.

Si vous disposez des ressources que vous souhaitez tester dans votre sitemap, il est très facile et rapide d'effectuer vos tests d'autorisation. Dans un premier temps, définissez les sessions que vous souhaitez tester. Ensuite, développez simplement votre sitemap, sélectionnez les ressources et répétez les requêtes via le menu contextuel. De plus, vous pouvez définir des options pour savoir quelles requêtes doivent être répétées et lesquelles ne le doivent pas. Ainsi, vous pouvez effectuer des tests d'autorisation d'un site web complexe en quelques secondes.
Auth Analyzer permet de définir des paramètres qui sont remplacés avant que la requête pour la session donnée ne soit répétée. La valeur du paramètre donné peut être définie selon différents besoins.
La valeur du paramètre sera extraite si elle apparaît dans une réponse avec l'une des contraintes suivantes :
Une réponse avec un en-tête Set-Cookie dont le nom de cookie correspond au Nom du champ d'extraction défini.
Une réponse Document HTML contient un champ de saisie dont l'attribut name correspond au Nom du champ d'extraction défini.
Une Réponse JSON contient une clé correspondant au Nom du champ d'extraction.
Par défaut, Auth Analyzer essaie d'extraire automatiquement la valeur du paramètre depuis tous les emplacements. Cependant, en cliquant sur l'icône des paramètres, vous pouvez restreindre l'emplacement d'extraction automatique selon vos besoins.

Le paramètre sera extrait si la réponse contient la Chaîne de début et la Chaîne de fin spécifiées sur une même ligne. La chaîne De-À peut être définie manuellement ou directement via le menu contextuel correspondant. Il suffit de marquer le mot que vous souhaitez extraire dans une réponse et de le définir comme Extraction De-À pour le paramètre souhaité.
Par défaut, Auth Analyzer essaie d'extraire la valeur de l'en-tête et du corps pour la plupart des réponses textuelles. Cependant, en cliquant sur l'icône des paramètres, vous pouvez restreindre l'emplacement d'extraction De-À selon vos besoins.

Une valeur de paramètre statique peut être définie. Cela peut être utilisé par exemple pour des jetons CSRF statiques ou des identifiants de connexion.
Vous serez invité à saisir une valeur si le paramètre défini est présent dans une requête. Cela peut être utilisé, par exemple, pour définir des codes 2FA.
Si une valeur est définie (extraite ou définie par l'utilisateur), elle sera remplacée si le paramètre correspondant est présent dans une requête. Les conditions de remplacement des paramètres sont les suivantes :
Le paramètre sera remplacé s'il est présent à l'un des emplacements suivants :

Dans le chemin (ex : /api/user/99/profile --> si un paramètre nommé user est présent, la valeur 99 sera remplacée)
Paramètre d'URL (ex : email=hans.wurst[a]gmail.com)
Paramètre de cookie (ex : PHPSESSID=mb8rkrcdg8765dt91vpum4u21v)
Paramètre du corps soit Encodé URL soit Données de formulaire multipart
Paramètre JSON (ex : {"email":"hans.wurst[a]gmail.com"})
Par défaut, la valeur du paramètre sera remplacée à chaque emplacement. Cependant, en cliquant sur l'icône des paramètres, vous pouvez restreindre l'emplacement selon vos besoins.

Le paramètre défini peut être complètement supprimé, par exemple pour tester les mécanismes de vérification CSRF.
Définissez le nom d'utilisateur et le mot de passe comme valeur statique. Le nom du cookie de session doit être défini comme extraction automatique. Assurez-vous de commencer à naviguer dans l'application sans cookie de session défini. Connectez-vous à l'application web. Auth Analyzer répétera la requête de connexion avec les paramètres statiques et obtiendra automatiquement la session via l'en-tête Set-Cookie. Ce cookie sera utilisé pour les requêtes suivantes de la session donnée. Le cookie défini sera traité comme un paramètre, donc aucun en-tête Cookie ne doit être défini.

Astuce : Vous pouvez restreindre les conditions d'extraction et de remplacement d'un paramètre pour éviter des dysfonctionnements lors de l'étape d'extraction/remplacement.

Définissez un en-tête Cookie et un jeton CSRF (avec extraction automatique de valeur). La valeur du jeton CSRF sera extraite si elle est présente dans une Balise HTML Input, un En-tête Set-Cookie ou une Réponse JSON de la session donnée.

Comme la méthode Extraction automatique ne fonctionne que sur les Champs de saisie HTML, les Objets JSON ou les En-têtes Set-Cookie, nous devons utiliser la méthode d'extraction générique appelée De la chaîne à la chaîne. Avec cette méthode d'extraction, nous pouvons extraire n'importe quelle valeur d'une réponse si elle se trouve entre une chaîne de début et une chaîne de fin uniques. Auth Analyzer fournit une méthode de menu contextuel pour définir automatiquement la Chaîne de début et la Chaîne de fin. Il suffit de marquer la chaîne que vous souhaitez extraire et de la définir comme Extraction De-À via le menu contextuel.

Étant donné que l'en-tête Authorization n'est pas traité comme un paramètre (contrairement à l'en-tête Cookie), nous pouvons utiliser un point d'insertion d'en-tête pour obtenir ce que nous voulons. Il suffit de marquer et de cliquer avec le bouton droit sur la valeur que vous souhaitez remplacer dans l'en-tête spécifié. La valeurpar défaut sera utilisée si aucune valeur de paramètre n'a encore été extraite.

Créez simplement autant de sessions que vous le souhaitez pour tester plusieurs rôles à la fois.

Appuyez simplement sur Renouveler dans le panneau d'état de la session ou répétez la requête concernée via le menu contextuel (clic droit de la souris sur l'entrée du tableau). Astuce : Les requêtes de connexion peuvent être marquées et filtrées par la suite.

Les requêtes originales peuvent être abandonnées pour tester les opérations idempotentes (par exemple, une fonction DELETE).

Si un utilisateur anonyme a besoin d'une caractéristique valide (par exemple, une valeur de cookie valide), vous devez définir l'en-tête comme d'habitude. Sinon, vous pouvez définir un en-tête à supprimer comme suit :

Vous pouvez facilement tester un grand nombre de points de terminaison sur leurs paramètres CORS individuels en ajoutant un en-tête Origin dans En-tête(s) à remplacer et en sélectionnant Test CORS dans le panneau de session. En sélectionnant Test CORS, Auth Analyzer changera la méthode HTTP en OPTIONS avant que la requête ne soit répétée.

Un paramètre spécifié peut être supprimé en cochant la Case à cocher Supprimer. Cela peut être utilisé par exemple pour tester le mécanisme de vérification CSRF.

Auth Analyzer fournit une vue de comparaison intégrée pour vérifier les différences entre deux réponses. Il suffit de marquer le message que vous souhaitez analyser et de changer la vue du message (1). Vous pouvez maintenant comparer les deux requêtes (2) (3). La fonctionnalité Diff intégrée calcule et affiche les différences entre les deux requêtes en temps réel (4).

Vue Diff élargie :

Auth Analyzer doit traiter deux types de requêtes/réponses :
La réponse contient une valeur qui doit être extraite.
La ressource demandée ne doit pas être accessible par la ou les sessions définies.
Par exemple, nous ne souhaitons pas traiter un fichier JavaScript statique car il est accessible à tous et (espérons-le) ne contient aucune donnée protégée. Pour y parvenir, nous pouvons définir les types de filtres suivants :
Les deux réponses ont le même corps de réponse et le même code de réponse.Les deux réponses ont le même code de réponse et Les deux réponses ont une longueur de corps de réponse à ±5% près.