Man
Professional
- Messages
- 2,963
- Reaction score
- 486
- Points
- 83

Итак, мое путешествие с этими наушниками началось после того, как я увидел их в этом видео Mrwhosetheboss о бесполезных технологиях. Это устройство, похоже, также популярно в TikTok. Мои подозрения подтвердились, оно работает на Android. Поэтому, конечно, я пошел и купил их.

245 евро спустя... и они наконец прибыли!
Прежде чем мы углубимся в это, в отличие от rabbit, эта проблема была должным образом сообщена и исправлена. Это также мой первый настоящий пост в блоге/раскрытие, поэтому обратная связь приветствуется.
Небольшой обзор


Мне нравится, как они прикрепили кабель USB-c к внешней стороне коробки, хотя внутри коробки есть еще один, поменьше. Кажется, у них закончилось место в коробке...

Мне также интересно, разрешено ли им юридически использовать этот логотип OpenAI (вероятно, нет, лол)
В любом случае, мы здесь не ради красивых коробок, перейдем к главному. Само устройство загружается на экран с временем и ChatGPT спереди и по центру.

Также доступны некоторые другие функции ИИ, например, переводы. Но это не обзор устройства, вы можете посмотреть другие видео на YouTube об этом. Анимация ChatGPT выглядит слишком похожей на само приложение, и OpenAI, вероятно, может навлечь на них юридические проблемы за кражу их фирменного стиля. Я также упомяну, что качество звука — полное дерьмо, если вы используете их профили эквалайзера, но его можно поднять до приемлемого уровня, настроив кривые эквалайзера самостоятельно.
Также есть несколько приложений, доступных в магазине IKKO, причина, по которой нет магазина Google Play, заключается в том, что эти приложения специально модифицированы для экрана ActiveBuds, по крайней мере, так говорит о них генеральный директор. Мы проверим это немного позже. Эти приложения включают в себя некоторые музыкальные приложения, такие как Spotify, а также некоторые игровые приложения, такие как, о боже, SUBWAY SURFERS BAYBEEEEE

Конечно, все они невыносимы для навигации из-за маленького экрана. Однако теперь мы можем подтвердить, что он определенно работает на Android.
Время для хакерства
К сожалению, нет браузера, который бы напрямую скачивал другие приложения. И хотя вы можете открыть собственное приложение настроек Android, нажатие номера сборки 7 раз не включает режим разработчика. Так что, похоже, я не смог включить adb. Неужели он так хорошо заблокирован? Хех, нет.Давайте просто подключим его к ПК и посмотрим, что произойдет...

Какого хрена, они оставили ADB включенным. Ну, это намного упрощает задачу.

После загрузки обязательного DOOM я начал проверять, как работает интеграция ChatGPT на бэкенде. Сначала я начал HTTP-инспектирование устройства, однако, поскольку я не мог включить нужные системные сертификаты без рутирования устройства, я не мог точно увидеть, на какой URL оно общалось. К счастью, это не было действительно необходимо.

Черт возьми, черт возьми, черт возьми, он общается НАПРЯМУЮ С OPENAI. Это означает, что на устройстве должен присутствовать ключ ChatGPT!
Я знаю, что это устройство можно рутировать, чтобы установить нужные сертификаты, потому что на всех устройствах Spreadtrum/Unisoc есть инструмент, который можно использовать для разблокировки загрузчика, если компании используют ключи подписи по умолчанию. Это действительно было так и здесь. Однако я не смог пройти дальше экрана подтверждения, так как на устройстве нет клавиши увеличения громкости для подтверждения разблокировки. Я думаю, что вы можете подписать свои собственные разделы, чтобы заставить его прошивать их без разблокированного загрузчика, но это немного слишком сложно для меня.
Итак, я вернулся к чертежной доске и просто выгрузил все приложения с помощью инструмента APK extractor. После того, как я вставил приложение-лаунчер в JADX, все сразу стало тревожным.

Устройство может взаимодействовать с любым из этих доменов.
- api.openai.com
Очевидно, API OpenAI - chat1.chat.iamjoy.cn
Похоже, это API для всего устройства, включая функции, не связанные с ChatGPT, такие как магазин приложений. Загрузка его в браузере дает страницу входа. - chat2.chat.iamjoy.cn
То же самое, что и chat1, возможно, резервный сервер? - openspeech.bytedance.com
Понятия не имею, возможно, это резервная копия распознавателя речи вместо шепота, не видел сообщений об этом с этого устройства. - www.airdimple.cn
Похоже на зеркало или прокси-сервер OpenAI API?
Зная это, я отправился на поиски конечных точек и ключей API. Я нашел файл SecurityStringsAPI, который содержал зашифрованные конечные точки и ключи аутентификации.

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

Однако есть второй этап, который обрабатывается нативной библиотекой, которая запутана до чертиков. Я даже не буду пытаться это читать. К счастью, мне не пришлось. Я просто загрузил приложение на другое устройство, которое было рутировано, и, ну, как и apk rabbit , оно просто работает!

Проверка данного устройства:

Да, это ключ OpenAI.
Теперь, имея этот доступ, мы также можем раскрыть их (довольно забавную) системную подсказку.

Устройство также имеет еще несколько режимов, которые являются Angry Dan и In-Love Dan. Для режима angry вам нужно подтвердить, что вам 18+, потому что он на самом деле много ругается.


Системные подсказки для этого немного скучнее.

Я также заметил, что он записывает чат на другую конечную точку в домене chat1. Вероятно, это просто для ведения журнала сообщений, поскольку API ChatGPT этого не позволяет. Возможно, для какого-то китайского шпионажа? Ну, возможно, но не полностью, мы до этого доберемся.

Заголовки этого запроса включают сообщение, модель, ответ и IMEI устройства в качестве идентификатора устройства.
Я также загрузил приложение магазина и обнаружил, что большинство приложений, похоже, скопированы прямо с apkpure.com.

Узнав эту информацию, я отправил электронное письмо в отдел безопасности IKKObuds.

Пока ждал их ответа, я начал изучать их сопутствующее приложение. Подождите, я забыл вам об этом рассказать?
Да, у этих наушников есть сопутствующее приложение, с помощью которого вы также можете напрямую взаимодействовать с ChatGPT и просматривать свои предыдущие чаты с устройства. Так вот для чего используется конечная точка регистрации! Вы привязываете приложение, сканируя QR-код с устройства в меню «Участие».

Итак, давайте проверим HTTP-запрос этого приложения и выясним, откуда оно берет эту информацию.


Хорошо, он запрашивает этот API с вашим токеном учетной записи и идентификатором вашего устройства и возвращает все чаты, которые у вас когда-либо были с устройством. Однако после удаления токена учетной записи запрос все еще работал? Так что этот API не имеет аутентификации, кроме идентификатора устройства. Я боялся худшего.
Я нашел кадр в обучающем видео, в котором идентификатор устройства не был должным образом размыт, и добавил его в API.


ДА, теперь у меня есть вся история чата их демо-устройства. И поскольку IMEI имеет определенный диапазон, вы сможете выяснить историю чата всех клиентов, которая может включать конфиденциальные данные.
Я также добавил это новое открытие в цепочку писем.

Пока это письмо ждало ответа, я проверил, могу ли я сфабриковать связывающий QR-код из известного IMEI, чтобы привязать устройство. (QR-код — это не сам IMEI, а что-то зашифрованное) Я нашел конечную точку API, посмотрев на тот же SecurityStringsAPI, который оказался менее безопасным, чем я изначально думал, потому что имена переменных буквально раскрывают зашифрованные конечные точки API (лол)

Подключив API getBindDevQrCode в Postman, я смог создать изображение QR-кода в формате base64 с любым IMEI.

Однако использование этого QR-кода для попытки привязать устройство к моему приложению привело к ошибке, сообщающей, что устройство уже привязано к кому-то другому. Так что это была единственная хорошая реализация безопасности до сих пор.

Однако я соврал, это все еще проблема безопасности/конфиденциальности. Почему, спросите вы? Это раскрывает имя пользователя, которое вы указали при создании учетной записи для приложения. Однако при создании учетной записи нет поля имени пользователя. Только имя и фамилия.

Я создал учетную запись с именем "Cheese2" и вторым именем "Delight2". Оказывается, имя пользователя равно имени + фамилии. При попытке привязать это устройство к приложению после того, как оно уже было привязано к другому приложению, ответ включает имя "Cheese2Delight2". Отлично. Doxed.

Итак, что мы можем сделать сейчас, так это угадать IMEI -> сгенерировать QR-код -> Привязать устройство, если оно еще не привязано, или узнать ваше полное имя, если устройство уже привязано. -> Получить всю историю чатов, независимо от того, привязано устройство или нет.
Doxed + Ratio + ждать....

Есть ли конечная точка unbind_dev???
К сожалению, этот способ на самом деле проверяет токен аккаунта и не позволяет отвязать случайный IMEI устройства. Уф.
Эй, а ты помнишь ту конечную точку регистрации, которая на самом деле отправляла твои чаты, созданные с помощью ChatGPT, на их серверы? Вот эту?

Да, здесь также для аутентификации используется только идентификатор устройства, поэтому мы можем отправлять произвольный текст в сопутствующее приложение любого человека...
Я попытался отправить через него немного HTML и JS, чтобы попытаться использовать сопутствующее приложение, к счастью, они используют vue для своего приложения, и в нем встроена защита от инъекций HTML и JS по умолчанию . Но мы все равно можем отправлять мошеннические сообщения или что-то еще любому пользователю.
О, привет, ответ на мое письмо!

Во-первых, с адреса gmail? Да ладно, постарайтесь же проявить хоть какой-то профессионализм. Во-вторых, окей, они действительно что-то делают.
(Упомянутый канал YouTube — это потому, что я сказал, что сниму видео об этом. У меня есть все кадры для этого, но я ненавижу свой голос всей душой, поэтому мы здесь, в этом блоге

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


Они также хотели стать спонсором моего пустого канала на YouTube? Что?
Я не думаю, что они поняли, что я буду говорить об их ужасной безопасности. В любом случае.

API теперь не функционировал и отображал сообщение о техническом обслуживании. После периода обслуживания они выпустили как обновление приложения, так и обновление устройства.
Что изменилось? Конечной точке для получения истории чата теперь нужен заголовок «signature». Который состоит из токена вашей учетной записи, идентификатора вашего устройства, языка и текущего времени, закодированных с помощью открытого/закрытого ключа + пароля.
(ой, раскрыл это)

В любом случае, теперь невозможно получить чаты без действительного токена учетной записи. Все еще не исправляет тот факт, что я могу сгенерировать QR-код с угадываемым IMEI и привязать устройство к приложению, если оно еще не привязано. Это обходит все это.
Обновление устройства сломало функциональность ChatGPT, которая не функционирует на устройстве, которое не является самим IkkoBuds. Ключи остаются на устройстве и не были ротированы. Так что если кто-то сможет разобраться со сломанным приложением на другом устройстве или системой шифрования ключей, вы все равно сможете получить свой собственный бесплатный ключ API OpenAI.

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

Итак, вот и все. Вы по-прежнему можете вставлять сообщения в приложения других, связывать устройства, которые еще не привязаны к другому приложению-компаньону, таким образом, сливая историю чата. И сливать имена и фамилии устройств, которые привязаны.
Я сдаюсь, но если кто-то еще хочет, чтобы эта компания это исправила, будьте моим гостем.
Также, если вам понравилось это глубокое погружение, подумайте о том, чтобы поддержать меня, чтобы я смог убедить себя, что покупка более странных устройств Android того стоит, лол.

Support MGD productions on Ko-fi! ❤️. ko-fi.com/mgdproductions
Support MGD productions On Ko-fi. Ko-fi lets you support the people and causes you love with small donations

Источник