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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
VAmPI — 보안 테스트를 위한 OWASP 상위 10대 취약점이 포함된 취약한 REST API | Kitploit
도구/GitHubGitHub/erev0s/vampi
Web Vulnerability ScannersVulnerability AnalysisAPI Security TestingLearning & EducationLabs & Practice
GitHuberev0s/vampi

VAmPI

보안 테스트를 위한 OWASP 상위 10대 취약점이 포함된 취약한 REST API

저장소 보기
1.3k58035개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

VAmPI

취약한 API (OpenAPI 3 기반) vampi

Docker Image CI Docker Pulls

VAmPI는 Flask로 만들어진 취약한 API이며, OWASP API 보안 상위 10개 취약점을 포함하고 있습니다. API의 보안 문제를 탐지하는 도구의 효율성을 평가하기 위해 취약한 API가 필요하여 만들어졌습니다. 테스트 중에 API를 취약하게 할지 말지를 켜고 끌 수 있는 스위치가 포함되어 있습니다. 이를 통해 오탐/미탐 사례를 더 잘 다룰 수 있습니다. VAmPI는 학습/교육 목적으로도 사용할 수 있습니다. 취약점에 대한 자세한 내용은 erev0s.com에서 확인할 수 있습니다.

기능

  • OWASP API 상위 10개 취약점 기반
  • OpenAPI3 명세 및 Postman 컬렉션 포함
  • 취약한 환경을 켜고 끌 수 있는 전역 스위치
  • 토큰 기반 인증 (app.py에서 수명 조정 가능)
  • API와 직접 상호작용할 수 있는 Swagger UI 제공

VAmPI의 작업 흐름은 다음과 같습니다: 미등록 사용자는 API에 포함된 더미 사용자에 대한 최소한의 정보를 볼 수 있습니다. 사용자는 등록 후 로그인하여 로그인 시 받은 토큰을 사용하여 책을 게시할 수 있습니다. 게시된 책에 대해 허용되는 데이터는 제목과 해당 책에 대한 비밀입니다. 각 책은 사용자마다 고유하며, 책의 소유자만이 비밀을 볼 수 있어야 합니다.

포함된 작업에 대한 간략한 설명은 다음 표에서 확인할 수 있습니다:

액션경로세부사항
GET/createdb데이터베이스를 생성하고 더미 데이터로 채움
GET/VAmPI 홈
GET/me로그인한 사용자 표시
GET/users/v1모든 사용자를 기본 정보와 함께 표시
GET/users/v1/_debug모든 사용자의 모든 세부 정보 표시
POST/users/v1/register새 사용자 등록
POST/users/v1/loginVAmPI에 로그인
GET/users/v1/{username}사용자 이름으로 사용자 표시
DELETE/users/v1/{username}사용자 이름으로 사용자 삭제 (관리자만)
PUT/users/v1/{username}/email단일 사용자 이메일 업데이트
PUT/users/v1/{username}/password사용자 비밀번호 업데이트
GET/books/v1모든 책 검색
POST/books/v1새 책 추가
GET/books/v1/{book}제목으로 책과 비밀 함께 검색

자세한 내용을 보려면 VAmPI를 실행하고 http://127.0.0.1:5000/ui/를 방문하거나, swagger editor와 같은 서비스를 사용하여 openapi_specs 디렉토리에 있는 OpenAPI 명세를 제공하십시오.

취약점 목록

  • SQL 인젝션
  • 무단 비밀번호 변경
  • 취약한 객체 수준 권한 부여
  • 대량 할당
  • 디버그 엔드포인트를 통한 과도한 데이터 노출
  • 사용자 및 비밀번호 열거
  • RegexDOS (서비스 거부)
  • 리소스 및 속도 제한 부족
  • 약한 서명 키를 통한 JWT 인증 우회

실행하기

Flask 애플리케이션이므로 실행하려면 모든 요구사항을 설치한 다음 app.py를 실행하면 됩니다. 모든 요구사항을 설치하려면 pip3 install -r requirements.txt를 실행하고, 그 다음 python3 app.py를 실행하십시오.

또는 선호한다면 Docker나 Docker Compose를 통해 실행할 수도 있습니다.

Docker를 통해 실행하기

  • Dockerhub에서 사용 가능
root@kitploit:~
docker run -p 5000:5000 erev0s/vampi:latest

[참고: MacOS의 최신 버전에서 Docker를 실행하는 경우, AirPlay Receiver 서비스와 충돌을 피하기 위해 -p 5001:5000을 사용하십시오. 또는 시스템 환경설정 -> 공유 설정에서 AirPlay Receiver 서비스를 비활성화할 수 있습니다.]

Docker Compose를 통해 실행하기

docker-compose에는 두 개의 인스턴스가 포함되어 있습니다. 하나는 포트 5001에서 보안 구성으로, 다른 하나는 포트 5002에서 비보안 구성으로 실행됩니다:

root@kitploit:~
docker-compose up -d

Swagger UI 사용 가능 🚀

API가 실행 중인 경로에 /ui를 방문하면 Swagger UI를 사용할 수 있어 시작하는 데 도움이 됩니다!

root@kitploit:~
http://127.0.0.1:5000/ui/

토큰 시간 초과 및 취약한 환경 사용자 지정

로그인 후 생성된 토큰의 시간 초과를 변경하거나 환경을 취약하지 않도록 변경하려면 애플리케이션을 실행하는 방식에 따라 몇 가지 방법을 사용할 수 있습니다.

  • python3 app.py로 일반적으로 실행하는 경우, app.py 자체에 정의된 alive 및 vuln 변수를 편집하기만 하면 됩니다. alive 변수는 초 단위로 측정되므로, 100을 입력하면 토큰이 100초 후에 만료됩니다. vuln 변수는 부울 값과 같아서, 1로 설정하면 애플리케이션이 취약해지고, 0으로 설정하면 취약하지 않게 됩니다.
  • Docker를 통해 실행하는 경우, docker run 명령에 환경 변수를 전달하거나 Dockerfile을 편집하고 다시 빌드해야 합니다.
    • Docker 실행 예: docker run -d -e vulnerable=0 -e tokentimetolive=300 -p 5000:5000 erev0s/vampi:latest

      • 이 방식으로 실행할 때의 좋은 점은 vulnerable=1로 설정된 두 번째 컨테이너를 다른 포트에서 시작하여 두 환경 사이를 쉽게 전환할 수 있다는 것입니다.
    • Dockerfile에는 두 개의 환경 변수가 설정되어 있습니다: ENV vulnerable=1 및 ENV tokentimetolive=60. docker build 명령을 실행하기 전에 자유롭게 변경하십시오.

자주 묻는 질문

  • 엔드포인트에 접근하면 데이터베이스 오류가 발생합니다!
    • 데이터베이스를 채우기 위해 /createdb 엔드포인트에 요청을 보내야 합니다.

freepik의 이미지 - www.freepik.com

도구 다운로드