Comment utiliser Burp pour pirater les cookies et manipuler les sessions ?

Burp Suite est un outil d’attaque d’applications Web complet : il fait presque tout ce que vous pourriez vouloir faire lors d’un test de pénétration d’une application Web.

L’une des principales caractéristiques de Burp Suite est sa capacité à intercepter les requêtes HTTP.

  • Normalement, les requêtes HTTP vont de votre navigateur directement à un serveur Web, puis la réponse du serveur Web est renvoyée à votre navigateur.
  • Avec Burp Suite, les requêtes HTTP vont de votre navigateur directement à Burp Suite, qui intercepte le trafic.

Dans Burp Suite, vous pouvez ensuite modifier le HTTP brut de diverses manières avant de transmettre la demande au serveur Web. Cet outil agit essentiellement comme un proxy, un « homme du milieu » , entre vous et l’application Web, vous permettant d’avoir un contrôle plus fin sur le trafic exact que vous envoyez et recevez.

Tout d’abord, assurez-vous que Burp est correctement configuré avec votre navigateur

  • Désactivez l’onglet Proxy « Interception ».
  • Visitez la page de connexion de l’application que vous testez dans votre navigateur.
  • Connectez-vous à l’application que vous testez.
  • Vous pouvez vous connecter en utilisant les informations d’identification user:user.
  • Retournez à Burp.
  • Dans l’onglet Proxy « Intercept » , assurez-vous que « Intercept is on » .
  • Rafraîchissez la page dans votre navigateur.
  • La requête sera capturée par Burp, elle peut être visualisée dans l’onglet Proxy « Intercept » .
  • Les cookies peuvent être visualisés dans l’en-tête (cookie header).

Nous devons maintenant examiner et modifier chaque cookie individuel.

  • Faites un clic droit n’importe où sur la requête et cliquez sur « Send to Repeater » .
  • Vous pouvez également envoyer des requêtes à Repeater via le menu contextuel dans n’importe quel endroit où les requêtes HTTP sont affichées, comme le plan du site ou l’historique du proxy.
  • Allez à l’onglet Repeater.
  • Les cookies de la requête peuvent être modifiés facilement dans l’onglet « Params » .

En supprimant les cookies de la requête, nous pouvons vérifier la fonction de chaque cookie.

Dans cet exemple, si les cookies « username », « uid » et « PHPSESSID » sont supprimés, la session est terminée et l’utilisateur est déconnecté de l’application.

Nous pouvons utiliser le répétiteur pour supprimer les cookies et tester la réponse du serveur.

Supprimez et ajoutez des cookies à l’aide des boutons « Add » et « Remove » et utilisez le bouton « Go » pour transmettre les demandes au serveur.

Les cookies peuvent être modifiés dans le tableau « Params » de la requête.

Dans cet exemple, nous avons modifié la valeur du cookie « uid » à 1.

  • Modifiez la valeur puis cliquez sur le bouton « Go » .
  • La réponse du serveur peut être visualisée dans le panneau « Response » de Repeater.
  • La réponse montre qu’en modifiant le cookie « uid »­, nous nous sommes connectés à l’application en tant que « admin » .

Nous avons utilisé les cookies pour manipuler la session et accéder à un autre compte avec des privilèges élevés.

Les applications web modernes établissent une série de transactions entre le client et le serveur

Le protocole HTTP étant sans état, le moyen de suivre un utilisateur est de créer des sessions par utilisateur authentifié.

Dans ce paragraphe, nous allons explorer les différents niveaux de sécurité disponibles dans la cible DVWA et déterminer dans quelle mesure les cookies de session sont sécurisés et aléatoires.

  • Démarrez les machines DVWA et Kali Linux.
  • Ouvrez votre navigateur préféré et la suite Burp.
  • Configurez le navigateur pour utiliser Burp.
  • Avant de commencer, supprimez l’option ‘Intercept’ de Burp
  • Ouvrez la page de DVWA et réglez le niveau de sécurité sur faible.
  • Naviguez jusqu’à ‘Weak Session IDs’

Chaque fois que vous cliquez sur le bouton ‘Generate’, le cookie ‘dvwaSession’ reçoit une nouvelle valeur.

Analysons comment ces valeurs sont créées et dans quelle mesure elles sont sécurisées.

  • Cliquez sur le bouton et allez sur Burp.
  • Cliquez à nouveau sur le bouton et regardez Burp.

La première valeur de dvwaSession était ‘1’, puis ‘2’. La prochaine sera ‘3’. Il n’y a pas de hasard, les valeurs sont facilement prévisibles. Cela ouvre un vecteur d’attaque Man-In-The-Middle.

Utilisons l’une des fonctions dont dispose Burp Suite pour évaluer la qualité du caractère aléatoire, le séquenceur.

  • Faites un clic droit sur la requête
  • Choisissez « Envoyer au séquenceur »
  • Faites une capture en direct et une fois terminée, cliquez sur ‘Analyser maintenant’

Essayons le niveau de sécurité moyen.

  • Effacez le séquenceur et réglez la sécurité sur moyen.
  • Allez-y et cliquez sur générer plusieurs fois.

La valeur de dvwaSession semble plus sûre. Mais est-elle vraiment sécurisée ?

Utilisons le séquenceur de Burp pour le déterminer. Procédez comme précédemment pour obtenir des analyses.

Une fois de plus, les résultats sont mauvais et il n’y a pas de caractère aléatoire. La valeur de dvwaSession peut sembler sûre mais il s’agit en réalité de la date réelle en secondes.

  • Réglez la sécurité sur élevé
  • Cliquez plusieurs fois sur le bouton de génération
  • Analysez les échantillons avec Burp

Burp évalue la qualité du caractère aléatoire de la valeur comme excellente. Mais l’est-elle ? Prenez la valeur et essayez quelques algorithmes de conversion, comme MD5.

Ouvrez une fenêtre de terminal et tapez la commande :

$ findmyhash MD5 -h copy_hash_value

Après tout, ce n’est pas si imprenable. Analysez finalement dans Impossible.

burpcookiepiratersession