Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
JavaSecLab — Комплексная лаборатория по уязвимостям Java с уязвимым и исправленным кодом, сценариями атак, заметками по аудиту источников/стоков и рекомендациями по безопасному кодированию для обучения безопасности и оценки инструментов. | Kitploit
Инструменты/GitHubGitHub/whgojp/javaseclab
Статический анализ кода (SAST)Анализ уязвимостейАнализ КодаВеб-безопасностьCTFТестирование на ПроникновениеDevSecOpsОбучение и ОбразованиеЛаборатории и Практика
GitHubwhgojp/javaseclab

JavaSecLab

Комплексная лаборатория по уязвимостям Java с уязвимым и исправленным кодом, сценариями атак, заметками по аудиту источников/стоков и рекомендациями по безопасному кодированию для обучения безопасности и оценки инструментов.

8817773 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
РепозиторийСайт

JavaSecLab — комплексная лаборатория уязвимостей Java

License Java Version Developed by whgojp GitHub Repo stars GitHub forks

中文文档


Обзор

JavaSecLab — это комплексная лаборатория уязвимостей Java для изучения безопасности приложений, практики аудита кода, обучения безопасной разработке и оценки инструментов безопасности. Построенная на Spring Boot, она предоставляет уязвимый код, исправленные реализации, реалистичные сценарии атак, заметки об источниках и стоках для аудита, рекомендации по устранению, объяснения безопасного кодирования и примеры анализа трафика.

Цель практическая: помочь пользователям понять не только то, как эксплуатируется уязвимость, но и почему она существует в коде и как её следует исправлять.

home

show

Для кого это?

  • Команды по оказанию услуг безопасности: объяснение причин уязвимостей, путей эксплуатации, исправлений, процессов аудита и шаблонов трафика.
  • Корпоративные команды безопасности: использование для SDL, DevSecOps, обучения безопасной разработке и программ повышения осведомлённости о безопасности.
  • Исследователи безопасности: тестирование SAST, DAST, IAST, RASP, SCA, xAST, анализа достижимости и других инструментов безопасности.
  • Java-разработчики: изучение распространённых проблем безопасности приложений на реальном коде, а не на абстрактных чек-листах.

Модули уязвимостей

JavaSecLab охватывает широкий спектр сценариев безопасности Java-веб-приложений, включая:

  • XSS, CSRF, CORS, JSONP, перенаправление URL, подмена XFF, отказ в обслуживании и XPath-инъекции
  • SQL-инъекции, произвольное чтение/загрузка/скачивание/удаление файлов, SSRF, XXE и RCE
  • Логические ошибки бизнес-логики: IDOR, безопасность капчи, безопасность платежей и безопасность при конкурентном доступе
  • Раскрытие конфиденциальной информации, противодействие входу, подпись запросов и безопасность учётных данных JWT
  • SpEL-инъекции, SSTI и десериализация Java
  • Fastjson, Jackson, XStream, Log4j2, Shiro, SnakeYAML, XMLDecoder и другие случаи, связанные с компонентами и экосистемой
  • Открытые компоненты экосистемы Spring Boot: Swagger, Actuator, Druid, десериализация MySQL JDBC и другое

Онлайн-демо

Демо-сайт: http://whgojp.top/

Учётная запись по умолчанию: admin/admin

JavaSecLab намеренно уязвим и содержит опасные эндпоинты, уязвимые зависимости и небезопасные конфигурации. Запускайте собственное развёртывание только в изолированной среде. Не выставляйте его напрямую в публичный интернет.

Зачем существует этот проект

Автор работал на корпоративных должностях в сфере безопасности и прошёл через полный жизненный цикл уязвимостей. После пентестов или оценок безопасности уязвимости часто назначаются командам разработки через такие системы, как TAPD или Jira. На практике постоянно возникают два вопроса:

  1. Почему такое поведение является уязвимостью?
  2. Как следует исправлять эту уязвимость?

JavaSecLab был создан, чтобы связать поведение уязвимости, уязвимый код, подходы к устранению и логику аудита. По сравнению с текстовым отчётом или PoC, проект делает акцент на понимании уязвимостей с точки зрения кода.

При аудите кода распространённый подход — сначала найти сток (sink), например выполнение команд, выполнение SQL, доступ к файлам, рендеринг шаблонов, десериализацию или вывод ответа. Затем аудитор прослеживает путь назад, чтобы определить соответствующий источник (source), например параметры запроса, заголовки, cookie, загруженные файлы, сериализованные данные или содержимое базы данных. Многие сценарии JavaSecLab построены вокруг этого пути от источника к стоку, что делает их полезными как для обучения, так и для проверки инструментов.

Один и тот же тип уязвимости часто проявляется через несколько путей срабатывания в реальных системах. Поэтому JavaSecLab, где это возможно, предоставляет несколько сценариев для ключевых классов уязвимостей, чтобы пользователи могли сравнить, как различные шаблоны кодирования, возможности фреймворков и бизнес-процессы влияют на риск.

Анализ трафика

JavaSecLab включает примеры анализа трафика уязвимостей, помогающие учащимся связать поведение запросов/ответов с выполнением кода. Приветствуются вклады с более понятными пакетами, лучшими заметками по воспроизведению или дополнительными примерами анализа.

flow1

Например, в сценарии SQL-инъекции, основанной на времени, шаблон трафика можно наблюдать по задержке ответа: сервер отвечает примерно через пять секунд.

flow2

Технологический стек

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

Развёртывание

Клонируйте репозиторий:

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

git clone

Локальное развёртывание с IDEA

Требования:

  • JDK 8
  • MySQL 8.0+
  • Maven
  1. Создайте базу данных и импортируйте sql/JavaSecLab.sql.

  2. Установите активный профиль dev в src/main/resources/application.yml:

    root@kitploit:~
    spring:
      profiles:
        active: dev
    
  3. Обновите подключение к базе данных в 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. Запустите приложение из IDEA или с помощью Maven.

Учётная запись по умолчанию: admin/admin

login

Развёртывание в Docker

Требования:

  • Docker
  • Docker Compose

Вариант 1: запуск с опубликованным образом:

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

Вариант 2: собрать образ локально и запустить лабораторию:

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

Если после запуска база данных пуста, вручную импортируйте sql/JavaSecLab.sql.

docker deployment

docker deployment

Дополнительные варианты развёртывания и заметки по устранению неполадок см. в Руководстве по развёртыванию.

Уведомление о безопасности

JavaSecLab — это проект уязвимой лаборатории. Он намеренно сохраняет опасные эндпоинты, уязвимые зависимости и небезопасные конфигурации для воспроизведения и обучения. Запускайте его только локально или в изолированной сети.

Рекомендуемые меры предосторожности:

  • Не развёртывайте JavaSecLab напрямую в публичной сети.
  • Используйте одноразовые учётные записи, тестовые базы данных и изолированные контейнеры.
  • Не монтируйте важные каталоги хоста в контейнер.
  • Проверьте открытые порты перед запуском Docker Compose.
  • Относитесь к загруженным файлам, сгенерированным файлам и журналам как к недоверенным данным.

Примеры безопасного кода в этом проекте предназначены для обучения и демонстрации. Реальные бизнес-системы обычно требуют аутентификации, аудита, ограничения скорости, валидации данных, управления зависимостями, мониторинга, оповещения и эшелонированной защиты.

Участие в проекте

Приветствуются issues и pull requests. Хорошие вклады включают:

  • Новые сценарии уязвимостей с понятным уязвимым и исправленным кодом
  • Более точные заметки об источниках/стоках и объяснения по аудиту кода
  • Улучшенные пакеты трафика уязвимостей и заметки по анализу
  • Исправления развёртывания и улучшения документации
  • Улучшения UI и взаимодействия, делающие лабораторию удобнее для обучения

Лицензия

Когда мы говорим о свободном программном обеспечении, мы имеем в виду свободу, а не цену.

JavaSecLab выпущен под Apache License 2.0. Подробности см. в LICENSE.

История звёзд

Star History Chart

Журнал изменений

См. Журнал обновлений для примечаний к выпускам и истории проекта.

Автор

Блог автора: 今天是几号

Если вам интересны безопасность приложений, безопасная разработка, SDL, DevSecOps или лаборатории уязвимостей, присоединяйтесь к сообществу.

WeChat Community group

Спонсорство

Если JavaSecLab помогает вам, мы будем признательны за спонсорскую поддержку. Средства будут использованы для поддержания онлайн-среды и постоянного улучшения проекта.

Sponsor JavaSecLab
Скачать инструмент