Главная страница. Видим только логин форму, регистрации нет.
Flask Session Cookie Key случайный, пароль юзера overseer
тоже случайный.
Увидим, что строка 23 уязвима к NoSQL инъекции, из-за того, что username
и password
берутся напрямую из входящего JSON (data.get('username')
и data.get('password')
) без проверки или фильтрации.
Вместо пароля, можем вставить логическую конструкцию $ne (not equals), которая проверит, НЕ является ли пароль какой-то определенной строкой.
Так как пароль точно не равен строке web3writeup
, мы успешно авторизуемся.
Находим флаг в поле Notifications
.