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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
svja — Roniel과 DaRon 팟캐스트 쇼에서 시연된 Super Vulnerable Java Application(SVJA)은 매우 흔한 여러 취약점을 포함하도록 설계된 Apache Struts 애플리케이션입니다. 다른 '의도적으로 취약하게 만든' 소프트웨어와 달리, 이 소프트웨어는 지나치게 단순한 방식이나 'capture the flag' 방식보다는 실제로 흔히 발견되는 방식 그대로 일반적인 취약점을 모방하도록 설계되었습니다. 이 소프트웨어는 반정기적으로 업데이트되고 기능이 추가되며, 팟캐스트의 일부로 일부 취약점에 대한 시연도 포함됩니다. | Kitploit
도구/GitHubGitHub/theronielanddaronpodcastshow/svja
Authentication & AuthorizationVulnerability AnalysisWeb Application ExploitationAPI Security TestingWeb SecurityPenetration TestingLearning & EducationLabs & Practice

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →

소개

Roniel과 DaRon 팟캐스트 쇼에서 시연된 Super Vulnerable Java Application(SVJA)은 매우 흔한 여러 취약점을 포함하도록 설계된 Apache Struts 애플리케이션입니다. 다른 '의도적으로 취약하게 만든' 소프트웨어와 달리, 이 소프트웨어는 지나치게 단순한 방식이나 'capture the flag' 방식보다는 실제로 흔히 발견되는 방식 그대로 일반적인 취약점을 모방하도록 설계되었습니다. 이 소프트웨어는 반정기적으로 업데이트되고 기능이 추가되며, 팟캐스트의 일부로 일부 취약점에 대한 시연도 포함됩니다.

GitHub
theronielanddaronpodcastshow/svja

svja

저장소 보기
1347개월 전아직 검토되지 않음
공유

svja

RDPS Super Vulnerable Java Application은 이름 그대로입니다. 모든 사람이 다양하고 흔하며 종종 "복잡한" 취약점을 살펴볼 수 있도록 만들어진 초취약 Java 애플리케이션입니다. 이 소프트웨어는 Roniel and DaRon Podcast Show (https://www.youtube.com/channel/UCbj1JFcSJeTuf3qf9GPRemA)의 일환으로 제작되었습니다. 온라인에서 볼 수 있는 다른 많은 도구보다 더 현실적인 방식으로 자주 접하는 여러 취약점을 논의하고 보여주기 위해서입니다. 실제 공격 예시를 보려면 저희 팟캐스트를 시청하십시오.

중요

이 애플리케이션은 다양한 문제에 매우 취약하도록 의도되었음을 기억하십시오. 실행 위치에 주의하고, 접근 권한을 제한하십시오(Tomcat 서버는 localhost에서만 수신 대기해야 하며, 항상 개인 머신에서만 실행해야 합니다). 제대로 관리하지 않아 당신의 복사본이 바람에 노출되어 모든 사람이 당신의 데이터를 훔치거나 시스템을 심각하게 손상시키더라도 우리는 책임지지 않습니다. 이 애플리케이션을 안전하고 민감한 내용이 없으며 인터넷에 연결되지 않은 가상 머신(VM)에서 실행할 것을 권장합니다. 이 시스템과 인스턴스를 제대로 보호하지 않으면 결과적으로 좋지 않은 날을 맞이할 가능성이 높습니다. 적절한 보호 장치 없이 가벼운 육체적 관계를 맺는 것과 같이, 당신은 언젠가 후회할 상황에 스스로를 내몰고 있을 뿐입니다. 경고했다는 것을 명심하되, 즐겁게 놀아보세요 ;-)

요구 사항

  • Apache Maven 3.6 이상
  • Java 21 이상
  • Tomcat 10.0 이상

설치

RDPS SVJA는 react를 실행하는 Java struts 2 애플리케이션으로 구성되어 있습니다. 다음 명령만 실행하면 빌드됩니다: mvn clean package

이렇게 하면 target 폴더에 WAR 파일(svja.war)이 생성됩니다. WAR 파일을 Tomcat의 webapps 폴더에 넣기만 하면 됩니다. 기본 Tomcat 빌드에서는 http://127.0.0.1:8080/svja 로 접속하여 애플리케이션을 사용할 수 있습니다.

Tomcat 10 이상을 사용하는 경우 Tomcat context.xml 설정 파일에 <Loader jakartaConverter="TOMCAT" /> 을(를) 추가하십시오.

Swagger UI

시작을 위해 사용하려는 분들을 위해, 루트(http://127.0.0.1:8080/svja)에 Swagger UI와 사용 가능한 기본 OpenAPI 사양(http://127.0.0.1:8080/svja/specification.yaml)이 포함되어 있습니다. 사양과 Swagger UI는 표면만 살짝 보여줄 뿐입니다(안전하지 않은 역직렬화 등이 바로 그런 것이겠죠?).

현재 취약점

다음은 시스템의 주요 취약점 중 일부를 동작별로 나열한 것입니다.

  1. /api/authenticate
    • 사이트 간 요청 위조 (CSRF)
    • 서비스 거부 (DOS)
    • 안전하지 않은 역직렬화 (OGNL, Struts, JSON -- 바이트코드 제외)
      • 임의 객체 생성
      • 임의 메서드 호출
      • 세션 하이재킹
      • 세션 우회
      • 인증 우회
    • 로그 주입
    • URL 내 민감한 데이터
  2. /api/authenticate/federated
    • 사이트 간 요청 위조 (CSRF)
    • 서비스 거부 (DOS)
    • 안전하지 않은 역직렬화 (OGNL, Struts, JSON -- 바이트코드 제외)
      • 임의 객체 생성
      • 임의 메서드 호출
      • 세션 하이재킹
      • 세션 우회
      • 인증 우회
    • 로그 주입
    • 정규 표현식 주입
      • 인증 우회
      • 서비스 거부
  3. /api/files
    • 사이트 간 요청 위조 (CSRF)
    • 인코딩을 통한 사이트 간 스크립팅 (XSS)
    • 서비스 거부 (DOS)
    • 안전하지 않은 역직렬화 (OGNL, Struts, JSON -- 바이트코드 제외)
      • 경로 탐색 (읽기 전용)
      • 임의 객체 생성
      • 임의 메서드 호출
      • 세션 하이재킹
      • 세션 우회
      • 인증 우회
      • 안전하지 않은 직접 객체 참조
    • 안전하지 않은 직렬화
      • 개인 식별 정보(PII) 유출
      • 민감한 정보 유출
    • 로그 주입
    • 경쟁 조건
      • 검사 시점과 사용 시점 (TOCTOU)
    • URL 내 민감한 데이터
  4. /api/projects
    • CSV(쉼표로 구분된 값) 주입
      • 임의 CSV 주입
      • 클라이언트 측 공격
    • 사이트 간 요청 위조 (CSRF)
    • 인코딩을 통한 사이트 간 스크립팅 (XSS) 서비스 거부 (DOS)
    • 안전하지 않은 역직렬화 (OGNL, Struts, JSON -- 바이트코드 제외)
      • 경로 탐색 (읽기 전용)
      • 임의 객체 생성
      • 임의 메서드 호출
      • 세션 하이재킹
      • 세션 우회
      • 인증 우회
      • 안전하지 않은 직접 객체 참조
    • 안전하지 않은 직렬화
      • 개인 식별 정보(PII) 유출
      • 민감한 정보 유출
    • 로그 주입
    • URL 내 민감한 데이터
    • XLSX 주입
      • 임의 XML 주입
      • 클라이언트 측 공격
  5. /api/reflect
    • 사용 리플렉션
    • 안전하지 않은 역직렬화 (OGNL, Struts, JSON -- 바이트코드 제외)
      • 경로 탐색 (읽기 전용)
      • 임의 객체 생성
      • 임의 메서드 호출
      • 세션 하이재킹
      • 세션 우회
      • 인증 우회
      • 안전하지 않은 직접 객체 참조
    • 안전하지 않은 직렬화
      • 개인 식별 정보(PII) 유출
      • 민감한 정보 유출
    • 로그 주입
  6. /api/supersecret

기본 설치 사용자

root@kitploit:~
admin:admin (application administrator account)
bill:baker (privileged user account)
bob:barker (basic, read-only user account)

시스템 로그인

root@kitploit:~
/api/authenticate?user.username=admin&user.password=admin
/api/authenticate?user.username=bill&user.password=baker
/api/authenticate?user.username=bob&user.password=barker

인증 후에는 JSON 또는 Struts를 사용하여 원하는 아무 작업이나 호출하십시오.

Struts 인증 요청 예시

root@kitploit:~
GET /svja/api/authenticate?user.username=bill&user.password=baker HTTP/1.1
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0
Host: localhost
Accept: application/json, text/plain, */*
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Length: 0
DNT: 1
Connection: close
Cache-Control: max-age=0


JSON 인증 요청 예시

root@kitploit:~
GET /svja/api/authenticate HTTP/1.1
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0
Host: localhost
Accept: application/json, text/plain, */*
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/json
Content-Length: 61
DNT: 1
Connection: close
Cache-Control: max-age=0

{
  "user": {
    "username": "bill",
    "password": "baker"
  }
}

Struts "federated" 인증 요청 예시

root@kitploit:~
GET /svja/api/authenticate/federated?user.username=bill%40rdps.local&usernameTranslationRegex=%2F%40rdps%5B.%5Dlocal%2F%2F HTTP/1.1
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0
Host: localhost
Accept: application/json, text/plain, */*
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Length: 0
DNT: 1
Connection: close
Cache-Control: max-age=0


JSON "federated" 인증 요청 예시

root@kitploit:~
GET /svja/api/authenticate/federated HTTP/1.1
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0
Host: localhost
Accept: application/json, text/plain, */*
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/json
Content-Length: 61
DNT: 1
Connection: close
Cache-Control: max-age=0

{
  "user": {
    "username": "[email protected]"
  },
  "usernameTranslationRegex": "/@rdps[.]local//"
}

Struts 요청 예시

svjatoken을 변경해야 합니다.

root@kitploit:~
GET /svja/api/projects?projectId=1 HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0
Accept: application/json, text/plain, */*
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Connection: close
Cookie: svjatoken=RaMu5vhFBgL8goV6Ja1ffLnpmcixNuAL7fUP;
Cache-Control: max-age=0


JSON 요청 예시

svjatoken을 변경해야 합니다.

root@kitploit:~
GET /svja/api/projects HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0
Accept: application/json, text/plain, */*
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/json
Content-Length: 19
DNT: 1
Connection: close
Cookie: svjatoken=RaMu5vhFBgL8goV6Ja1ffLnpmcixNuAL7fUP;
Cache-Control: max-age=0

{
  projectId:1
}

참고

이 프로젝트는 작업 진행 중이며, 더 많은 취약점과 계획된 것들(초취약 프론트엔드 및 기타 초취약 애플리케이션 포함)이 있습니다. 두어 달마다 다시 확인하고 Roniel and DaRon Podcast Show를 통해 업데이트, 실제 공격 예시, 그리고 다른 아이디어를 확인하세요. 또한 취약점을 완화하거나 수정하는 방법을 스스로 알아내 보시기를 권장합니다... 무언가를 깨뜨리는 것은 쉽습니다... 완화하고, 수정하고, 보안을 유지하는 것이 어렵죠. 행운을 빕니다. 즐거운 사냥 되세요!

도구 다운로드
  • 취약한 암호 모드
  • 패딩 오라클
  • 사용 리플렉션
  • 안전하지 않은 역직렬화 (OGNL, Struts, JSON)
    • 경로 탐색 (읽기 전용)
    • 임의 객체 생성
    • 임의 메서드 호출
    • 세션 하이재킹
    • 세션 우회
    • 인증 우회
    • 안전하지 않은 직접 객체 참조
  • 안전하지 않은 직렬화
    • 개인 식별 정보(PII) 유출
    • 민감한 정보 유출
  • 로그 주입