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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
NodeGoat — OWASP NodeGoat 프로젝트는 Node.js로 개발된 웹 애플리케이션에 OWASP Top 10 보안 위험이 어떻게 적용되는지, 그리고 이를 효과적으로 해결하는 방법을 배울 수 있는 환경을 제공합니다. | Kitploit
도구/GitHubGitHub/owasp/nodegoat
Vulnerability AnalysisWeb SecurityPenetration TestingLearning & EducationLearning Paths & CoursesLabs & Practice
GitHubowasp/nodegoat

NodeGoat

OWASP NodeGoat 프로젝트는 Node.js로 개발된 웹 애플리케이션에 OWASP Top 10 보안 위험이 어떻게 적용되는지, 그리고 이를 효과적으로 해결하는 방법을 배울 수 있는 환경을 제공합니다.

저장소 보기
2.1k2.8k2년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

NodeGoat

Node.js는 가볍고 빠르며 확장성이 뛰어나 웹 애플리케이션 개발에 널리 채택되고 있는 플랫폼입니다. 이 프로젝트는 Node.js로 개발된 웹 애플리케이션에 OWASP Top 10 보안 위험이 어떻게 적용되는지, 그리고 이를 효과적으로 해결하는 방법을 배울 수 있는 환경을 제공합니다.

시작하기

Node.js 웹 애플리케이션을 위한 OWASP Top 10:

알아보기!

이 애플리케이션에는 OWASP Top 10 취약점과 이를 해결하는 방법을 설명하는 튜토리얼 페이지가 포함되어 있습니다.

애플리케이션이 실행되면 http://localhost:4000/tutorial (또는 설정한 포트)에서 튜토리얼 페이지에 접근할 수 있습니다.

실습하기!

닌자를 위한 취약한 Node.js 앱을 공격하고, 파괴하고, 수정해 보세요. 취약점을 수정하고 테스트하기 위해 앱의 사본을 직접 설정하고 싶을 수도 있습니다. 힌트: 소스 코드에서 주석을 찾아보세요.

기본 사용자 계정

데이터베이스에는 시드 데이터의 일부로 생성된 다음 사용자 계정이 미리 채워져 있습니다.

  • 관리자 계정 - u:admin p:Admin_123
  • 사용자 계정 (u:user1 p:User1_123), (u:user2 p:User2_123)
  • 가입 페이지를 사용하여 새 사용자를 추가할 수도 있습니다.

NodeGoat 사본을 설정하는 방법

옵션 1 - 자신의 컴퓨터에서 NodeGoat 실행

  1. Node.js 설치 - NodeGoat는 Node v8 이상이 필요합니다

  2. GitHub 저장소를 클론합니다:

    root@kitploit:~
    git clone https://github.com/OWASP/NodeGoat.git
    
  3. 해당 디렉터리로 이동합니다:

    root@kitploit:~
    cd NodeGoat
    
  4. Node 패키지를 설치합니다:

    root@kitploit:~
    npm install
    
  5. MongoDB를 설정합니다. MongoDB를 로컬에 설치하거나 원격 인스턴스를 생성할 수 있습니다:

    • 로컬 MongoDB 사용:

      1. MongoDB Community Server 설치
      2. mongod 시작
    • 원격 MongoDB 인스턴스 사용:

      1. MongoDB Atlas 무료 티어 클러스터 배포 (M0 Sandbox)
      2. 현재 IP 주소에서 클러스터에 접근할 수 있도록 네트워크 액세스를 활성화합니다
      3. 클러스터에 데이터베이스 사용자 추가
      4. MONGODB_URI 환경 변수를 클러스터의 연결 문자열로 설정합니다. 연결 문자열은 클러스터의 연결 대화상자에서 확인할 수 있습니다. "Connect your application"을 선택하고, 드라이버를 "Node.js"로, 버전을 "2.2.12 이상"으로 설정하세요. 그러면 다음 형식의 연결 문자열이 제공됩니다:
        root@kitploit:~
        mongodb://<username>:<password>@<cluster>/<dbname>?ssl=true&replicaSet=<rsname>&authSource=admin&retryWrites=true&w=majority
        
        <username> 및 필드는 앞서 추가한 데이터베이스 사용자의 세부 정보로 채워야 합니다. 필드는 nodegoat가 클러스터에서 사용할 데이터베이스 이름을 설정합니다(예: "nodegoat"). 나머지 필드는 클러스터에 맞는 올바른 세부 정보로 이미 채워져 있습니다.

기본 애플리케이션 구성 사용자 지정

기본적으로 애플리케이션은 4000 포트에서 호스팅되고 localhost:27017의 MongoDB 인스턴스에 연결됩니다. 이를 변경하려면 PORT 및 MONGODB_URI 환경 변수를 설정하세요.

다른 설정은 구성 파일을 업데이트하여 변경할 수 있습니다.

옵션 2 - Docker에서 NodeGoat 실행

이 저장소에는 앱과 DB 인스턴스를 설정하고 서로 연결하는 데 필요한 Dockerfile과 docker-compose.yml이 포함되어 있습니다.

  1. docker 및 docker compose 설치

  2. GitHub 저장소를 클론합니다:

    root@kitploit:~
    git clone https://github.com/OWASP/NodeGoat.git
    
  3. 해당 디렉터리로 이동합니다:

    root@kitploit:~
    cd NodeGoat
    
  4. 이미지를 빌드합니다:

    root@kitploit:~
    docker-compose build
    
  5. 앱을 실행합니다. 그러면 http://localhost:4000/ 에서 NodeGoat 애플리케이션이 시작됩니다:

    root@kitploit:~
    docker-compose up
    

옵션 3 - Heroku에 배포

이 옵션은 무료($0/월) Heroku Node 서버를 사용합니다.

필수는 아니지만, 이 저장소를 포크한 후 포크한 저장소를 배포하는 것이 좋습니다. 그러면 자신의 포크 버전에서 취약점을 수정한 뒤 Heroku에 배포하고 테스트할 수 있습니다.

  1. 공개적으로 접근 가능한 MongoDB 인스턴스를 설정합니다:

    1. MongoDB Atlas 무료 티어 클러스터 배포 (M0 Sandbox)
    2. 어디에서나 클러스터에 접근할 수 있도록 네트워크 액세스 활성화 (CIDR 범위 0.0.0.0/0)
    3. 클러스터에 데이터베이스 사용자 추가
  2. 아래 버튼을 클릭하여 NodeGoat를 Heroku에 배포합니다:

    Deploy

    Create New App 대화상자에서 MONGODB_URI 구성 변수를 MongoDB Atlas 클러스터의 연결 문자열로 설정합니다. 이 값은 클러스터의 연결 대화상자에서 확인할 수 있습니다. "Connect your application"을 선택하고, 드라이버를 "Node.js"로, 버전을 "2.2.12 이상"으로 설정합니다. 그러면 다음 형식의 연결 문자열이 제공됩니다:

    root@kitploit:~
    mongodb://<username>:<password>@<cluster>/<dbname>?ssl=true&replicaSet=<rsname>&authSource=admin&retryWrites=true&w=majority
    

    <username> 및 <password> 필드는 앞서 추가한 데이터베이스 사용자의 세부 정보로 채워야 합니다. <dbname> 필드는 nodegoat가 클러스터에서 사용할 데이터베이스 이름을 설정합니다(예: "nodegoat"). 나머지 필드는 클러스터에 맞는 올바른 세부 정보로 이미 채워져 있습니다.

버그 신고, 피드백, 의견

  • 새 이슈를 열거나 Slack 채팅에 참여하여 팀에 연락하세요. 또는 Join the chat at https://gitter.im/OWASP/NodeGoat

기여하기

기여 가이드를 따라주세요.

행동 강령(CoC)

이 프로젝트는 행동 강령을 따릅니다.

기여자

NodeGoat 프로젝트에 기여한 멋진 기여자들입니다.

지원

  • 이 프로젝트를 구축하는 데 훌륭한 WebStorm IDE 라이선스를 제공해 준 JetBrains에 감사드립니다.

라이선스

코드는 Apache License v2.0.에 따라 라이선스가 부여됩니다.

도구 다운로드
<password>
<dbname>
  • 앱에 필요한 시드 데이터로 MongoDB를 채웁니다:

    root@kitploit:~
    npm run db:seed
    

    기본적으로 "development" 구성이 사용되지만, 필요한 경우 원하는 구성을 인자로 전달할 수 있습니다.

  • 서버를 시작합니다. node 또는 nodemon을 사용하여 서버를 실행할 수 있습니다:

    • node로 서버를 시작합니다. 그러면 http://localhost:4000/에서 NodeGoat 애플리케이션이 시작됩니다:
      root@kitploit:~
      npm start
      
    • nodemon으로 서버를 시작합니다. nodemon은 코드를 변경하면 애플리케이션을 자동으로 다시 시작합니다. 그러면 http://localhost:5000/에서 NodeGoat 애플리케이션이 시작됩니다:
      root@kitploit:~
      npm run dev