Обновить

000xpda или как я реверсил электронный дневник и нашел ключи в логах

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели14K
Всего голосов 47: ↑46 и ↓1+58
Комментарии12

Комментарии 12

Отличная работа. Помню, мы на уроках труда делали всякие полезности ля школы - табуретки там, номерки в гардероб итд. Сейчас уже можно усилиями учеников делать школьные порталы )))

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

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

Итак, вводная - ученик смог ручки API подергать не через приложение. Молодец. У всех нормальных сервисов описание API является публичным документом (как раз чтобы не надо было использовать только приложение - а написать своё или сделать бота). И именно открытость принято считать "нормальным"

и имитация логина

перезашёл в свой аккаунт через Госуслуги

Это не "имитация логина". Это и есть процедура логина. Есть простое правило - не важно каким инструментом клиент пользуется, важно чтобы клиент не получил то, чего он не должен получить.

Доступ к расписанию получен? Да. И что с того ? Расписание уроков это такая же публичная информация как расписание фильмов и график работы магазина. Свои оценки получены (увидены)? Возможно. Но это нормально - ученик имеет право видеть свои оценки. Чужие оценки получены? Нет. Свои оценки внесены? Нет. Значит, конфиденциальность не нарушена. API Key (хотя это на самом деле session_key) научились вычислять? Да не вопрос, в 90% продуктов у которых есть официально доступный бакэнд этот ключ/токен вообще сервером выдается после логина.

проверку легитимности устройства

"легитимность устройства" - выдуманный маркетологами бред

Токен авторизации (X1_SSO) не привязан к «отпечатку» устройства (Fingerprint)

И это нормально

или IP-адресу

Если вы привяжете сессию (токен сессии( мобильного устройства к IP-адресу в мобильном приложении, ваш руководитель устроит вам публичную порку. IP-адрес с которого приложение на телефоне подключается к серверу, может меняться. То есть легко может получиться что привязанный к IP токен сессии протухает каждые 5 минуты при смене базовой станции телефоном. Поэтому в нормальной ситуации токены сессий никогда к IP не привязывают.

Кто сказал, что это всё? Не всё стоит выкладывать в публичный доступ, и это правильно.

О себе думать никто не отменял.

Надо только сделать возможность ставить оценки

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

А я вот имею обратное удовольствие: в школе у ребенка элжур реализован как приличное такое приложение в телефоне, и авторизация без дураков, яемер ЕСИА (Госуслуги). И что же - теперь при авторизации мне выдаётся мобильная страничка госуслуг, с этим вот замечательным "теперь вы будете использовать Макс". Не, не буду, но обойти этот говно баннер не могу, тк в мобильной версии ссылки "не хочу" нет. А раз не могу пройти дальше, то и приложение элжура, умеющее авторизацию хранить и не требовать при каждом входе - мне недоступно функционально. Остается сайт элжура, а там авторизацию требуется при каждом прекращении активности.

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

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

Мертвый код: Наличие в классе Crypt неиспользуемых переменных для AES-шифрования и функций, работающих вхолостую (replaceChars). Это говорит о низком качестве контроля кода.

По моему мнеию, это говорит о другом. Разработчик, вероятно, не ООО, которым многое позволено в плане шифрования. Чтобы реализовать в приложении криптографию (шифрование выше DES) требуется лицензия, которую тяжко получить (ФСБ). Изначально планировал реализовать шифрование, но покапавшись в законах РФ побоялся и не зря, и поэтому сменил криптографию на обфускацию. Ему же, наверное, еще и нужно было регистрировать ПО в разных гос. реестрах, типа таможенных, или отечественного ПО.

А вот ваш код с форматированием на Python говорит, о том, что нейросеть его писала, а не вы.

не очень понятно, зачем вообще в рид-онли доступе к дневнику нужна аутентификация

расписание, д/з, ФИО, оценки — это всё публичная информация, зачем её скрывать

ФИО+класс+школа - уже ПД наверняка.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации