Introduction
Burp Suite est une plateforme puissante pour les tests de sécurité des applications web. L'un de ses outils les plus polyvalents est Burp Intruder, qui vous permet d'automatiser des attaques personnalisées contre les applications web. Intruder propose plusieurs types d'attaques, chacun conçu pour différents scénarios de test.
Le type d'attaque Pitchfork est utilisé lorsque vous avez besoin de tester simultanément plusieurs paramètres avec des charges utiles (payloads) différentes mais liées. Il utilise une liste de charges utiles distincte pour chaque position marquée. Pendant l'attaque, Intruder prend la première charge utile de la première liste et la combine avec la première charge utile de la deuxième liste, puis la deuxième avec la deuxième, et ainsi de suite. Ceci est idéal pour tester des choses comme une liste de paires nom d'utilisateur et mot de passe connues.
Dans ce laboratoire, vous apprendrez à configurer et à exécuter une attaque Pitchfork dans Burp Intruder contre un formulaire de connexion simple.
Envoyer une requête avec deux paramètres à Intruder
Dans cette étape, vous allez lancer Burp Suite, capturer une requête de connexion et l'envoyer à l'outil Intruder pour modification. L'environnement de laboratoire a déjà démarré une application web simple à tester.
Tout d'abord, ouvrez un terminal depuis le bureau et lancez 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 allons le lancer depuis le terminal.
burpsuite
Dans l'assistant de démarrage, sélectionnez "Temporary project" et cliquez sur "Next", puis cliquez sur "Start Burp".
Une fois Burp Suite ouvert, allez dans l'onglet Proxy, puis dans le sous-onglet Intercept. Cliquez sur le bouton "Open Browser". Cela lancera un navigateur Chromium pré-configuré pour fonctionner avec le proxy de Burp.
Dans le navigateur Burp, naviguez vers l'application cible en entrant l'URL suivante :
http://127.0.0.1:8000
Vous verrez un formulaire de connexion simple. Revenez à la fenêtre Burp Suite et désactivez l'interception en cliquant sur le bouton "Intercept is on" pour qu'il devienne "Intercept is off". Cela permet aux requêtes de circuler librement vers l'application.
Maintenant, retournez dans le navigateur. Entrez test pour le nom d'utilisateur et test pour le mot de passe, puis cliquez sur "Submit".
Revenez à la fenêtre Burp Suite et naviguez vers l'onglet Proxy > HTTP history. Vous devriez voir une requête POST /login dans la liste de l'historique. Faites un clic droit sur cette requête et sélectionnez "Send to Intruder".
Cette action envoie une copie de la requête à l'outil Intruder, où vous pouvez configurer l'attaque. Vous devriez voir l'onglet Intruder mis en surbrillance.
Ajouter des marqueurs de charge utile aux deux paramètres
Dans cette étape, vous allez définir les positions dans la requête où Intruder doit placer ses charges utiles. Pour une attaque Pitchfork, vous devez marquer chaque paramètre dont vous souhaitez tester les valeurs.
Naviguez vers l'onglet Intruder, puis vers le sous-onglet Positions. Vous verrez la requête POST /login capturée.
Burp Intruder identifie souvent automatiquement les positions potentielles de charge utile et les marque avec des symboles §. Pour ce laboratoire, nous voulons contrôler les positions avec précision. Tout d'abord, cliquez sur le bouton Clear § sur le côté droit pour supprimer tous les marqueurs par défaut.
Le corps de la requête en bas de la fenêtre ressemble à ceci :
username=test&password=test
Nous voulons insérer des charges utiles dans les valeurs des paramètres username et password.
- Dans l'éditeur de requête, sélectionnez la valeur
testdu paramètreusername. - Cliquez sur le bouton
Add §sur la droite. Le paramètre devrait maintenant ressembler àusername=§test§. - Ensuite, sélectionnez la valeur
testdu paramètrepassword. - Cliquez à nouveau sur le bouton
Add §. Le paramètre devrait maintenant ressembler àpassword=§test§.
Le corps de votre requête devrait maintenant comporter deux positions marquées :
username=§test§&password=§test§
Ces marqueurs indiquent à Intruder exactement où placer les charges utiles des ensembles de charges utiles correspondants.
Définir le type d'attaque sur 'Pitchfork'
Dans cette étape, vous allez sélectionner le type d'attaque Pitchfork. C'est le réglage crucial qui active le comportement d'injection de charges utiles appariées que nous voulons tester.
Tout en étant dans l'onglet Intruder > Positions, localisez le menu déroulant "Attack type" en haut de l'écran. Il est probablement défini sur Sniper par défaut.
Cliquez sur le menu déroulant. Vous verrez quatre options :
- Sniper: Utilise un seul ensemble de charges utiles et itère sur chaque position une par une.
- Battering ram: Utilise un seul ensemble de charges utiles et place la même charge utile dans toutes les positions simultanément.
- Pitchfork: Utilise plusieurs ensembles de charges utiles. Il associe la première charge utile de l'ensemble 1 avec la première de l'ensemble 2, la deuxième avec la deuxième, et ainsi de suite.
- Cluster bomb: Utilise plusieurs ensembles de charges utiles et teste toutes les combinaisons possibles de charges utiles.
Pour notre scénario de test de paires nom d'utilisateur/mot de passe, Pitchfork est le choix correct. Sélectionnez Pitchfork dans la liste.
Une fois que vous avez sélectionné Pitchfork, vous remarquerez que l'interface ne change pas beaucoup sur cet écran, mais Burp est maintenant prêt à gérer deux listes de charges utiles distinctes correspondant aux deux marqueurs de charge utile que vous avez définis à l'étape précédente.
Configurer deux listes de charges utiles distinctes dans l'onglet Payloads
Dans cette étape, vous allez configurer les deux listes de charges utiles que l'attaque Pitchfork utilisera. La première liste contiendra les noms d'utilisateur et la seconde les mots de passe correspondants.
Naviguez vers le sous-onglet Payloads dans l'onglet Intruder.
Étant donné que vous avez sélectionné le type d'attaque Pitchfork et que vous avez deux positions de charge utile, vous verrez un menu déroulant "Payload set". Cela vous permet de configurer chaque liste de charges utiles indépendamment.
Configurer l'ensemble de charges utiles 1 (Noms d'utilisateur) :
- Assurez-vous que le menu déroulant "Payload set" est réglé sur
1. - Le "Payload type" doit être "Simple list".
- Dans la section "Payload Options" ci-dessous, cliquez sur le bouton
Clearpour supprimer tous les éléments par défaut. - Cliquez sur le bouton
Addet entrez les noms d'utilisateur suivants, un par un :userguestadmintest
Configurer l'ensemble de charges utiles 2 (Mots de passe) :
- Sélectionnez maintenant
2dans le menu déroulant "Payload set". - Encore une fois, assurez-vous que le "Payload type" est "Simple list".
- Cliquez sur le bouton
Clearpour vider la liste. - Cliquez sur le bouton
Addet entrez les mots de passe suivants, qui correspondent aux noms d'utilisateur de la première liste :userpassguestpassword123test
Vous avez maintenant configuré deux listes de charges utiles distinctes. L'attaque Pitchfork les associera dans l'ordre : (user, userpass), (guest, guest), (admin, password123), et (test, test). Le nombre total de requêtes sera de 4, ce qui correspond à la taille de vos listes.
Lancer l'attaque et observer l'injection de charges utiles appariées
Dans cette dernière étape, vous allez lancer l'attaque et analyser les résultats pour voir l'attaque Pitchfork en action.
Avec le type d'attaque et les charges utiles configurés, vous êtes prêt à commencer. Dans le coin supérieur droit de l'onglet Intruder, cliquez sur le bouton "Start attack".
Une nouvelle fenêtre "Intruder attack (1)" s'ouvrira, affichant les résultats en temps réel. Observez le tableau des résultats. Vous verrez des colonnes pour "Payload 1" et "Payload 2".
Remarquez comment les charges utiles sont appariées exactement comme vous les avez configurées :
- La requête 1 utilise
useretuserpass. - La requête 2 utilise
guestetguest. - La requête 3 utilise
adminetpassword123. - La requête 4 utilise
testettest.
Maintenant, regardez les colonnes "Status" et "Length". La plupart des requêtes auront probablement le même code de statut (par exemple, 200) et la même longueur de réponse, indiquant une tentative de connexion échouée. Cependant, une requête devrait se démarquer. La requête avec la paire de charges utiles admin et password123 correspond à l'ensemble de credentials valide. Vous devriez voir une longueur de réponse différente pour cette requête, indiquant une réponse différente du serveur (par exemple, un message "Login successful!").
Exemple de résultats attendus :
| 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 |
En observant cette différence, vous avez identifié avec succès les credentials valides en utilisant une attaque Pitchfork. Vous pouvez maintenant fermer la fenêtre d'attaque.
Résumé
Dans ce laboratoire, vous avez configuré et exécuté avec succès une attaque Pitchfork en utilisant Burp Intruder.
Vous avez appris à :
- Intercepter une requête web à l'aide de Burp Proxy et l'envoyer à Intruder.
- Définir manuellement des marqueurs de charge utile sur plusieurs positions de paramètres.
- Sélectionner le type d'attaque
Pitchfork, conçu pour le fuzzing multi-paramètres liés. - Configurer deux listes de charges utiles distinctes et correspondantes pour les paramètres nom d'utilisateur et mot de passe.
- Lancer l'attaque et analyser les résultats pour identifier les anomalies, en trouvant avec succès les identifiants de connexion corrects en observant l'injection de charges utiles appariées.
L'attaque Pitchfork est une technique précieuse pour tester des scénarios où les données de plusieurs paramètres sont liées, tels que les noms d'utilisateur et les mots de passe, ou tout autre ensemble de données appariées.
