Introduction
Dans ce laboratoire, vous allez explorer l'un des types d'attaques de Burp Suite Intruder : le Battering Ram. Burp Intruder est un outil puissant pour automatiser des attaques personnalisées contre des applications web. Le type d'attaque Battering Ram est spécifiquement conçu pour les situations où la même charge utile (payload) doit être insérée à plusieurs positions dans une requête HTTP.
Un cas d'utilisation courant pour cette attaque est le test des formulaires de connexion pour les identifiants faibles où le nom d'utilisateur et le mot de passe peuvent être identiques (par exemple, admin/admin). Tout au long de ce laboratoire, vous apprendrez à capturer une requête de connexion, à configurer les marqueurs de charge utile (payload markers), à sélectionner le type d'attaque Battering Ram, à configurer une liste de charges utiles (payload list), et enfin, à lancer l'attaque pour analyser les résultats.
À la fin de ce laboratoire, vous aurez une compréhension pratique de comment et quand utiliser l'attaque Battering Ram dans votre flux de travail de test de sécurité des applications web.
Envoyer une requête de connexion à Intruder
Dans cette étape, vous allez lancer les outils nécessaires et capturer une requête de connexion d'exemple à envoyer à Burp Intruder pour la configuration de l'attaque.
Tout d'abord, ouvrez un terminal pour lancer Burp Suite. Vous le trouverez généralement dans le menu des applications ou vous pouvez le lancer depuis la ligne de commande. Pour ce laboratoire, nous supposerons qu'il est prêt à être lancé.
Ensuite, ouvrez le navigateur web Firefox fourni dans l'environnement du laboratoire.
Maintenant, configurons Burp Suite pour intercepter le trafic web.
- Dans Burp Suite, allez à l'onglet Proxy, puis au sous-onglet Intercept. Assurez-vous que l'interception est activée (le bouton doit indiquer "Intercept is on").
- Dans Firefox, configurez le navigateur pour utiliser le proxy de Burp. Allez dans Paramètres -> Paramètres réseau et définissez la configuration manuelle du proxy pour utiliser
127.0.0.1comme Proxy HTTP et8080comme Port. - Dans la barre d'adresse de Firefox, naviguez vers la page de connexion de notre application de test :
http://127.0.0.1:5000/login. - Entrez
testpour le nom d'utilisateur ettestpour le mot de passe, puis cliquez sur le bouton "Login".
La requête sera capturée dans l'onglet Proxy -> Intercept de Burp Suite. L'écran affichera la requête HTTP brute.
Enfin, envoyez cette requête capturée à Intruder. Faites un clic droit n'importe où dans la fenêtre de la requête et sélectionnez Send to Intruder dans le menu contextuel. Vous pouvez également utiliser le raccourci clavier Ctrl+I.
Vous pouvez maintenant aller à l'onglet Intruder, où vous verrez la requête chargée et prête pour la configuration.
Dans Positions, ajouter des marqueurs de charge utile aux champs Nom d'utilisateur et Mot de passe
Dans cette étape, vous allez définir les positions dans la requête HTTP où Burp Intruder doit placer ses charges utiles. Pour une attaque Battering Ram, nous allons marquer les champs nom d'utilisateur et mot de passe.
Naviguez vers l'onglet Intruder, puis vers le sous-onglet Positions. Vous verrez la requête que vous avez envoyée depuis l'onglet Proxy. Burp Suite ajoute automatiquement des marqueurs de charge utile (mis en évidence par des symboles §) aux parties de la requête qu'il juge intéressantes.
Pour cette attaque spécifique, nous voulons contrôler précisément les positions des charges utiles.
- Tout d'abord, cliquez sur le bouton Clear § sur le côté droit. Cela supprimera tous les marqueurs de charge utile générés automatiquement.
- Maintenant, localisez la ligne dans le corps de la requête qui contient le nom d'utilisateur et le mot de passe, qui devrait ressembler à
username=test&password=test. - Sélectionnez la valeur
testpour le paramètreusernameavec votre souris. - Cliquez sur le bouton Add §. La ligne devrait maintenant ressembler à
username=§test§&password=test. - Ensuite, sélectionnez la valeur
testpour le paramètrepassword. - Cliquez à nouveau sur le bouton Add §.
Après avoir terminé ces étapes, le corps de votre requête devrait avoir des marqueurs de charge utile autour des valeurs du nom d'utilisateur et du mot de passe, comme ceci :
username=§test§&password=§test§
Cette configuration indique à Intruder d'insérer des charges utiles dans ces deux emplacements spécifiques.
Définir le type d'attaque sur 'Battering Ram'
Dans cette étape, vous allez sélectionner le type d'attaque approprié pour notre scénario. Burp Intruder propose quatre types d'attaques différents, chacun ayant un objectif unique.
- Sniper : Utilise un seul ensemble de charges utiles, ciblant une position à la fois.
- Battering ram : Utilise un seul ensemble de charges utiles, plaçant la même charge utile dans toutes les positions marquées simultanément.
- Pitchfork : Utilise plusieurs ensembles de charges utiles, plaçant une charge utile de chaque ensemble dans les positions correspondantes.
- Cluster bomb : Utilise plusieurs ensembles de charges utiles, testant toutes les combinaisons possibles de charges utiles.
Pour notre objectif de tester si le nom d'utilisateur et le mot de passe sont identiques, l'attaque Battering ram est le choix parfait. Elle prendra une seule liste d'identifiants potentiels et essaiera chacun d'eux à la fois pour le nom d'utilisateur et le mot de passe dans la même requête.
Dans l'onglet Intruder -> Positions, localisez le menu déroulant Attack type en haut de l'écran. Par défaut, il est réglé sur "Sniper". Cliquez sur le menu déroulant et sélectionnez Battering ram.
Une fois sélectionné, Burp Intruder est maintenant configuré pour utiliser la logique d'attaque Battering Ram.
Configurer une liste de charges utiles simple (par exemple, test, guest)
Dans cette étape, vous allez fournir la liste des charges utiles que Intruder utilisera pour l'attaque. Étant donné que nous utilisons le type d'attaque Battering Ram, nous n'avons besoin de configurer qu'un seul ensemble de charges utiles.
- Naviguez vers l'onglet Intruder -> Payloads.
- La section "Payload Sets" devrait afficher "Payload set: 1" et "Payload type: Simple list". C'est la configuration par défaut et elle convient à nos besoins.
- Dans la section "Payload Options" ci-dessous, il y a une zone de texte pour ajouter vos charges utiles. Vous pouvez ajouter des charges utiles une par une en les tapant et en cliquant sur le bouton Add, ou vous pouvez coller une liste directement dans la boîte.
Pour ce laboratoire, ajoutons quelques identifiants par défaut ou faibles courants. Effacez toutes les charges utiles existantes dans la liste et ajoutez les suivantes :
testguestadminpassworduser
Votre liste "Payload Options" devrait maintenant ressembler à ceci :
test
guest
admin
password
user
Avec cette configuration, Intruder parcourra cette liste. Pour chaque élément, il placera cette valeur à la fois dans les champs username et password que nous avons marqués à l'étape 2.
Lancer l'attaque et analyser comment la même charge utile est utilisée dans les deux positions
Dans cette dernière étape, vous allez lancer l'attaque et analyser les résultats pour comprendre le fonctionnement de l'attaque Battering Ram.
- Assurez-vous que toutes vos configurations dans les onglets Positions et Payloads sont correctes.
- Dans le coin supérieur droit de la fenêtre Intruder, cliquez sur le bouton Start attack.
Une nouvelle fenêtre "Intruder attack" s'ouvrira et l'attaque commencera immédiatement. Vous verrez un tableau de résultats qui se remplit au fur et à mesure que chaque requête est envoyée.
Analysons les résultats :
- Tableau des résultats : Remarquez les colonnes "Payload", "Status" et "Length". La colonne "Payload" affiche la valeur utilisée de votre liste de charges utiles pour cette requête spécifique.
- Onglets Request/Response : Cliquez sur n'importe quelle ligne du tableau des résultats (par exemple, la ligne avec la charge utile
guest). En bas de la fenêtre, vous pouvez inspecter la Request et la Response pour cette tentative.- Dans l'onglet Request, vous verrez que la charge utile
guesta été insérée dans les deux paramètresusernameetpassword:username=guest&password=guest. Cela confirme le comportement de Battering Ram. - Dans l'onglet Response, vous pouvez voir la réponse du serveur.
- Dans l'onglet Request, vous verrez que la charge utile
Recherchez les anomalies dans les résultats. Une connexion réussie aura probablement un code de statut ou une longueur de réponse différent. Dans notre cas, la charge utile test devrait aboutir à une connexion réussie. Vous pouvez l'identifier en recherchant le message "Login successful!" dans le corps de la réponse ou en triant les résultats par "Length" pour voir quelle réponse est différente.
Cette analyse démontre comment l'attaque Battering Ram teste efficacement les cas où une seule entrée est utilisée dans plusieurs paramètres, un scénario courant dans les tests d'identifiants.
Résumé
Dans ce laboratoire, vous avez configuré et exécuté avec succès une attaque Battering Ram en utilisant Burp Suite Intruder.
Vous avez appris à :
- Capturer une requête HTTP en utilisant Burp Proxy et l'envoyer à Intruder.
- Effacer les marqueurs de charge utile par défaut et définir précisément des positions de charge utile personnalisées.
- Sélectionner le type d'attaque Battering Ram, en comprenant son cas d'utilisation spécifique.
- Configurer une liste de charges utiles simple pour l'attaque.
- Lancer l'attaque et analyser les résultats pour confirmer que la même charge utile a été utilisée dans toutes les positions spécifiées pour chaque requête.
Le Battering Ram est un outil précieux dans l'arsenal d'un testeur d'intrusion, en particulier pour tester les formulaires de connexion et autres fonctions où une seule donnée peut être utilisée comme plusieurs paramètres. Maîtriser cette technique améliorera l'efficacité et la pertinence de vos évaluations de sécurité des applications web.
