Сложность: Средняя
Url: Недоступен
Ссылка на отчет: https://hackerone.com/reports/128085²⁴
Дата отчет: 3 апреля 2016
Выплаченное вознаграждение: Недоступно
Описание:
3 апреля Джоберт Абма (сооснователь HackerOne) сообщил
GitLab, что при включенной двухфакторной аутентификации
хакер смог войти в аккаунт жертвы, не зная её пароля.
Для тех, кто не знает, что это такое, скажу, что двухфакторная
аутентификация - двухступенчатый процесс входа, обычно
пользователь вводит свой логин и пароль и затем сайт отправ-
ляет ему код авторизации, обычно через email или SMS, ко-
торый пользователь должен ввести, чтобы завершить процесс
аутентификации.
В этом случае Джоберт заметил, что в процессе входа, после
ввода хакером его логина и пароля, отправлялся токен для
завершения входа. При отправке токена POST-запрос выглядел
так:
1 POST /users/sign_in HTTP/1.1
2 Host: 159.xxx.xxx.xxx
3 ...
4
5 ----------1881604860
6 Content-Disposition: form-data; name=”user[otp_attempt\
7 ]”
8
9 212421
10 ----------1881604860--
Если атакующий перехватывал его и добавлял имя пользова-
теля к запросу, например:1 POST /users/sign_in HTTP/1.1
2 Host: 159.xxx.xxx.xxx
3 ...
4
5 ----------1881604860
6 Content-Disposition: form-data; name=”user[otp_attempt\
7 ]”
8
9 212421
10 ----------1881604860
11 Content-Disposition: form-data; name=”user[login]”
12
13 john
14 ----------1881604860--
то атакующий мог войти в аккаунт Джона, если токен otp_-
attempt был валидным для Джона. Другими словами, в процес-
се двухфакторной аутентификации, если атакующий добав-
лял параметр user[login], он мог изменить аккаунт, в который
совершалась попытка входа.
Единственным недостатком здесь было то, что атакующий
должен был иметь валидный OTP-токен жертвы. Но это как
раз подходящий случай для брутфорса. Если администрато-
ры сайта не реализовали ограничение на количество запро-
сов, Джоберт мог бы осуществлять повторяющиеся запросы
к серверу в попытках угадать валидный токен. Вероятность
успешной атаки зависела бы от транзитного времени отправ-
ки запроса к серверу и от срока валидности токена, но вне
зависимости от этих параметров, уязвимость здесь довольно
явная.
Выводы
Двухфакторную аутентификацию непросто реа-
лизовать корректно. Когда вы замечаете, что сайт
использует её, вы можете захотеть провести пол-
ное тестирование всей функциональности, вклю-
чая длительность жизни токена, максимальное
количество запросов, повторное использование
истекших токенов, вероятность угадать токен, и
так далее,
#42672 в Разное
#1029 в Бизнес-литература
#5069 в Развитие личности
хакер, хакинг, основы этичного хаки...
16+
Отредактировано: 08.03.2019