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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
web-hacking-playground — 펜테스트 및 Bug Bounty 프로그램에서 발견된 실제 사례의 취약점을 포함한 웹 애플리케이션. | Kitploit
도구/GitHubGitHub/takito1812/web-hacking-playground
Vulnerability AnalysisWeb Application ExploitationWeb SecurityCTFPenetration TestingLearning & EducationLabs & Practice
GitHubtakito1812/web-hacking-playground

web-hacking-playground

펜테스트 및 Bug Bounty 프로그램에서 발견된 실제 사례의 취약점을 포함한 웹 애플리케이션.

저장소 보기
172342년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Web Hacking Playground

설명

Web Hacking Playground는 통제된 웹 해킹 환경입니다. 모의 침투 테스트와 버그 바운티 프로그램에서 발견된 실제 사례의 취약점들로 구성되어 있습니다. 목표는 사용자들이 이 취약점들을 연습하고, 탐지 및 익스플로잇 방법을 배우는 것입니다.

또한 다음과 같은 관심 주제들도 다룰 것입니다: 맞춤형 페이로드를 생성하여 필터 우회, 여러 취약점을 연계한 공격 실행, 개념 증명 스크립트 개발 등이 있습니다.

중요사항

애플리케이션 소스 코드는 공개되어 있습니다. 하지만 랩의 접근 방식은 블랙박스 방식입니다. 따라서 챌린지를 해결하기 위해 코드를 검토해서는 안 됩니다.

또한, 퍼징(파라미터 및 디렉토리 모두)과 무차별 대입 공격은 이 랩에서 어떤 이점도 제공하지 않는다는 점에 유의해야 합니다.

설정

이 랩을 수행하려면 Kali Linux를 사용하는 것이 좋습니다. 가상 머신을 사용하는 경우 VMware Workstation Player 하이퍼바이저를 사용하는 것이 좋습니다.

환경은 Docker와 Docker Compose를 기반으로 하므로 둘 다 설치되어 있어야 합니다.

Kali Linux에 Docker를 설치하려면 다음 명령어를 실행하십시오:

root@kitploit:~
sudo apt update -y
sudo apt install -y docker.io
sudo systemctl enable docker --now

다른 Debian 기반 배포판에 Docker를 설치하려면 다음 명령어를 실행하십시오:

root@kitploit:~
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo systemctl enable docker --now

Docker Compose를 설치하려면 다음 명령어를 실행하십시오:

root@kitploit:~
sudo apt install -y docker-compose

참고: M1을 사용하는 경우 이미지를 빌드하기 전에 다음 명령어를 실행하는 것이 좋습니다:

root@kitploit:~
export DOCKER_DEFAULT_PLATFORM=linux/amd64

다음 단계는 리포지토리를 클론하고 Docker 이미지를 빌드하는 것입니다:

root@kitploit:~
git clone https://github.com/takito1812/web-hacking-playground.git
cd web-hacking-playground
sudo docker-compose build

또한, 프록시 설정을 쉽게 변경할 수 있는 Foxy Proxy 브라우저 확장 프로그램과 HTTP 요청을 가로채는 데 사용할 Burp Suite를 설치하는 것이 좋습니다.

Foxy Proxy에서 Burp Suite를 프록시로 사용할 새 프로필을 생성합니다. 이렇게 하려면 Foxy Proxy 옵션으로 이동하여 다음 구성으로 프록시를 추가합니다:

  • 프록시 유형: HTTP
  • 프록시 IP 주소: 127.0.0.1
  • 포트: 8080

배포

필요한 모든 것이 설치되면 다음 명령어로 환경을 배포할 수 있습니다:

root@kitploit:~
git clone https://github.com/takito1812/web-hacking-playground.git
cd web-hacking-playground
sudo docker-compose up -d

이 명령은 Flask로 개발된 두 개의 애플리케이션 컨테이너를 포트 80에 생성합니다:

  • 취약한 웹 애플리케이션 (Socially): 소셜 네트워크를 시뮬레이션합니다.
  • 익스플로잇 서버: 취약점이 없으므로 해킹을 시도해서는 안 됩니다. 목표는 피해자가 악성 링크에 접속하는 상황을 시뮬레이션하는 것입니다.

중요사항

컨테이너의 IP를 /etc/hosts 파일에 추가하여 이름으로 접근할 수 있고 익스플로잇 서버가 취약한 웹 애플리케이션과 통신할 수 있도록 해야 합니다. 이를 위해 다음 명령어를 실행하십시오:

root@kitploit:~
sudo sed -i '/whp-/d' /etc/hosts
echo "$(sudo docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' whp-socially) whp-socially" | sudo tee -a /etc/hosts
echo "$(sudo docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' whp-exploitserver) whp-exploitserver" | sudo tee -a /etc/hosts

이 작업이 완료되면 http://whp-socially에서 취약한 애플리케이션에, http://whp-exploitserver에서 익스플로잇 서버에 접근할 수 있습니다.

익스플로잇 서버를 사용할 때는 IP가 아닌 도메인 이름을 사용하여 위 URL을 사용해야 합니다. 이렇게 해야 컨테이너 간의 올바른 통신이 보장됩니다.

해킹 시 공격자 서버를 나타내기 위해 로컬 Docker IP를 사용해야 합니다. 랩은 Burp Collaborator, Interactsh 등과 같은 외부 서버로 요청을 보내도록 의도되지 않았기 때문입니다. Python http.server를 사용하여 웹 서버를 시뮬레이션하고 HTTP 상호작용을 수신할 수 있습니다. 이를 위해 다음 명령어를 실행하십시오:

root@kitploit:~
sudo python3 -m http.server 80

단계

환경은 각각 다른 취약점이 있는 세 단계로 나뉩니다. 다음 단계의 취약점이 이전 단계의 취약점을 기반으로 하므로 순서대로 진행하는 것이 중요합니다. 단계는 다음과 같습니다:

  • 1단계: 모든 사용자로 접근
  • 2단계: 관리자로 접근
  • 3단계: /flag 파일 읽기

중요사항

아래는 각 단계 취약점에 대한 스포일러입니다. 도움이 필요 없으면 이 섹션을 건너뛰어도 됩니다. 반면, 어디서부터 시작해야 할지 모르거나 올바른 방향으로 가고 있는지 확인하려면 관심 있는 섹션을 펼쳐보세요.

1단계: 모든 사용자로 접근

표시

이 단계에서는 Cross-Site Scripting (XSS)을 통해 특정 사용자의 세션을 탈취할 수 있으며, 이를 통해 JavaScript 코드를 실행할 수 있습니다. 이를 위해서는 피해자가 사용자의 컨텍스트에서 URL에 접근할 수 있어야 하며, 이 동작은 익스플로잇 서버로 시뮬레이션할 수 있습니다.

이 단계를 해결하기 위한 힌트는 다음과 같습니다:

  • 홈페이지에 눈에 띄는 게시물이 있나요?
  • 세션을 탈취하려면 두 가지 취약점을 연계해야 합니다. XSS는 피해자가 외부 URL로 리디렉션되는 Open Redirect 취약점을 익스플로잇하여 달성됩니다.
  • Open Redirect에는 몇 가지 보안 제한이 있습니다. 이를 우회하는 방법을 찾아야 합니다. URL에서 허용되지 않는 문자열을 분석하세요.
  • 쿠키만이 세션 정보가 저장되는 유일한 장소는 아닙니다. 애플리케이션에 포함된 JavaScript 파일의 소스 코드를 검토하면 의문점을 해소하는 데 도움이 될 수 있습니다.

2단계: 관리자로 접근

표시

이 단계에서는 관리자로 접근할 수 있는 토큰을 생성할 수 있습니다. 이는 일반적인 JSON Web Token (JWT) 공격으로, 토큰 페이로드를 수정하여 권한을 상승시킬 수 있습니다.

이 단계를 해결하기 위한 힌트는 JWT가 주어지면 유효한 세션 쿠키를 반환하는 엔드포인트가 있다는 것입니다.

3단계: /flag 파일 읽기

표시

이 단계에서는 Server Side Template Injection (SSTI) 취약점을 통해 /flag 파일을 읽을 수 있습니다. 이를 위해서는 애플리케이션이 서버에서 Python 코드를 실행하도록 해야 합니다. 서버에서 시스템 명령어를 실행할 수 있습니다.

이 단계를 해결하기 위한 힌트는 다음과 같습니다:

  • 취약한 기능은 이중 인증으로 보호됩니다. 따라서 SSTI를 익스플로잇하기 전에 OTP 코드 요청을 우회하는 방법을 찾아야 합니다. 애플리케이션이 동일한 서버에서 오는 요청을 신뢰하는 경우가 있으며, 이 상황에서 HTTP 헤더가 중요한 역할을 합니다.

  • SSTI는 블라인드(Blind)입니다. 즉, 서버에서 실행된 코드의 출력을 직접 얻을 수 없습니다. Python smtpd 모듈을 사용하면 수신한 메시지를 표준 출력으로 출력하는 SMTP 서버를 만들 수 있습니다:

    sudo python3 -m smtpd -n -c DebuggingServer 0.0.0.0:25

  • 애플리케이션은 Flask를 사용하므로 템플릿 엔진이 Jinja2임을 추론할 수 있습니다. 공식 Flask 문서에서 권장되고 널리 사용되기 때문입니다. 최종 플래그를 얻으려면 Jinja2 호환 페이로드를 가져와야 합니다.

  • 이메일 메시지에는 문자 제한이 있습니다. 이 제한을 우회하는 방법에 대한 정보는 인터넷에서 찾을 수 있습니다.

해결 방법

각 단계에 대한 상세한 해결 방법은 Solutions 폴더에서 확인할 수 있습니다.

리소스

다음 리소스는 단계를 해결하는 데 도움이 될 수 있습니다:

  • Google
  • Twitter 고급 검색
  • HackTricks
  • PortSwigger 학습 자료
  • Payloads All The Things
  • Payload Box

협업

풀 리퀘스트를 환영합니다. 버그를 발견하시면 이슈를 열어주세요.

도구 다운로드