Introduction
Dans ce laboratoire, vous apprendrez à effectuer une attaque "Sniper", l'un des types d'attaques les plus fondamentaux et couramment utilisés dans l'outil Intruder de Burp Suite. Burp Intruder est un outil puissant pour automatiser des attaques personnalisées contre des applications web afin d'identifier et d'exploiter les vulnérabilités de sécurité.
L'attaque Sniper est conçue pour itérer à travers une liste de charges utiles (payloads), en les insérant une par une dans une seule position spécifiée au sein d'une requête HTTP. Cela la rend idéale pour des tâches telles que la devinette de noms d'utilisateur, la recherche de jetons de réinitialisation de mot de passe, ou le fuzzing d'un seul paramètre pour détecter des vulnérabilités.
Nous allons parcourir le processus d'envoi d'une requête à Intruder, de configuration de la position de la charge utile, de sélection du type d'attaque Sniper, de chargement d'une liste de charges utiles simple, et enfin, de lancement de l'attaque et d'analyse des résultats. Pour ce laboratoire, Burp Suite est déjà installé dans l'environnement.
Dans Intruder > Positions, sélectionnez une valeur de paramètre et cliquez sur 'Add §'
Dans cette étape, vous allez définir la cible de votre attaque. Après avoir envoyé une requête à Intruder, vous devez spécifier exactement où les charges utiles doivent être insérées.
Tout d'abord, vous devez disposer d'une requête avec laquelle travailler. Aux fins de ce laboratoire, nous supposerons que vous avez déjà intercepté une requête de connexion dans le Proxy de Burp et que vous l'avez envoyée à Intruder (en cliquant avec le bouton droit sur la requête et en choisissant "Send to Intruder"). La requête dans Intruder pourrait ressembler à ceci :
POST /login HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 27
username=myuser&password=mypass
Par défaut, Burp Intruder ajoute automatiquement des marqueurs de charge utile (§) autour de ce qu'il considère comme des parties intéressantes de la requête. Pour obtenir un contrôle précis, il est préférable de les effacer et de définir les vôtres.
- Naviguez vers l'onglet
Intruder>Positions. - Cliquez sur le bouton
Clear §sur le côté droit pour supprimer tous les marqueurs de charge utile ajoutés automatiquement. - Dans l'éditeur de requête, utilisez votre souris pour surligner uniquement la valeur du paramètre
username(dans ce cas,myuser). - Avec la valeur surlignée, cliquez sur le bouton
Add §.
Votre requête devrait maintenant ressembler à ceci, avec uniquement la valeur du nom d'utilisateur marquée comme position de charge utile :
POST /login HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 27
username=§myuser§&password=mypass
Cela indique à Intruder de n'insérer des charges utiles qu'à la place de myuser, laissant le reste de la requête inchangé pour chaque tentative.
Définir le type d'attaque sur 'Sniper'
Dans cette étape, vous allez sélectionner le type d'attaque approprié pour votre objectif. Burp Intruder propose quatre types d'attaques différents, chacun ayant un but distinct. Pour ce laboratoire, nous utiliserons Sniper.
Voici un bref aperçu des types d'attaques :
- Sniper : Utilise un seul ensemble de charges utiles (payload set). Il cible chaque position de charge utile (
§...§) une par une. Pour chaque position, il itère à travers chaque charge utile de la liste. C'est le type le plus courant pour le fuzzing d'un seul paramètre. - Battering ram : Utilise un seul ensemble de charges utiles. Il insère la même charge utile dans toutes les positions de charge utile définies simultanément.
- Pitchfork : Utilise plusieurs ensembles de charges utiles. Pour chaque requête, il prend une charge utile de chaque ensemble et les place dans leurs positions correspondantes.
- Cluster bomb : Utilise plusieurs ensembles de charges utiles. Il teste toutes les combinaisons possibles de charges utiles de tous les ensembles.
Étant donné que notre objectif est de tester une liste de noms d'utilisateur différents dans un seul paramètre, Sniper est le choix idéal.
Pour définir le type d'attaque :
- Restez dans l'onglet
Intruder>Positions. - Localisez le menu déroulant
Attack typeen haut de l'écran. - Cliquez sur le menu déroulant et sélectionnez
Sniperdans la liste.
Vous avez maintenant configuré Intruder pour utiliser la méthode d'attaque Sniper.
Naviguer vers l'onglet Intruder > Payloads
Dans cette étape, vous allez accéder à la section où vous définissez les données réelles qui seront utilisées dans l'attaque. Maintenant que vous avez configuré la position cible (username) et le type d'attaque (Sniper), la prochaine étape logique est de fournir la liste des charges utiles (payloads).
Les charges utiles sont les valeurs que Intruder substituera à la position §...§ que vous avez définie à l'étape 1.
Pour continuer, naviguez simplement vers le sous-onglet Payloads dans l'outil Intruder. Vous le trouverez juste à côté de l'onglet Positions sur lequel vous travailliez. Cliquer sur cet onglet vous mènera à l'écran de configuration des charges utiles, où vous configurerez votre liste de noms d'utilisateur potentiels à l'étape suivante.
Charger une liste simple de charges utiles (par exemple, admin, test, user)
Dans cette étape, vous allez configurer la liste des charges utiles pour l'attaque. Comme notre type d'attaque est Sniper et que nous avons une position de charge utile, nous n'avons besoin de configurer qu'un seul ensemble de charges utiles.
Dans l'onglet Intruder > Payloads, vous verrez les sections Payload Sets et Payload Options.
- Dans la section
Payload Sets, assurez-vous quePayload setest défini sur1etPayload typesurSimple list. C'est la valeur par défaut et elle est utilisée pour fournir une liste simple de chaînes de caractères. - Dans la section
Payload Options [Simple list], vous ajouterez vos charges utiles. Vous pouvez le faire en tapant directement dans la zone de texte ou en utilisant le boutonAdd.
Ajoutons quelques noms d'utilisateur courants à tester : Dans la zone de texte, tapez les valeurs suivantes, chacune sur une nouvelle ligne :
admin
test
user
root
guest
Votre section Payload Options devrait maintenant contenir cette liste. Intruder enverra une requête pour chaque ligne de cette liste, en substituant la valeur au paramètre username que vous avez marqué précédemment. Le Payload Count en bas devrait maintenant afficher 5.
Lancer l'attaque et observer le tableau des résultats
Dans cette étape, vous allez lancer l'attaque configurée et analyser le résultat. Avec la position, le type d'attaque et les charges utiles tous configurés, vous êtes prêt à commencer.
- Pour lancer l'attaque, cliquez sur le bouton
Start attacksitué dans le coin supérieur droit de l'ongletIntruder. - Une nouvelle fenêtre "Attack" s'ouvrira, affichant un tableau de résultats. Cette fenêtre se remplira en temps réel à mesure qu'Intruder envoie chaque requête.
Le tableau des résultats est la partie la plus importante du processus. Portez une attention particulière aux colonnes, notamment :
- Payload : La charge utile spécifique utilisée pour cette requête (par exemple,
admin,test). - Status : Le code d'état HTTP de la réponse (par exemple,
200,302,401). - Length : La taille du corps de la réponse en octets.
Pour trouver des vulnérabilités potentielles ou des noms d'utilisateur valides, recherchez des anomalies. Par exemple, une connexion réussie pourrait entraîner un statut 302 Found (redirection vers un tableau de bord), tandis que toutes les tentatives échouées entraînent un 200 OK (réaffichage de la page de connexion). De même, une réponse pour un nom d'utilisateur valide pourrait avoir une Length différente des autres car le message d'erreur change (par exemple, "Incorrect password" contre "User not found").
En triant le tableau par les colonnes Status ou Length, vous pouvez facilement repérer les réponses qui diffèrent de la référence, indiquant une découverte potentielle.
Résumé
Dans ce laboratoire, vous avez réussi à effectuer une attaque Sniper de base en utilisant Burp Intruder. C'est une compétence fondamentale pour tout testeur de sécurité d'applications web.
Vous avez appris à :
- Isoler un paramètre de requête spécifique pour les tests dans l'onglet
Positionsen effaçant les marqueurs par défaut et en ajoutant les vôtres. - Définir le type d'attaque sur
Sniper, ce qui est idéal pour tester un seul paramètre avec une liste de charges utiles. - Naviguer vers l'onglet
Payloadset charger une liste simple et personnalisée d'entrées potentielles. - Lancer l'attaque et analyser le tableau des résultats, en recherchant des anomalies dans les codes d'état HTTP et les longueurs de réponse pour identifier un comportement intéressant.
Maîtriser l'attaque Sniper dans Burp Intruder fournit une méthode puissante pour automatiser les tâches de test répétitives telles que l'énumération de noms d'utilisateur, la devinette de mots de passe et le fuzzing pour les vulnérabilités courantes.
