Research Institute
  • WebGoat 소개
    2023년 09월 29일 09시 54분 01초에 업로드 된 글입니다.
    작성자: IIIIIIIIIIIIIIIIIIIIl

    소개

    WebGoat는 웹 어플리케이션 보안을 학습하는 데 사용되는 오픈 소스 웹 어플리케이션입니다. OWASP (Open Web Application Security Project)의 프로젝트 중 하나로, 웹 애플리케이션 보안 교육을 위한 도구로서 개발되었습니다. 실제 웹 어플리케이션에서 발생할 수 있는 다양한 보안 취약점과 해결 방법을 학습할 수 있습니다. 예를 들어 SQL Injection, Cross-Site Scripting (XSS), CSRF(Cross-Site Request Forgery)와 같은 보안 취약점을 경험해 볼 수 있으며 자체적인 웹 서버에서 동작하며, 자바 기반의 웹 어플리케이션으로 구현되어 있습니다. 학습자는 각 취약점에 대한 과제를 수행하고, 해당 취약점을 이용하여 어플리케이션을 공격하고, 취약점을 해결하는 방법을 연습할 수 있습니다.

    설치과정

    WebGoat을 설치 하는 방법에 Docker을 이용한 방법 , 소스코드 컴파일을 통한 방법 , 빌드된 파일을 이용한 방법 이 있습니다. 본 과정에서는 (3) 빌드된 파일을 이용한 방법으로 설치를 진행하겠습니다.

    • Java 설치하기

    WebGoat는 자바 기반으로 만들어졌기 때문에, 자바가 먼저 설치되어 있어야 합니다. 자바가 설치되어 있는지 확인하려면 터미널 또는 명령 프롬프트에서 java -version 명령어를 통해 확인 가능합니다. 자바 버전 정보가 출력되지 않는다면 자바 설치를 진행해야 합니다.

    sudo fallocate -l 4G /swapfile
    sudo chmod 600 /swapfile
    sudo mkswap /swapfile
    sudo swapon /swapfile
    echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
    
    wget <https://download.oracle.com/java/20/latest/jdk-20_linux-x64_bin.deb>
    sudo chown _apt /var/lib/update-notifier/package-data-downloads/partial/
    
    sudo apt install ./jdk-20_linux-x64_bin.deb -y
    
    sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-20/bin/java 1
    sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-20/bin/javac 1
    sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk-20/bin/jar 1
    sudo update-alternatives --config java
    sudo update-alternatives --config javac
    sudo update-alternatives --config jar
    
    • WebGoat 다운로드하기

    WebGoat를 다운로드할 수 있는 공식 웹 사이트인 https://github.com/WebGoat/WebGoat/releases 를 방문합니다. 최신 버전의 WebGoat을 다운로드할 수 있습니다. 다운로드한 파일을 원하는 디렉토리에 압축 해제합니다.

    # WebGoat 다운로드 설치하기
    wget <https://github.com/WebGoat/WebGoat/releases/download/v2023.4/webgoat-2023.4.jar>
    
    • WebGoat 실행하기

    WebGoat을 실행하려면 압축 해제한 디렉토리로 이동한 후, 터미널 또는 명령 프롬프트에서 다음 명령어를 입력합니다.

    #외부 접속을 허용하는 실행 명령어
    java  -Dfile.encoding=UTF-8 -Dwebgoat.host=0.0.0.0 -Dwebgoat.port=8080 -Dwebwolf.host=0.0.0.0 -Dwebwolf.port=9090 -jar webgoat-{version}.jar
    

    {version}에는 다운로드한 WebGoat의 버전 정보가 들어갑니다. 이 명령어를 실행하면 WebGoat 서버가 시작됩니다.

    • 웹 브라우저에서 WebGoat 접속하기

    WebGoat 서버가 시작되면, 웹 브라우저에서 http://localhost:8080/WebGoat/ 주소로 접속할 수 있습니다. 이후 나오는 화면에서 회원 가입을 하고, 학습할 취약점의 목록을 확인하고 공격 및 보안 수업을 시작할 수 있습니다. 위와 같은 과정을 거쳐 WebGoat을 설치하고 실행할 수 있습니다. 하지만, WebGoat은 보안 교육용 도구로서, 보안 취약점을 경험하는 용도로만 사용해야 합니다. 그렇기 때문에, WebGoat를 인터넷에 공개된 서버에 설치해서는 안 됩니다.

    댓글