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
JavaSecLab — 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. | Kitploit
Outils/GitHubGitHub/whgojp/javaseclab
Analyse Statique de Code (SAST)Analyse des VulnérabilitésAnalyse de CodeSécurité WebCTFTests d'IntrusionDevSecOpsApprentissage et ÉducationLabs et Pratique
GitHubwhgojp/javaseclab

JavaSecLab

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.

881777il y a 3 moisVérifié par Kitploit

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
Voir le dépôtSite web

JavaSecLab - Un laboratoire complet de vulnérabilités Java

License Java Version Developed by whgojp GitHub Repo stars GitHub forks

中文文档


Aperçu

JavaSecLab 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.

home

show

À qui s'adresse ce projet ?

  • Équipes de services de sécurité : expliquer les causes des vulnérabilités, les chemins d'exploitation, les correctifs, les flux d'audit et les schémas de trafic.
  • Équipes de sécurité en entreprise : l'utiliser pour le SDL, le DevSecOps, la formation au développement sécurisé et les programmes de sensibilisation à la sécurité.
  • Chercheurs en sécurité : tester les outils SAST, DAST, IAST, RASP, SCA, xAST, l'analyse de joignabilité et d'autres outils de sécurité.
  • Développeurs Java : apprendre les problèmes de sécurité applicative courants à partir de code réel plutôt que de listes de contrôle abstraites.

Modules de vulnérabilités

JavaSecLab couvre un large éventail de scénarios de sécurité web Java, notamment :

  • XSS, CSRF, CORS, JSONP, redirection d'URL, usurpation XFF, déni de service et injection XPath
  • Injection SQL, lecture/upload/téléchargement/suppression arbitraire de fichiers, SSRF, XXE et RCE
  • Failles de logique métier : IDOR, sécurité des captchas, sécurité des paiements et sécurité de la concurrence
  • Divulgation d'informations sensibles, confrontation à l'authentification, signature de requêtes et sécurité des identifiants JWT
  • Injection SpEL, SSTI et désérialisation Java
  • Fastjson, Jackson, XStream, Log4j2, Shiro, SnakeYAML, XMLDecoder et autres cas de composants/écosystèmes
  • Exposition de l'écosystème Spring Boot : Swagger, Actuator, Druid, désérialisation MySQL JDBC, et plus encore

Démo en ligne

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.

Pourquoi ce projet existe

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 :

  1. Pourquoi ce comportement est-il une vulnérabilité ?
  2. Comment cette vulnérabilité doit-elle être corrigée ?

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.

Analyse de trafic

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.

flow1

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.

flow2

Stack technique

  • Spring Boot
  • Spring Security
  • MyBatis / MyBatis-Plus
  • JPA / Hibernate
  • Thymeleaf
  • Layui
  • MySQL

Déploiement

Cloner le dépôt :

root@kitploit:~
git clone https://github.com/whgojp/JavaSecLab.git
cd JavaSecLab

git clone

Déploiement local avec IDEA

Prérequis :

  • JDK 8
  • MySQL 8.0+
  • Maven
  1. Créez la base de données et importez sql/JavaSecLab.sql.

  2. Définissez le profil actif sur dev dans src/main/resources/application.yml :

    root@kitploit:~
    spring:
      profiles:
        active: dev
    
  3. Mettez à jour la connexion à la base de données dans src/main/resources/application-dev.yml :

    root@kitploit:~
    username: root
    password: QWE123qwe
    url: jdbc:mysql://localhost:13306/JavaSecLab?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true&allowMultiQueries=true
    
  4. Démarrez l'application depuis IDEA ou avec Maven.

Compte par défaut : admin/admin

login

Déploiement Docker

Prérequis :

  • Docker
  • Docker Compose

Option 1 : démarrer avec l'image publiée :

root@kitploit:~
docker compose -f docker-compose.image.yml up -d

Option 2 : construire l'image localement et démarrer le laboratoire :

root@kitploit:~
mvn clean package -DskipTests
docker compose -p javaseclab up -d

Si la base de données est vide après le démarrage, importez manuellement sql/JavaSecLab.sql.

docker deployment

docker deployment

Pour plus d'options de déploiement et de notes de dépannage, consultez le Guide de déploiement.

Avis de sécurité

JavaSecLab est un projet de laboratoire vulnérable. Il conserve intentionnellement des points de terminaison dangereux, des dépendances vulnérables et des configurations non sécurisées à des fins de reproduction et d'enseignement. Exécutez-le uniquement en local ou dans un réseau isolé.

Précautions recommandées :

  • Ne déployez pas JavaSecLab directement sur un réseau public.
  • Utilisez des comptes jetables, des bases de données de test et des conteneurs isolés.
  • Ne montez pas de répertoires hôtes sensibles dans le conteneur.
  • Vérifiez les ports exposés avant d'exécuter Docker Compose.
  • Traitez les fichiers téléversés, les fichiers générés et les journaux comme des données non fiables.

Les exemples de code sécurisé de ce projet sont destinés à l'enseignement et à la démonstration. Les systèmes métier réels nécessitent généralement authentification, audit, limitation de débit, validation des données, gouvernance des dépendances, supervision, alertes et défense en profondeur.

Contribution

Les issues et pull requests sont les bienvenues. Les bonnes contributions incluent :

  • De nouveaux scénarios de vulnérabilités avec du code vulnérable et corrigé clair
  • Des notes source/sink plus précises et des explications d'audit de code
  • De meilleurs paquets de trafic de vulnérabilités et notes d'analyse
  • Des correctifs de déploiement et des améliorations de la documentation
  • Des améliorations d'interface et d'interaction qui rendent le laboratoire plus facile à utiliser pour l'enseignement

Licence

Lorsque nous parlons de logiciel libre, nous faisons référence à la liberté, pas au prix.

JavaSecLab est publié sous la Licence Apache 2.0. Voir LICENSE pour plus de détails.

Historique des étoiles

Star History Chart

Journal des modifications

Consultez le Journal des mises à jour pour les notes de version et l'historique du projet.

Auteur

Blog de l'auteur : 今天是几号

Si vous êtes intéressé par la sécurité applicative, le développement sécurisé, le SDL, le DevSecOps ou les laboratoires de vulnérabilités, n'hésitez pas à rejoindre le groupe communautaire.

WeChat Community group

Parrainage

Si JavaSecLab vous aide, un parrainage est apprécié. Le soutien sera utilisé pour maintenir l'environnement en ligne et améliorer continuellement le projet.

Sponsor JavaSecLab
Télécharger l’outil