
컨테이너화된 실습 환경으로, Elementor WordPress 플러그인의 DOM 기반 XSS 취약점(CVE-2021-24891)을 시뮬레이션 및 익스플로잇하여 실습형 보안 교육을 제공합니다.
WordPress의 Elementor Website Builder 플러그인에서 발견된 CVE-2021-24891로 식별된 DOM 기반 교차 사이트 스크립팅(XSS) 취약점을 시뮬레이션하고 익스플로잇할 수 있는 실습형 컨테이너화된 랩 환경입니다.
이 랩은 WordPress용 Elementor 플러그인(버전 3.4.8 이전)의 DOM 기반 교차 사이트 스크립팅(XSS) 취약점을 시연합니다. 이 취약점은 Elementor 편집기의 클라이언트 측 코드가 URL의 해시(#...)에서 데이터를 직접 읽고 적절한 삭제(sanitization) 없이 페이지의 문서 객체 모델(DOM)에 추가하기 때문에 발생합니다.
공격자는 해시 조각에 JavaScript 페이로드가 포함된 악성 링크를 만들 수 있습니다. 로그인된 관리자(사이트 편집자 등)가 이 링크를 클릭하면 악성 스크립트가 해당 브라우저 세션의 컨텍스트 내에서 실행되어, 공격자가 해당 사용자를 대신하여 작업을 수행하거나 세션 쿠키를 탈취하거나 웹사이트를 변조할 수 있습니다.
#으로 시작하는 URL의 일부로, 클라이언트 측에서 처리되며 서버로 전송되지 않습니다. 이것이 악성 페이로드의 진입점입니다.이 저장소에는 영향을 받는 Elementor 플러그인이 포함된 취약한 WordPress 인스턴스가 있으며, 익스플로잇할 준비가 되어 있습니다. 랩은 클라우드 또는 로컬 머신에서 즉시 실행할 수 있습니다.
가장 쉽게 시작할 수 있는 방법입니다. 브라우저에서 미리 구성된 클라우드 기반 환경을 제공합니다.
Codespace 시작: 이 README 상단의 "Open in GitHub Codespaces" 배지를 클릭합니다.
설정 기다리기: GitHub가 환경을 준비합니다. 완료되면 터미널이 나타납니다.
취약한 서비스 시작: VS Code 터미널에서 다음 명령어 하나를 실행합니다.
docker compose up
이 명령은 취약한 WordPress 사이트와 데이터베이스를 시작합니다. "Ports" 탭이 나타납니다. 포트 8080의 링크를 클릭하여 새 브라우저 탭에서 WordPress를 엽니다.
Docker를 사용하여 전체 랩을 자신의 머신에서 실행합니다.
사전 요구사항:
지침:
저장소 클론:
git clone https://github.com/hackmelocal/CVE-2021-24891-Simulation.git
cd CVE-2021-24891-Simulation
취약한 서비스 시작: 터미널에서 다음 명령어를 실행합니다.
docker compose up
WordPress 접속: 웹 브라우저를 열고 http://localhost:8080으로 이동합니다.
Elementor 편집기 내의 JavaScript 코드가 window.location.hash의 값을 읽고 이를 안전하지 않게 페이지의 DOM에 씁니다. 입력(<script>alert(...)</script>)이 삭제되지 않았기 때문에 브라우저가 이를 유효한 스크립트 태그로 해석하고 실행합니다. 이는 DOM 기반 XSS의 전형적인 예입니다.
이 랩은 교육 목적으로만 제공됩니다. 제공된 정보나 도구의 오용에 대해 제작자는 책임을 지지 않습니다. 보안 테스트를 수행하기 전에 항상 적절한 승인을 받았는지 확인하십시오.
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하십시오.