Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
JavaSecLab — 취약한 코드와 수정된 코드, 공격 시나리오, 소스/싱크 감사 노트, 보안 코딩 지침을 포함한 종합적인 Java 취약점 실습 환경으로, 보안 교육 및 도구 평가에 활용됩니다. | Kitploit
도구/GitHubGitHub/whgojp/javaseclab
Static Code Analysis (SAST)Vulnerability AnalysisCode AnalysisWeb SecurityCTFPenetration TestingDevSecOpsLearning & EducationLabs & Practice
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와 비교하여, 이 프로젝트는 코드 관점에서 취약점을 이해하는 것을 강조합니다.

코드 감사에서 일반적인 워크플로는 먼저 싱크를 찾는 것입니다. 예를 들어 명령 실행, SQL 실행, 파일 접근, 템플릿 렌더링, 역직렬화, 응답 출력 등입니다. 그런 다음 감사자는 역으로 추적하여 해당 소스를 식별합니다. 예를 들어 요청 파라미터, 헤더, 쿠키, 업로드된 파일, 직렬화된 데이터, 데이터베이스 내용 등입니다. 많은 JavaSecLab 시나리오는 이 소스-투-싱크 경로를 중심으로 설계되어 학습과 도구 검증 모두에 유용합니다.

동일한 취약점 유형은 실제 시스템에서 여러 트리거 경로를 통해 나타나는 경우가 많습니다. 따라서 JavaSecLab은 가능한 경우 핵심 취약점 클래스에 대해 여러 시나리오를 제공하여 사용자가 다양한 코딩 패턴, 프레임워크 기능, 비즈니스 흐름이 위험에 어떻게 영향을 미치는지 비교할 수 있도록 합니다.

트래픽 분석

JavaSecLab은 학습자가 요청/응답 동작을 코드 실행과 연결할 수 있도록 취약점 트래픽 분석 예제를 포함합니다. 더 명확한 패킷, 더 나은 재현 노트, 추가 분석 예제를 포함한 기여를 환영합니다.

flow1

예를 들어, 시간 기반 SQL 인젝션 시나리오에서 트래픽 패턴은 응답 지연을 통해 관찰할 수 있습니다. 서버는 약 5초 후에 응답합니다.

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. src/main/resources/application.yml에서 활성 프로파일을 dev로 설정합니다:

    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를 실행하기 전에 노출된 포트를 검토하십시오.
  • 업로드된 파일, 생성된 파일, 로그를 신뢰할 수 없는 데이터로 취급하십시오.

이 프로젝트의 보안 코드 예제는 교육 및 시연용입니다. 실제 비즈니스 시스템은 일반적으로 인증, 감사, 속도 제한, 데이터 검증, 의존성 관리, 모니터링, 경고, 심층 방어를 필요로 합니다.

기여

이슈와 풀 리퀘스트를 환영합니다. 좋은 기여에는 다음이 포함됩니다:

  • 명확한 취약 코드와 수정 코드가 포함된 새로운 취약점 시나리오
  • 더 정확한 소스/싱크 노트와 코드 감사 설명
  • 더 나은 취약점 트래픽 패킷과 분석 노트
  • 배포 수정 및 문서 개선
  • 실습 환경을 더 쉽게 교육할 수 있게 하는 UI 및 상호 작용 개선

라이선스

우리가 자유 소프트웨어를 말할 때, 우리는 가격이 아닌 자유를 의미합니다.

JavaSecLab은 Apache License 2.0에 따라 배포됩니다. 자세한 내용은 LICENSE를 참조하십시오.

Star History

Star History Chart

변경 로그

릴리스 노트와 프로젝트 이력은 업데이트 로그를 참조하십시오.

작성자

작성자 블로그: 今天是几号

애플리케이션 보안, 보안 개발, SDL, DevSecOps, 취약점 실습 환경에 관심이 있으시면 커뮤니티 그룹에 자유롭게 참여하십시오.

WeChat Community group

후원

JavaSecLab이 도움이 되셨다면 후원을 감사히 받겠습니다. 지원금은 온라인 환경 유지와 프로젝트 지속적 개선에 사용됩니다.

Sponsor JavaSecLab
도구 다운로드