
Mongo Vulnub Lab...해킹해 보세요.....!
CTF 챌린지 - Mongoose RCE (CVE-2024-53900)
챌린지 개요
이 Capture The Flag (CTF) 챌린지는 Mongoose의 취약점인 CVE-2024-53900을 기반으로 하며, MongoDB 쿼리에서 $where 연산자를 부적절하게 사용하여 원격 코드 실행(RCE)을 허용합니다.
여러분의 목표는 이 취약점을 악용하여 애플리케이션 내부에 숨겨진 플래그를 검색하는 것입니다!
설정 지침
1 종속성 설치 Node.js가 설치되어 있는지 확인한 후 다음을 실행하세요:
npm install
2 MongoDB 구성 MongoDB를 설치하고 실행 중인지 확인하세요. 루트 디렉토리에 .env 파일을 만들고 다음 내용을 추가하세요:
MONGO_URI=mongodb://localhost:27017/ctf_db
3 서버 시작 취약한 Express 서버를 실행하세요:
node server.js
서버는 http://localhost:3000 에서 시작됩니다.
챌린지 목표
여러분의 목표는 인증을 우회하고 취약한 엔드포인트에서 플래그를 추출하는 것입니다.
취약 엔드포인트:
POST /login
애플리케이션은 안전하지 않은 MongoDB $where 쿼리를 사용하여 NoSQL 인젝션 및 RCE에 취약합니다.
악용 힌트:
NoSQL 인젝션 페이로드를 시도하여 쿼리를 조작하세요.
JavaScript 코드를 $where 조건에 주입하세요.
응답 내부에 숨겨진 플래그를 검색하세요.
디렉터리 구조
│── public/ Frontend assets
│ ├── index.html CTF challenge UI
│ ├── style.css Styling for the challenge
│ └── script.js JavaScript for login request
│── .env Environment variables (MongoDB URI)
│── server.js Vulnerable Express.js server
│── package.json Dependencies & scripts
│── package-lock.json Lock file for dependencies
└── README.md Challenge guide (this file)
승리 조건
취약점을 성공적으로 악용하면 다음과 같은 응답을 받게 됩니다:
로그인 성공! 여기에 플래그가 있습니다: FLAG{**__****}