- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
def auth_2FA(request):
mail = request.POST.get('mail')
user = User.objects.get(email=mail)
code2FA = request.POST.get('code2FA')
if pyotp.TOTP(user.secret).verify(code2FA):
auth.login(request, user)
return redirect(settings.HOME_PAGE)
else:
...
Soul_recOver # 0
Doorman5302 # 0 ⇈
hormand # 0 ⇈
Stallman # 0
CTOMATOJlOr # 0 ⇈
guesf6 # 0 ⇈
так?
HOBOKAuH # 0 ⇈
Fike # 0
Лезем в код
Чтобы его перебрать, надо остановить часы (или успеть переебать все варианты в течение окна), чтобы его подгадать, нужно знать пользовательский секрет. По-хорошему действительно уже на второй-третьей попытке надо блокировать вход в течение окна, но джанга же всё равно столько рпс не выдержит, чтобы подобрать.
> пароль не проверяется.
А как он блядь должен проверяться, если это отдельный запрос? Различные факторы в том числе должны быть изолированы друг от друга, чтобы подглядев один хуемышленник не подглядел сразу всё. Подозреваю, что до этого кода просто не дойдет, если не стоит сессия, созданная в результате ввода пароля.
Doorman5302 # 0 ⇈
Но выходит, что не надо знать пароль. Достаточно знать mail и код двуфакторки и отправить post запрос
Fike # 0 ⇈
Doorman5302 # 0 ⇈
bormand # 0 ⇈
Или просто начать новое окно когда старое протухнет...
В общем-то за миллион-другой попыток что с окном что без окна что-нибудь подберётся чисто по теории вероятностей. Тлен и безысходность если попытки не троттлить.