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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/clickswave/vuln_apps
Vulnerability AnalysisWeb SecurityPenetration TestingLearning & EducationAPI SecurityLabs & Practice
GitHubclickswave/vuln_apps

vuln_apps

격리된 Docker 스택에서 의도적으로 취약하게 구성된 웹/API 애플리케이션 플릿을 실행하여 로컬 침투 테스트를 수행하고, 실제 취약점 카탈로그를 기준으로 스캐너 결과를 검증합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

vuln_apps

의도적으로 취약하게 만들어진 앱 모음으로, 보안 도구(crossfyre, Burp, ZAP, nuclei 등)를 겨냥해 사용할 수 있습니다. 이 폴더에는 앱 소스가 없으며, 스켈레톤 정의와 작은 매니저만 포함됩니다. 각 앱은 자체 격리된 컨테이너 스택으로 실행되므로 서로 충돌하지 않습니다.

여기에 있는 모든 것은 의도적으로 취약합니다. 로컬 테스트 전용입니다. 이 앱들을 인터넷이나 신뢰할 수 없는 네트워크에 노출하지 마십시오. 모든 포트는 127.0.0.1에 바인딩됩니다.

작동 방식

  • docker compose up은 하나의 컨테이너(vuln_apps_manager, 컨트롤 플레인)를 시작합니다. 자체적으로는 어떤 취약 앱도 시작하지 않습니다.
  • 매니저를 통해 앱 모음을 제어합니다. 각 앱은 apps/<name>/ 아래의 스켈레톤 폴더(app.yml 매니페스트 + compose.yml)로 정의되며, 매니저가 각각 별도의 docker compose 프로젝트로 실행합니다.
  • 각 앱은 고유한 프로젝트이므로 자체 네트워크, 자체 볼륨, 자체 데이터베이스를 갖습니다. 둘 다 Postgres를 사용하는 두 앱이 하나를 공유하는 일은 없습니다.
  • 앱의 웹/대상 포트만 127.0.0.1로 게시됩니다. 데이터베이스와 내부 계층은 호스트에 바인딩되지 않습니다. 모든 앱의 웹 서비스는 공유 네트워크에도 참여하므로 컨테이너에서 실행되는 스캐너가 호스트 포트 없이 이름으로 접근할 수 있습니다(예: ).
vuln-net
http://dvwa

빠른 시작

root@kitploit:~
cd vuln_apps
./vam start --all      # ONE command: builds the manager, starts every light app,
                       # and runs each app's first-time setup automatically
./vam status           # what's running + URLs
./vam stop --all       # stop everything

이 ./vam start --all 하나로 각 앱에 필요한 일회성 설정(DVWA의 create-database, bWAPP의 install, VAmPI의 seed)도 실행되므로 모든 앱이 running을 보고하는 즉시 사용할 수 있습니다. /setup.php 또는 /install.php를 수동으로 클릭할 필요가 없습니다.

매니저를 실시간 상태 모니터로 계속 실행하고 싶으신가요? 먼저 docker compose up -d를 실행한 다음 위와 같이 ./vam ...을 사용하세요.

./vam <cmd>는 단순한 래퍼입니다. 이것 없이도 정확히 동일한 작업을 수행할 수 있습니다:

root@kitploit:~
docker compose run --rm vuln_apps_manager start --all
docker compose run --rm vuln_apps_manager status

매니저 명령어

명령어설명
./vam list모든 앱, 해당 상태 및 URL 나열
./vam start <app...> | --all [--heavy]앱 시작. --all은 --heavy가 아니면 heavy 앱을 건너뜀
./vam stop <app...> | --all앱 중지
./vam restart <app...> | --all앱 재시작
./vam status앱 모음 상태 테이블
./vam logs <app> [-f]앱 로그 tail
./vam pull <app...> | --all이미지 사전 풀
./vam ports호스트 포트 맵 + 충돌 검사
./vam doctor환경 + 포트 정합성 검사

예: ./vam start juice-shop dvwa, ./vam start crapi --heavy, ./vam logs webgoat -f.

앱 및 포트

모든 URL은 http://127.0.0.1:<port>입니다(루프백 전용).

앱포트스택참고
juice-shop7001Node / Angular모던 SPA + REST
dvwa7002PHP / MariaDB시작 시 DB 자동 생성; 로그인 admin/password
webgoat7003Java+ 7004의 WebWolf(OOB 캐처)
vampi7005Python / FlaskOWASP API Top 10
dvga7006Python / GraphQL/graphql
bwapp7007PHP시작 시 자동 설치; 로그인 bee/bug
log4shell7009Java / Springblind-RCE -> OAST
crapi7010Node/Java/Pythonheavy; 7011에 mailhog
faultline8088SvelteKit/Rust/PG/RedisGitHub에서 가져옴(아래 참조)

예약된 호스트 포트 블록: 7001-7099. ./vam ports는 실시간 맵을 표시하고 충돌이 있으면 플래그를 지정합니다.

새 앱 추가

apps/ 아래에 폴더를 추가하세요:

root@kitploit:~
apps/<name>/
  app.yml       # name, description, category, stack, url
  compose.yml   # the container(s): image, ports (127.0.0.1 only), any DB
  setup.sh      # optional: one-time init run after start (see below)

앱 모음을 깔끔하게 유지하는 규칙:

  • 웹/대상 포트만 127.0.0.1:<사용 가능한 70xx 포트>에 바인딩하세요.
  • 단일 컨테이너 앱: 서비스를 [vuln-net]에만 배치하세요. 프로젝트별 네트워크를 추가하지 마십시오. 그러면 Docker의 주소 풀이 절약됩니다(네트워크가 너무 많으면 Docker가 "all predefined address pools have been fully subnetted" 오류로 실패합니다).
  • 데이터베이스가 있는 앱: 앱은 [default, vuln-net]에, DB는 [default]에만 배치하세요(비공개, 호스트 바인딩 없음). 각 앱에 고유한 DB 서비스와 볼륨을 제공하세요(공유하지 마십시오). vuln-net을 external: true로 선언하세요.
  • 최초 실행 설정: 앱에 일회성 초기화(DB 생성, 설치, seed)가 필요하면 apps/<name>/setup.sh를 추가하세요. 매니저는 start 후 매니저 컨테이너 내부(vuln-net에 있으며 curl 포함)에서 이를 실행하므로 서비스 이름으로 앱에 접근할 수 있습니다(예: curl http://<service>/install.php).

그게 전부입니다. 매니저가 자동으로 인식합니다(./vam list).

소스가 git 저장소에 있는 앱(예: faultline)의 경우 compose.yml을 생략하고 대신 app.yml에 repo:(클론 URL)와 compose:(해당 저장소 내의 compose 경로)를 넣으세요. 매니저는 최초 시작 시 이를 apps/<name>/src/(gitignore 처리됨)로 클론하므로 여기에는 소스가 포함되지 않습니다.

취약점 카탈로그

vulns/에는 앱별 "정답 키"(각 대상이 취약해야 하는 항목)가 있으므로 스캐너의 발견 결과를 실제 기준과 대조할 수 있습니다. vulns/README.md를 참조하세요. faultline 및 crapi에 대한 상세 로컬 카탈로그가 있으며, 업스트림 앱은 자체 권위 있는 정답 키를 가리킵니다.

crAPI (heavy)

crAPI는 Postgres + Mongo + 3개 앱 계층(~2 GB)을 실행하므로 --all에서 제외됩니다. 명시적으로 시작하세요: ./vam start crapi --heavy. 첫 부팅은 느립니다. 가입 OTP 및 재설정 메일은 http://127.0.0.1:7011의 mailhog에 도착합니다.

faultline (GitHub에서 가져옴)

faultline은 Clickswave의 자체 풀스택 테스트 대상입니다. 소스는 여기에 포함되지 않으며, 매니저가 최초 시작 시 github.com/clickswave/faultline에서 클론합니다:

root@kitploit:~
./vam start faultline    # clones the repo into apps/faultline/src/, then builds + runs it

첫 시작 시 빌드합니다(Rust; 느림). 이후 ./vam pull faultline으로 체크아웃을 업데이트하세요. 그런 다음 http://127.0.0.1:8088을 여세요. 데모 로그인: [email protected] / password, [email protected] / admin.

참고

  • docker compose down은 매니저만 중지합니다. 먼저 ./vam stop --all로 앱을 중지하세요(앱은 별도의 프로젝트입니다).
  • 매니저는 마운트된 소켓을 통해 호스트 Docker 데몬과 통신하므로 다른 컨테이너를 시작하고 감시할 수 있습니다.
도구 다운로드