
Laboratoire complet sur les vulnérabilités Java avec code vulnérable et corrigé, scénarios d'attaque, notes d'audit source/sink et recommandations de codage sécurisé pour la formation en sécurité et l'évaluation d'outils.
JavaSecLab - Un laboratoire complet de vulnérabilités JavaJavaSecLab est un laboratoire complet de vulnérabilités Java destiné à l'apprentissage de la sécurité applicative, à la pratique de l'audit de code, à la formation au développement sécurisé et à l'évaluation d'outils de sécurité. Construit sur Spring Boot, il fournit du code vulnérable, des implémentations corrigées, des scénarios d'attaque réalistes, des notes orientées audit sur les sources et les sinks, des conseils de remédiation, des explications sur le codage sécurisé et des exemples d'analyse de trafic.
L'objectif est pratique : aider les utilisateurs à comprendre non seulement comment une vulnérabilité est exploitée, mais aussi pourquoi elle existe dans le code et comment elle devrait être corrigée.


JavaSecLab couvre un large éventail de scénarios de sécurité web Java, notamment :
Site de démonstration : http://whgojp.top/
Compte par défaut : admin/admin
JavaSecLab est intentionnellement vulnérable et contient des points de terminaison dangereux, des dépendances vulnérables et des configurations non sécurisées. N'exécutez votre propre déploiement que dans un environnement isolé. Ne l'exposez pas directement à l'internet public.
L'auteur a travaillé dans des rôles de sécurité en entreprise et a vécu l'ensemble du cycle de vie des vulnérabilités. Après des tests d'intrusion ou des évaluations de sécurité, les vulnérabilités sont souvent assignées aux équipes de développement via des systèmes tels que TAPD ou Jira. En pratique, deux questions reviennent sans cesse :
JavaSecLab a été créé pour relier le comportement de la vulnérabilité, le code vulnérable, les approches de remédiation et la réflexion d'audit. Comparé à un rapport purement textuel ou à un PoC, le projet met l'accent sur la compréhension des vulnérabilités du point de vue du code.
Dans l'audit de code, un flux de travail courant consiste à localiser d'abord un sink, tel que l'exécution de commandes, l'exécution SQL, l'accès aux fichiers, le rendu de templates, la désérialisation ou la sortie de réponse. L'auditeur remonte ensuite pour identifier la source correspondante, telle que les paramètres de requête, les en-têtes, les cookies, les fichiers téléversés, les données sérialisées ou le contenu de la base de données. De nombreux scénarios de JavaSecLab sont conçus autour de ce chemin source-vers-sink, ce qui les rend utiles à la fois pour l'apprentissage et pour la vérification d'outils.
Un même type de vulnérabilité apparaît souvent via de multiples chemins de déclenchement dans les systèmes réels. JavaSecLab fournit donc plusieurs scénarios pour les classes de vulnérabilités principales lorsque c'est possible, afin que les utilisateurs puissent comparer comment différents modèles de codage, fonctionnalités de framework et flux métier affectent le risque.
JavaSecLab inclut des exemples d'analyse de trafic de vulnérabilités pour aider les apprenants à relier le comportement requête/réponse à l'exécution du code. Les contributions avec des paquets plus clairs, de meilleures notes de reproduction ou des exemples d'analyse supplémentaires sont les bienvenues.

Par exemple, dans un scénario d'injection SQL basée sur le temps, le schéma de trafic peut être observé via la latence de réponse : le serveur répond après environ cinq secondes.

Cloner le dépôt :
git clone https://github.com/whgojp/JavaSecLab.git
cd JavaSecLab

Prérequis :
Créez la base de données et importez sql/JavaSecLab.sql.
Définissez le profil actif sur dev dans src/main/resources/application.yml :
spring:
profiles:
active: dev