Журнал для ученика

в 13:47, , рубрики: безопасность веб-приложений, информационная безопасность, электронный журнал, метки: , ,

Что такое наша с вами информационная безопасность? Как часто вы задаетесь этим вопросом? Что вы делайте для того, чтобы повысить свою защищенность в сети? Попробую ответить — редко и мало. Однако, как показывает практика — пора начинать.

Итак, приступим. Для начала предлагаю читающим захватить чашку кофе, печенек и половину часа свободного времени в наше путешествие по миру ИБ.

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

Не так давно, в каком-то 2009, Российское образование начало повсеместно внедрять так называемые ЭКЖ (Электронный классный журнал). Директора и учителя в восторге, родители всегда в курсе успеваемости своих чад, а дети мотивированы учиться, чтобы не получить «электронную» двойку и всегда радовать родителей. Но, как говорится, не тут-то было! Всеми расхваленные продукты только на тестах были великолепными, а в реальности?

Все начинается…

Журнал для ученика

  • Медленная загрузка данных самой программы. (20Мбит/с около 8-10 сек), а иногда просто не работало
  • Через раз работающие СМС сервисы оповещения об оценках, а то и вовсе не работающие, как и веб-морда журнала
  • Преподаватели жалуются на сложность (изначально, в начале года/четверти/..) заполнения и время тратится в разы больше, чем на бумажный журнал
  • Дети негодуют, ведь раньше подошел к журналу — полистал, посмотрел (читай исправил) оценки и счастлив, а теперь и при хорошей связи не всегда посмотришь, не говоря уж про исправление.

И прибавилась проблема сохранности всей информации, не просто каких-то оценок, а паспортных данных, домашних адресов и прочей конфиденциальной информации, ведь все хранится и добавляется, редактируется,… в одной программе, с которой «общается» наш журнал.

Так как эта система быстро «расползалась» по широкой-необъятной, то через несколько лет в интернете начали появляться посты любителей о том, что не все так гладко и есть лазейки. Я проверил пару постов, но толком ничего серьезного не обнаружил: банальная замена Cookie-файлов и возможность поставить оценку «0», для того чтобы средний балл за четверть был, примерно, за отметку 6.45. Конечно, данные были отправлены разработчикам и «0» пофиксили в следующем апдейте, но «печенье» забыли и тут понеслась.

За 2 часа, ночью в один из понедельников, я обнаружил то, о чем «трубил» тот первый пост — возможность использования SQL-инъекции, и не просто какой-то а-ля юзер-привелегия, а root-доступ к серваку с той самой, главной базой данных.
Наигравшись вдоволь с входом без пароля под какой-нибудь Марьей Ивановной мне захотелось большего, доступ к админке и попробовать поделать свои запросы.

Журнал для ученика

Час-другой, анализ трафика и успех пришёл. Все было до безобразия банально. Все запросы передавались в открытом виде между клиентом и сервером, а ответы содержали всегда чуть больше необходимой информации, что и помогло осуществить запланированное.

В первых пакетах всегда были данные о тебе (Марье Ивановне) — Логин и пароль вида ivanovna&[password_hash], простым комментированием пароля я избавился от необходимости его даже вводить, чем баловался в первое время.

Позже заметил, что запросы попросту отправляются в 2 директории (с определенной очередностью), одна из которых в базу журнала, а втора в общую, главную базу. Это не могло не радовать, я понял, что все болтается на Firebird, с оф сайта забрал пару запросов на выдачу структуры, а-ля проверка на привилегию, и… сработало. Имея на руках 2 структуры различных БД я понял — все работает: drop'ы, create'ы и тд.

За несколько минут получил информацию обо всех, кто в школе, а потом и их данные.

Простой запрос даёт нам всю инфу об учениках учебного заведения…

Журнал для ученика

Журнал для ученика

… и преподавательском составе…

Журнал для ученика

Журнал для ученика

… а при особой сноровке по их ID можно получать более обширные сведения.

Через несколько дней, проверив те же дыры в других школах (из выдачи google.com) я понял, что все это серьезно и сообщил обо всех уязвимостях системному администратору и директору учебного заведения.

Позже мы еще с админом повеселились, опробовали (официально) дропика, а директор, по моей просьбе, на встрече с руководством этой компании сообщил о багах.

Время шло, ничего не менялось, баги остались, 1 пофиксили (перешли на новую версию единицы), остальные работают…

Пару дней назад проверил — а воз и ныне там…

Подводя итог хочется сказать, что первый опыт общения с иностранными компаниями был намного лучше, нежели с отечественными: скорость ответа администратора (сообщал о доступе к хайрезам в обход системы списывания «кредитов»), вежливое общение, да и накинули фри месяц про-доступа.

P.s. Название организации не сообщается, воимя добра.

Автор: gJamDev

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js