Содержание статьи
Это исследование получило третье место на Pentest Award 2025 в категории «Девайс». Соревнование ежегодно проводится компанией Awillix.
Точка входа, или Account takeover
В первых числах мая я решил окунуться в хардварь и специально для этого купил IP-камеру. На ее полное исследование у меня ушло чуть меньше двух месяцев.
Все камеры этой компании‑производителя управляются через приложение. Довольно популярное — оно загружено уже больше 500 тысяч раз.
При регистрации в приложении я попробовал вручную поперебирать коды подтверждения адреса электронной почты и обнаружил, что на перебор нет никаких лимитов, за превышение которых могли бы заблокировать. Не было их и в форме восстановления пароля, где тоже нужно ввести код из почты.
Тогда я открыл Burp и начал перебирать код... но ничего не получилось. Дело в том, что приложение вычисляет некую сигнатуру, которая должна быть разной от запроса к запросу.

Метод хеширования можно было увидеть в JADX.

Приложение берет SHA-256 от данных в Base64 и затем вызывает MD5.

Алгоритм восстановили, теперь можно перебирать!
Для ускорения и правильного вычисления сигнатуры я написал на JS скрипт, который достигал скорости перебора в 270 запросов в секунду.
Учитывая, что срок жизни кода — 30 минут, вероятность подбора верного кода с первой попытки превышает 48%. Так как за один день можно отправить не более восьми кодов восстановления, вероятность захватить аккаунт за сутки — 99,5%.
При вводе правильного кода в ответе лежит VERIFY_CODE, который потом подставляется в форму сброса пароля.
Смотрим запрос смены пароля.

Видим VERIFY_CODE и сигнатуру, а также подмечаем странный формат пароля.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»
