Я публикую это с разрешения Facebook в соответствии с политикой ответственного раскрытия информации. Они исправили эту уязвимость.

Этот пост посвящен простой уязвимости, которую я обнаружил в Facebook, которую я мог бы использовать для легкого взлома учетных записей Facebook других пользователей без какого-либо взаимодействия с пользователем.

Это дало мне полный доступ к учетной записи других пользователей, установив новый пароль. Я мог просматривать сообщения, их кредитные / дебетовые карты, хранящиеся в разделе оплаты, личные фотографии и другую личную информацию.

Facebook сразу же признал проблему, устранил ее и наградил меня вознаграждением в размере 15 000 долларов США в зависимости от серьезности и воздействия этой уязвимости.

Как сработал взлом

Каждый раз, когда пользователь забывает свой пароль на Facebook, у него есть возможность сбросить пароль, введя свой номер телефона и адрес электронной почты на странице https://www.facebook.com/login/identify?ctx=recover&lwv=110.

Facebook затем отправит шестизначный код на этот номер телефона или адрес электронной почты, который пользователь должен ввести, чтобы установить новый пароль.

Я попытался подобрать 6-значный код на www.facebook.com, и после 10–12 неверных попыток был заблокирован.

Затем я обратил внимание на ту же проблему на beta.facebook.com и mbasic.beta.facebook.com. Интересно, что в конечной точке, где забыли пароль, отсутствовало ограничение скорости.

Я попытался завладеть своей учетной записью (согласно политике Facebook вы не должны причинять вред учетным записям других пользователей), и мне удалось установить новый пароль для своей учетной записи. Затем я мог бы использовать этот же пароль для входа в свою взломанную учетную запись.

Доказательство концептуального видео взлома

Как вы можете видеть на видео, мне удалось установить новый пароль для пользователя путем грубой силы кода, который был отправлен на его адрес электронной почты и номер телефона.

Уязвимый запрос

POST /recover/as/code/ HTTP/1.1

Host: beta.facebook.com

lsd=AVoywo13&n=XXXXX

Подбор «n» успешно позволил мне установить новый пароль для любого пользователя Facebook.

Хронология раскрытия информации

22 февраля 2016 г .: отчет отправлен команде Facebook.

23 февраля 2016 г .: Проверено исправление с моей стороны.

2 марта 2016 года: награда в размере 15 000 долларов США от Facebook.