OWASP WebScarab:Onglets
Onglets
Summary
Si le navigateur est paramétré avec le proxy WebScarab, ce dernier analysera tout le contenu qui le traverse et l'affichera dans l'onglet Summary.
Messages
Cet onglet permet d'analyser tous les messages, dont les messages d'erreur.
Proxy
Listeners
Cet écran permet de modifier les paramètres du proxy WebScarab. En sélectionnant l'occurence dans la liste des listeners puis en cliquant sur "Stop", il est possible d'éditer les paramètres du proxy (adresse, port, limitation de bande passante).
Manual Edit
Cet onglet permet de spécifier si l'on souhaite intercepter les requêtes entrantes (Intercept responses) et sortantes (intercept requests) afin d'en analyser, voire modifier leur contenu. Il est possible de filtrer le type de requêtes à intercepter en sélectionnant les méthodes dans la liste "Methods".
Si WebScarab est paramétré pour intercepter les requêtes, celles-ci sont présentées dans une nouvelle fenêtre comme suit :
Lorsque la requête contient des paramètres, ceux-ci sont présentés dans un tableau de valeur. Il est possible de modifier toute ou partie de la requête directement dans cette fenêtre. Le bouton "Accept changes" permet d'appliquer les éventuelles modifications.
Bean Shell
Cet onglet permet de définir du code Java pour les opérations complexes sur les requêtes et les réponses.
Miscellaneous
Cet onglet permet d'activer les options suivantes :
- Reveal hidden fields in HTML pages : modifie dynamiquement les pages HTML afin de mettre en évidence les éventuels champs cachés (champs de type "hidden"). Il est alors possible de modifier leur valeur dans la page HTML directement.
- Prevent browser from caching content : force le navigateur à ne pas mettre les pages en cache
- Inject known cookies into requests : Insère dans toutes les requêtes l'ensemble des cookies connus
- Get cookies from responses : Intercepte les éventuels cookies afin d'en afficher le contenu dans les pages interceptées.
Manual Request
Cette fonctionnalité permet d'analyser les requêtes a posteriori (liste déroulante "Previous Requests"), de les modifier ainsi que de les rejouer (bouton "Fetch Response").
WebServices
Cette fonctionnalité permet d'analyser un fichier WSDL (Web Service Description Language) afin d'en présenter les fonctions (opérations) et les paramètres. La valeur de ces derniers peut alors être modifiée avant l'envoi de la requête au serveur.
Spider
Lorsqu'une page traverse WebScarab, son code est analysé. Ce plugin stocke tous les liens qu'elle contient et dresse une liste de tous ceux qui n'ont pas été visités. Il permet de télécharger une page sélectionnée (bouton "Fetch Selection" ou une arborescence sélectionnée (bouton "Fetch Tree"). Les éléments téléchargés apparaissent ensuite dans l'onglet "Summary".
Extensions
Ce plugin permet, lorsque les pages sont parcourues à travers WebScarab, de filtrer le contenu en fonction d'extensions de fichiers spécifiés (.bak, ~, etc.). Par exemple, si une page nommée login.jsp est parcourue, ce plugin recherchera l'éventuelle existence d'un fichier login.jsp.bak ou login.jsp~. Le bouton "Check" permet de lancer la recherche.
XSS/CRLF
Ce plugin permet de tester si les pages qui traversent WebScarab sont vulnérables à des attaques dites de Cross-Site-Scripting (XSS) ou d'injection Carriage Return Line Feed (CRLF).
Le bouton "Edit Test Strings" permet de spécifier les masques à appliquer pour déterminer si les pages sont vulnérables tandis que le bouton "Check" permet de lancer les tests.
SessionID Analysis
Ce plugin collecte et analyse les données contenues dans les cookies de session afin d'en déterminer leur fiabilité statistique quant à la génération des identifiants de session.
Collection
Cet onglet permet de récolter les données. Pour analyser un cookie, sélectionnez la page appropriée (type POST) dans la liste déroulante "Previous Requests" puis cliquez sur le bouton "Test". Si WebScarab a identifié un cookie avec succès, ses caractéristiques apparaîssent dans une popup. Dans le cas contraire, un message d'erreur apparaît.
Une fois un cookie identifié, le champ "Samples" permet de générer une suite d'identifiants. Saisissez par exemple "50" puis cliquez sur Fetch. Les résultats peuvent être analysés dans l'onglet "Analysis".
Analysis
Cet onglet permet d'analyser une suite d'identifiants générés par la fonction "Fetch" de l'onglet "Collection".
Sélectionnez le cookie à analyser dans la liste déroulante "Session Identifier" pour faire apparaître les résultats de la génération.
Visualisation
Cet onglet permet un rendu graphique de l'analyse effectuée sur les deux précédents onglets.
La capture suivante montre une génération tout à fait "linéaire", c'est à dire prévisible. Dans ce cas, il est aisé de déterminer les identifiants d'une session (Voir cas pratique dans WebGoat Hijack a session).
A contrario, lorsqu'un cookie intègre une notion d'aléa, la capture obtenue est plutôt du style suivant :
Scripted
Ce plugin offre la possibilité de créer des scripts de tests en utilisant les fonctionnalités de WebScarab. Le language de script est supporté par le Bean Scripting Framework (BSF), qui est language proche de Java. Pour plus d'informations, visitez le site http://www.beanshell.org/.
Fragments
Ce plugin permet de parcourir les commentaires et scripts contenus dans les réponses HTML transitant dans WebScarab.
Choisir le type (COMMENTS ou SCRIPTS) dans la liste déroulante afin de filtrer une page.
Fuzzer
Ce plugin de WebScarab permet d'effectuer du brute-force afin de forcer par exemple une authentification. Dans l'exemple qui suit, un formulaire simple programmé en PHP permet de vérifier que le couple "identifiant/mot de passe" correspond à "admin/password" :
Sur l'onglet "Fuzzer" de WebScarab, s'il est possible de remplir les champs manuellement, il est plus simple, à partir de l'onglet Summary, de sélectionner la page comme template pour le fuzzing (clic droit sur la requête POST, puis sélection de "Use as fuzz template" dans le menu contextuel) :
De retour à l'onglet "Fuzzer", on constate que les champs de celui-ci sont pré-remplis automatiquement :
Remplir la fenêtre "Sources" en suivant les indications suivantes :
En cliquant sur "Close", vous retournez sur l'écran principal. Utilisez la source précédemment définie pour les champs "u" (username) et "p" (password) puis saisissez des priorités différentes pour ces deux champs.
Vous auriez alors la possibilité de consulter les enregistrements un à un en double-cliquant dessus. Le plus simple est de se rendre à l'onglet "Compare", de sélectionner la dernière requête "POST", de trier les résultats par ordre de distance décroissante, puis de récupérer l'identifiant de la requête dont la distance est positive (ici #275).
Retournez maintenant à l'onglet "Fuzzer" afin de consulter la requête associée à l'identifiant retenu (double cliquez sur l'identifiant dans la liste des résultats). Nous connaissons maintenant la combinaison :
Compare
Ce plugin permet de calculer la distance d'édition entre deux requêtes, en comparant le nombre de différences (ou plutôt de "mots" différents) entre un corps de réponse de requête et une requête de base (référence), sélectionnée dans la liste déroulante des requêtes disponibles.
Search
Ce plugin permet de filtrer la liste des pages qui traversent WebScarab, en fonction d'un masque de recherche.