Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
web-hacking-playground — Application web avec des vulnérabilités trouvées dans des cas réels, à la fois lors de tests d'intrusion et dans des programmes Bug Bounty. | Kitploit
Outils/GitHubGitHub/takito1812/web-hacking-playground
Analyse des VulnérabilitésExploitation d'Applications WebSécurité WebCTFTests d'IntrusionApprentissage et ÉducationLabs et Pratique
GitHubtakito1812/web-hacking-playground

web-hacking-playground

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Application web avec des vulnérabilités trouvées dans des cas réels, à la fois lors de tests d'intrusion et dans des programmes Bug Bounty.

Voir le dépôt
17234il y a 2 ansVérifié par Kitploit

Web Hacking Playground

Description

Web Hacking Playground est un environnement de hacking web contrôlé. Il contient des vulnérabilités trouvées dans des cas réels, à la fois dans des tests d'intrusion et dans des programmes de Bug Bounty. L'objectif est que les utilisateurs puissent s'entraîner avec celles-ci et apprendre à les détecter et à les exploiter.

D'autres sujets d'intérêt seront également abordés, tels que : le contournement de filtres par la création de payloads personnalisés, l'exécution d'attaques en chaîne exploitant diverses vulnérabilités, le développement de scripts de preuve de concept, entre autres.

Important

Le code source de l'application est visible. Cependant, l'approche du laboratoire est celle d'une boîte noire. Par conséquent, le code ne doit pas être examiné pour résoudre les défis.

De plus, il convient de noter que le fuzzing (à la fois des paramètres et des répertoires) et les attaques par force brute n'offrent aucun avantage dans ce laboratoire.

Configuration

Il est recommandé d'utiliser Kali Linux pour réaliser ce laboratoire. En cas d'utilisation d'une machine virtuelle, il est conseillé d'utiliser l'hyperviseur VMware Workstation Player.

L'environnement est basé sur Docker et Docker Compose, il est donc nécessaire d'avoir les deux installés.

Pour installer Docker sur Kali Linux, exécutez les commandes suivantes :

root@kitploit:~
sudo apt update -y
sudo apt install -y docker.io
sudo systemctl enable docker --now

Pour installer Docker sur d'autres distributions basées sur Debian, exécutez les commandes suivantes :

root@kitploit:~
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo systemctl enable docker --now

Pour installer Docker Compose, exécutez la commande suivante :

root@kitploit:~
sudo apt install -y docker-compose

Note : En cas d'utilisation de M1, il est recommandé d'exécuter la commande suivante avant de construire les images :

root@kitploit:~
export DOCKER_DEFAULT_PLATFORM=linux/amd64

L'étape suivante consiste à cloner le dépôt et à construire les images Docker :

root@kitploit:~
git clone https://github.com/takito1812/web-hacking-playground.git
cd web-hacking-playground
sudo docker-compose build

Il est également recommandé d'installer l'extension de navigateur Foxy Proxy, qui permet de modifier facilement les paramètres du proxy, et Burp Suite, que nous utiliserons pour intercepter les requêtes HTTP.

Nous allons créer un nouveau profil dans Foxy Proxy pour utiliser Burp Suite comme proxy. Pour ce faire, allez dans les options de Foxy Proxy et ajoutez un proxy avec la configuration suivante :

  • Proxy Type: HTTP
  • Proxy IP address: 127.0.0.1
  • Port: 8080

Déploiement

Une fois tout ce dont vous avez besoin installé, vous pouvez déployer l'environnement avec la commande suivante :

root@kitploit:~
git clone https://github.com/takito1812/web-hacking-playground.git
cd web-hacking-playground
sudo docker-compose up -d

Cela créera deux conteneurs d'applications développées en Flask sur le port 80 :

  • L'application web vulnérable (Socially) : Simule un réseau social.
  • Le serveur d'exploitation : Vous ne devez pas essayer de le pirater, car il ne comporte aucune vulnérabilité. Son objectif est de simuler l'accès d'une victime à un lien malveillant.

Important

Il est nécessaire d'ajouter l'IP des conteneurs au fichier /etc/hosts, afin qu'ils puissent être accessibles par nom et que le serveur d'exploitation puisse communiquer avec l'application web vulnérable. Pour ce faire, exécutez les commandes suivantes :

root@kitploit:~
sudo sed -i '/whp-/d' /etc/hosts
echo "$(sudo docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' whp-socially) whp-socially" | sudo tee -a /etc/hosts
echo "$(sudo docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' whp-exploitserver) whp-exploitserver" | sudo tee -a /etc/hosts

Une fois cela fait, l'application vulnérable est accessible depuis http://whp-socially et le serveur d'exploitation depuis http://whp-exploitserver.

Lorsque vous utilisez le serveur d'exploitation, les URLs ci-dessus doivent être utilisées, en utilisant le nom de domaine et non les IP. Cela garantit une communication correcte entre les conteneurs.

En ce qui concerne le piratage, pour représenter le serveur de l'attaquant, l'IP Docker locale doit être utilisée, car le laboratoire n'est pas destiné à envoyer des requêtes à des serveurs externes tels que Burp Collaborator, Interactsh, etc. Un serveur HTTP Python peut être utilisé pour simuler un serveur web et recevoir des interactions HTTP. Pour ce faire, exécutez la commande suivante :

root@kitploit:~
sudo python3 -m http.server 80

Étapes

L'environnement est divisé en trois étapes, chacune avec des vulnérabilités différentes. Il est important de les réaliser dans l'ordre, car les vulnérabilités des étapes suivantes s'appuient sur celles des étapes précédentes. Les étapes sont :

  • Étape 1 : Accès avec n'importe quel utilisateur
  • Étape 2 : Accès en tant qu'admin
  • Étape 3 : Lire le fichier /flag

Important

Ci-dessous se trouvent des spoilers pour les vulnérabilités de chaque étape. Si vous n'avez pas besoin d'aide, vous pouvez passer cette section. En revanche, si vous ne savez pas par où commencer ou si vous voulez vérifier si vous êtes sur la bonne voie, vous pouvez dérouler la section qui vous intéresse.

Étape 1 : Accès avec n'importe quel utilisateur

Afficher

À cette étape, la session d'un utilisateur spécifique peut être volée via Cross-Site Scripting (XSS), ce qui permet d'exécuter du code JavaScript. Pour ce faire, la victime doit pouvoir accéder à une URL dans le contexte de l'utilisateur ; ce comportement peut être simulé avec le serveur d'exploitation.

Les indices pour résoudre cette étape sont :

  • Y a-t-il des publications frappantes sur la page d'accueil ?
  • Vous devez enchaîner deux vulnérabilités pour voler la session. Le XSS est réalisé en exploitant une vulnérabilité de redirection ouverte (Open Redirect), où la victime est redirigée vers une URL externe.
  • La redirection ouverte comporte certaines restrictions de sécurité. Vous devez trouver comment les contourner. Analysez quelles chaînes ne sont pas autorisées dans l'URL.
  • Les cookies ne sont pas le seul endroit où les informations de session sont stockées. L'examen du code source des fichiers JavaScript inclus dans l'application peut aider à clarifier les doutes.

Étape 2 : Accès en tant qu'admin

Afficher

À cette étape, un jeton peut être généré qui permet un accès en tant qu'admin. Il s'agit d'une attaque typique de JSON Web Token (JWT), dans laquelle le payload du jeton peut être modifié pour élever les privilèges.

L'indice pour résoudre cette étape est qu'il existe un endpoint qui, étant donné un JWT, retourne un cookie de session valide.

Étape 3 : Lire le fichier /flag

Afficher

À cette étape, le fichier /flag peut être lu via une vulnérabilité de Server Site Template Injection (SSTI). Pour ce faire, vous devez amener l'application à exécuter du code Python sur le serveur. Il est possible d'exécuter des commandes système sur le serveur.

Les indices pour résoudre cette étape sont :

  • La fonctionnalité vulnérable est protégée par une authentification à deux facteurs. Par conséquent, avant d'exploiter la SSTI, un moyen de contourner la demande de code OTP doit être trouvé. Il arrive que l'application fasse confiance aux requêtes provenant du même serveur et les en-têtes HTTP jouent un rôle important dans cette situation.

  • La SSTI est aveugle (Blind), cela signifie que la sortie du code exécuté sur le serveur n'est pas obtenue directement. Le module Python smtpd permet de créer un serveur SMTP qui imprime les messages qu'il reçoit sur la sortie standard :

    sudo python3 -m smtpd -n -c DebuggingServer 0.0.0.0:25

  • L'application utilise Flask, on peut donc en déduire que le moteur de template est Jinja2 car il est recommandé par la documentation officielle de Flask et largement utilisé. Vous devez obtenir un payload compatible Jinja2 pour obtenir le flag final.

  • Le message électronique a une limite de caractères. Des informations sur la manière de contourner cette limitation peuvent être trouvées sur Internet.

Solutions

Des solutions détaillées pour chaque étape se trouvent dans le dossier Solutions.

Ressources

Les ressources suivantes peuvent être utiles pour résoudre les étapes :

  • Google
  • Twitter Advanced Search
  • HackTricks
  • PortSwigger Learning Materials
  • Payloads All The Things
  • Payload Box

Collaboration

Les pull requests sont les bienvenues. Si vous trouvez des bugs, veuillez ouvrir une issue.

Télécharger l’outil