Introduction
Ce laboratoire présente Hackbar, une extension de navigateur puissante utilisée par les professionnels de la cybersécurité pour les tests de sécurité des applications web. Vous apprendrez comment installer et configurer Hackbar, et comment utiliser ses fonctionnalités pour tester les applications web afin de détecter les vulnérabilités de sécurité courantes. À la fin de ce laboratoire, vous comprendrez les bases des tests de sécurité et aurez une expérience pratique avec l'un des outils de test de sécurité les plus largement utilisés.
Installation de l'extension Hackbar
Dans cette étape, vous allez installer l'extension Hackbar dans le navigateur Firefox. Hackbar est un outil de test de sécurité qui aide à analyser et à manipuler les requêtes HTTP.
Comprendre les extensions de navigateur
Les extensions de navigateur sont de petits programmes logiciels qui personnalisent l'expérience de navigation. Les extensions de sécurité comme Hackbar ajoutent des outils spécialisés pour les tests de sécurité directement dans votre navigateur.
Installation du navigateur Firefox
Tout d'abord, assurons-nous que Firefox est installé sur notre système :
sudo apt update
sudo apt install firefox -y
Une fois la commande terminée, vous verrez une sortie indiquant que Firefox a été installé ou est déjà présent.
Installation de l'extension Hackbar
Nous allons maintenant installer l'extension Hackbar :
- Ouvrez le navigateur Firefox en cliquant sur l'icône Firefox dans le menu des applications ou en exécutant cette commande dans le terminal :
firefox &
- Dans Firefox, accédez à la page de l'extension en saisissant cette URL dans la barre d'adresse :
https://addons.mozilla.org/en-US/firefox/addon/hackbar/
Cliquez sur le bouton "Ajouter à Firefox".
Dans la boîte de dialogue de confirmation qui apparaît, cliquez sur "Ajouter" pour confirmer l'installation.
Après l'installation, vous verrez une notification indiquant que Hackbar a été ajouté à Firefox.
Vérification de l'installation
Pour vérifier que Hackbar est correctement installé :
Recherchez l'icône Hackbar dans la barre d'outils de Firefox (apparaît généralement sous la forme d'une petite icône "HB").
Cliquez sur l'icône pour ouvrir le panneau Hackbar. Vous devriez voir une barre d'outils avec diverses options de test de sécurité apparaître sous la barre d'adresse.
Si vous ne voyez pas l'icône, cliquez sur le bouton de menu (trois lignes horizontales dans le coin supérieur droit), sélectionnez "Modules complémentaires et thèmes", puis cliquez sur "Extensions" pour confirmer que Hackbar est répertorié.
Comprendre l'interface Hackbar
L'interface Hackbar se compose de plusieurs sections :
- Champ URL (URL Field) : Où vous pouvez afficher et modifier l'URL actuelle
- Sélection de la méthode (Method Selection) : Choisissez entre GET, POST et d'autres méthodes HTTP
- Charger l'URL (Load URL) : Charge l'URL de la page actuelle dans Hackbar
- Exécuter (Execute) : Envoie la requête modifiée
- Outils d'encodage/décodage (Encoding/Decoding Tools) : Diverses options pour transformer les données
Prenez un moment pour explorer l'interface en cliquant sur différentes options de menu pour voir quelles fonctionnalités sont disponibles.
Pourquoi Hackbar est important pour les tests de sécurité
Hackbar permet aux professionnels de la sécurité de :
- Modifier les requêtes HTTP en temps réel
- Tester les vulnérabilités d'injection SQL
- Encoder et décoder les données dans divers formats
- Manipuler les cookies et les en-têtes
- Tester les vulnérabilités de Cross-Site Scripting (XSS)
Tout au long de ce laboratoire, vous apprendrez à utiliser ces fonctionnalités pour effectuer des tests de sécurité de base.
Manipulation et encodage de base des URL
Dans cette étape, vous apprendrez à utiliser Hackbar pour la manipulation d'URL et les opérations d'encodage/décodage, qui sont des compétences fondamentales pour les tests de sécurité.
Lancement d'un site web de test
À des fins de pratique, nous allons configurer un simple site web de test. Ouvrez un nouveau terminal et exécutez :
mkdir -p ~/project/test-website
cd ~/project/test-website
Maintenant, créez un fichier HTML de base avec un formulaire simple :
cat > index.html << EOF
<!DOCTYPE html>
<html>
<head>
<title>Test Website</title>
</head>
<body>
<h1>Login Form</h1>
<form action="login.php" method="GET">
<label for="username">Username:</label>
<input type="text" id="username" name="username"><br><br>
<label for="password">Password:</label>
<input type="password" id="password" name="password"><br><br>
<input type="submit" value="Login">
</form>
</body>
</html>
EOF
Démarrons un simple serveur HTTP pour héberger cette page :
python3 -m http.server 8080
Vous devriez voir une sortie indiquant que le serveur est en cours d'exécution sur le port 8080 :
Serving HTTP on 0.0.0.0 port 8080 (http://0.0.0.0:8080/) ...
Accéder au site web de test
Ouvrez une nouvelle fenêtre Firefox (laissez le serveur en cours d'exécution dans le terminal) et accédez à :
http://localhost:8080
Vous devriez voir un simple formulaire de connexion avec des champs nom d'utilisateur et mot de passe.
Utilisation de Hackbar pour manipuler les URL
Utilisons maintenant Hackbar pour manipuler l'URL :
Cliquez sur l'icône Hackbar pour ouvrir le panneau Hackbar.
Cliquez sur le bouton "Charger l'URL" (Load URL) pour charger l'URL actuelle dans Hackbar.
Vous devriez voir
http://localhost:8080dans le champ URL de Hackbar.Essayez de modifier l'URL en ajoutant un chemin, par exemple :
- Remplacez-la par
http://localhost:8080/index.html - Cliquez sur "Exécuter" (Execute) pour envoyer la requête
- Remplacez-la par
Remplissez le formulaire de connexion avec des informations d'identification de test (par exemple, nom d'utilisateur : "admin", mot de passe : "password") et cliquez sur le bouton Connexion.
Observez l'URL dans la barre d'adresse. Elle devrait ressembler à ceci :
http://localhost:8080/login.php?username=admin&password=passwordLa page affichera probablement une erreur "Not Found" car login.php n'existe pas, mais nous sommes intéressés par la structure de l'URL.
Ouvrez à nouveau Hackbar et cliquez sur "Charger l'URL" pour charger cette nouvelle URL.
Manipulation des paramètres d'URL
Les tests de sécurité impliquent souvent la manipulation des paramètres d'URL :
Dans Hackbar, localisez le champ URL contenant l'URL de connexion.
Essayez de modifier le paramètre username :
- Remplacez
username=adminparusername=admin' - Cliquez sur "Exécuter" (Execute) pour envoyer la requête
- Remplacez
Cette simple modification ajoute un caractère d'apostrophe, ce qui est une technique courante pour tester les vulnérabilités d'injection SQL.
Encodage et décodage avec Hackbar
Hackbar offre diverses options d'encodage/décodage :
Dans Hackbar, cliquez sur le menu "Encodage" (Encoding) pour voir les options disponibles.
Essayez l'encodage d'URL :
- Tapez du texte avec des caractères spéciaux dans le champ URL, tel que
test space & special - Sélectionnez le texte que vous souhaitez encoder
- Dans le menu "Encodage" (Encoding), sélectionnez "URL encode"
- Le texte sélectionné sera converti au format encodé en URL
- Tapez du texte avec des caractères spéciaux dans le champ URL, tel que
Essayez l'encodage Base64 :
- Tapez du texte dans le champ URL, tel que
hackbar test - Sélectionnez le texte que vous souhaitez encoder
- Dans le menu "Encodage" (Encoding), sélectionnez "Base64 encode"
- Le texte sélectionné sera converti au format Base64
- Tapez du texte dans le champ URL, tel que
Essayez le décodage :
- Sélectionnez le texte encodé
- Dans le menu "Encodage" (Encoding), sélectionnez l'option de décodage appropriée (URL decode ou Base64 decode)
- Le texte sera reconverti dans son format d'origine
Ces fonctions d'encodage/décodage sont essentielles lors des tests d'applications web pour les vulnérabilités de sécurité, car elles vous permettent de manipuler les données dans divers formats.
Arrêt du serveur de test
Lorsque vous avez terminé cette étape, revenez au terminal où le serveur HTTP Python est en cours d'exécution et appuyez sur Ctrl+C pour l'arrêter.
Techniques de test de sécurité de base
Dans cette étape, vous apprendrez à effectuer des tests de sécurité de base à l'aide de Hackbar. Vous configurerez un environnement de pratique vulnérable et testerez les vulnérabilités de sécurité courantes.
Configuration d'un environnement de pratique vulnérable
Pour la pratique éthique des tests de sécurité, nous allons configurer une simple application PHP vulnérable. Tout d'abord, créons les fichiers nécessaires :
cd ~/project/test-website
Maintenant, créez un simple fichier PHP vulnérable :
cat > login.php << EOF
<?php
// This is an intentionally vulnerable script for educational purposes only
// Get the username from GET parameter
\$username = isset(\$_GET['username']) ? \$_GET['username'] : '';
\$password = isset(\$_GET['password']) ? \$_GET['password'] : '';
echo "<h1>Login Results</h1>";
// Vulnerable to SQL injection (DO NOT USE THIS IN PRODUCTION!)
echo "<div>SQL query that would be executed:</div>";
echo "<pre>SELECT * FROM users WHERE username = '\$username' AND password = '\$password'</pre>";
// Check for SQL injection attempts
if (strpos(\$username, "'") !== false || strpos(\$password, "'") !== false) {
echo "<p style='color:red'>SQL Injection detected! In a real application, this might exploit a vulnerability.</p>";
}
// XSS vulnerability demonstration
echo "<div>Welcome back, " . \$username . "!</div>";
?>
EOF
Démarrons le serveur de développement PHP pour exécuter notre application vulnérable :
php -S localhost:8080
Vous devriez voir une sortie indiquant que le serveur est en cours d'exécution :
PHP 7.x.x Development Server started at ...
Listening on http://localhost:8080
Document root is /home/labex/project/test-website
Test de l'injection SQL
L'injection SQL est une vulnérabilité courante où les attaquants peuvent manipuler les requêtes SQL via les entrées utilisateur. Testons-la :
Ouvrez Firefox et accédez à notre application de test :
http://localhost:8080/Entrez "admin" comme nom d'utilisateur et "password" comme mot de passe, puis cliquez sur "Login".
Vous devriez être redirigé vers une page affichant la requête SQL qui serait exécutée :
SELECT * FROM users WHERE username = 'admin' AND password = 'password'Maintenant, essayons une attaque d'injection SQL de base. Cliquez sur l'icône Hackbar pour l'ouvrir.
Cliquez sur "Charger l'URL" (Load URL) pour charger l'URL actuelle dans Hackbar.
Dans le champ URL, localisez le paramètre username et modifiez-le en :
username=admin' OR '1'='1L'URL complète devrait ressembler à ceci :
http://localhost:8080/login.php?username=admin' OR '1'='1&password=passwordCliquez sur "Exécuter" (Execute) pour envoyer la requête modifiée.
Observez la réponse. Vous devriez voir le message de détection d'injection SQL et la requête SQL modifiée :
SELECT * FROM users WHERE username = 'admin' OR '1'='1' AND password = 'password'
Cela démontre comment l'injection SQL peut potentiellement modifier la logique de la requête. Dans une véritable application vulnérable, cela pourrait contourner l'authentification.
Test du Cross-Site Scripting (XSS)
Le Cross-Site Scripting (XSS) est une autre vulnérabilité courante où les attaquants peuvent injecter des scripts côté client dans des pages web. Testons-la :
Ouvrez Hackbar et cliquez sur "Charger l'URL" (Load URL) pour charger l'URL actuelle.
Modifiez le paramètre username pour inclure une simple alerte JavaScript :
username=<script>alert('XSS')</script>Cliquez sur "Encoder" (Encode) → "URL encode selection" pour encoder le script en URL. Ceci est nécessaire car les caractères spéciaux dans les URL doivent être encodés.
L'URL encodée devrait ressembler à ceci :
http://localhost:8080/login.php?username=%3Cscript%3Ealert%28%27XSS%27%29%3C%2Fscript%3E&password=passwordCliquez sur "Exécuter" (Execute) pour envoyer la requête modifiée.
Si l'application est vulnérable au XSS, vous devriez voir une fenêtre contextuelle d'alerte JavaScript indiquant "XSS". Notre simple script PHP démontre cette vulnérabilité en affichant directement le paramètre username sans assainissement approprié.
Utilisation des fonctionnalités supplémentaires de Hackbar
Hackbar offre plusieurs autres fonctionnalités utiles pour les tests de sécurité :
Manipulation des en-têtes HTTP
Dans Hackbar, cliquez sur l'onglet "En-têtes" (Headers).
Vous pouvez ajouter des en-têtes personnalisés tels que "User-Agent" ou "Referer" pour tester comment l'application gère différentes informations client.
Ajoutez un en-tête personnalisé :
- Cliquez sur "Ajouter un en-tête personnalisé" (Add Custom Header)
- Pour Nom (Name), entrez
User-Agent - Pour Valeur (Value), entrez
HackbarTester/1.0 - Cliquez sur "Ajouter/Mettre à jour l'en-tête" (Add/Update Header)
Cliquez sur "Exécuter" (Execute) pour envoyer la requête avec l'en-tête modifié.
Manipulation des cookies
Dans Hackbar, cliquez sur l'onglet "Cookies".
Ici, vous pouvez afficher et modifier les cookies existants ou en ajouter de nouveaux.
Essayez d'ajouter un nouveau cookie :
- Pour Nom (Name), entrez
test_cookie - Pour Valeur (Value), entrez
hackbar_value - Cliquez sur "Ajouter/Mettre à jour le cookie" (Add/Update Cookie)
- Pour Nom (Name), entrez
Cliquez sur "Exécuter" (Execute) pour envoyer la requête avec le cookie modifié.
Éthique et bonnes pratiques en matière de tests de sécurité
N'oubliez pas ces directives éthiques importantes :
- Effectuez des tests de sécurité uniquement sur les systèmes que vous possédez ou pour lesquels vous avez une autorisation explicite de tester.
- Documentez toutes vos découvertes et signalez les vulnérabilités de manière responsable.
- N'utilisez jamais d'outils de test de sécurité pour causer du tort ou accéder à des données non autorisées.
- Suivez toujours les réglementations légales et les normes éthiques.
Arrêt du serveur de test
Lorsque vous avez terminé cette étape, revenez au terminal où le serveur PHP est en cours d'exécution et appuyez sur Ctrl+C pour l'arrêter.
Résumé
Dans ce laboratoire, vous avez appris à utiliser Hackbar, une extension de navigateur puissante pour les tests de sécurité. Vous avez acquis des compétences fondamentales, notamment :
- L'installation et la configuration de l'extension Hackbar dans Firefox
- L'utilisation de Hackbar pour manipuler les URL et les paramètres
- L'application des techniques d'encodage et de décodage
- Le test des vulnérabilités web courantes telles que l'injection SQL et XSS
- La compréhension des considérations éthiques des tests de sécurité
Ces compétences constituent la base des tests de sécurité des applications web. Au fur et à mesure que vous poursuivrez votre parcours en cybersécurité, vous pourrez vous appuyer sur ces bases pour développer des techniques de test de sécurité plus avancées. N'oubliez pas que les tests de sécurité doivent toujours être effectués de manière éthique, avec une autorisation appropriée et conformément aux lois et réglementations en vigueur.