Привет, %username%! Моя статья расскажет тебе, как окончить университет с крутыми оценками без регистрации и отправки СМС, не посещая занятия. Во многих университетах используются автоматизированные информационные системы (АИС), которые содержат информацию об отметках обучающихся, результаты экзаменов, историю посещений занятий и прочие конфиденциальные данные. В моем вузе все ведомости распечатывали напрямую из веб-интерфейса университетской АИС.

WARNING

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

Цель номер раз

Первым в нашем списке будет Евразийский национальный университет им. Л. Н. Гумилева.

Начнем с информационной разведки и посмотрим, что известно об университетском сайте и использующейся АИС. Вуз работает с АИС Platonus. Однако форма авторизации не имеет очевидных уязвимостей, а для полного аудита необходима учетная запись студента (о том, как ее получить, я расскажу ниже), которой у нас по дефолту нет (свою учетную запись не будем использовать, чтобы не наследить в логах). Пришла мысль просканировать основной сайт на наличие субдоменов. Для этого прибегнем к помощи сервиса pentest-tools.com.

Изучаем количество доменов
Изучаем количество доменов

Просмотрев сайты, расположенные на субдоменах, обнаруживаем, что субдомен http://service.enu.kz/ имеет форму авторизации, которая использует логины и пароли от АИС Platonus.

Сайт сервиса
Сайт сервиса
 

Поиск уязвимостей

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

И сразу обнаруживаем, что по адресу https://service.enu.kz/portal/page_dictonary.php форма поиска позволяет произвести DOM SELF XSS атаку. Однако XSS — это не круто, особенно если это SELF.

Выявляем XSS-уязвимость
Выявляем XSS-уязвимость

Наиболее результативной находкой оказалась SQLi, найденная в экшн-скрипте auth.php.

Форма авторизации
Форма авторизации

Достаточно было ввести в форму логина по адресу https://service.enu.kz/portal/page_login.php стандартную кавычку (1234'), чтобы вызвать ошибку в SQL-запросе.

SQL-ошибка
SQL-ошибка
 

Раскручиваем инъекцию

Для того чтобы облегчить себе задачу и не раскручивать инъекцию вручную, прибегнем к любимому многими инструменту — sqlmap.py, который сделает за нас всю черную работу.

Карта SQL-запросов
Карта SQL-запросов

Следующая команда позволит нам вытянуть список доступных баз данных:

sqlmap.py –u "http://service.enu.kz/portal/auth.php" --data="btn_enter=1&login=1234&password=1234&role=ienu&secfield=0" -p "role" --level=5 --risk=2 --dbs.

А вот и результат ее выполнения.

Список доступных баз данных
Список доступных баз данных

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

Попробуем посмотреть таблицы в базе данных под названием service. Для этого вызываем sqlmap со следующими параметрами:

sqlmap.py -u "http://service.enu.kz/portal/auth.php" --data="btn_enter=1&login=1234&password=1234&role=ienu&secfield=0" -p "role" --level=5 --risk=2 -D service --tables

И получаем в ответ список таблиц.

Список доступных таблиц из базы service
Список доступных таблиц из базы service

Особое внимание привлекает таблица auth: что-то подсказывает, что там можно найти данные, связанные с авторизацией. Заряжаем sqlmap на вытаскивание информации об этой таблице:

sqlmap.py -u "http://service.enu.kz/portal/auth.php" --data="btn_enter=1&login=1234&password=1234&role=ienu&secfield=0" -p "role" --level=5 --risk=2 -D service -T auth --columns

Ага, судя по названию колонок, здесь действительно хранятся логины и пароли.

Структура таблицы auth
Структура таблицы auth

Остается только их выудить. Следующая команда в итоге выдаст нам около 173 тысяч данных об авторизации пользователей:

Продолжение доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Вариант 2. Купи один материал

Заинтересовала информация, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для материалов, опубликованных более двух месяцев назад.


6 комментариев

  1. a_jurievich

    23.05.2016 at 13:09

    Одногрупник чокнутый, точно)

  2. hrapovd

    25.05.2016 at 12:24

    Вот и помогай после этого людям…, и да если люди не хотят изучать ИБ сами — им нужно помогать!

  3. unsafebee

    22.09.2016 at 17:32

    Спасибо за ценную статью!

  4. KLM7747

    22.04.2017 at 14:40

  5. argyn

    28.03.2018 at 17:12

    Уже не работает.

Оставить мнение

Check Also

Удаленное удаление. Как захватить контроль над WordPress, заставив его стереть файл

В WordPress, самой популярной в мире системе публикации, была обнаружена серьезная уязвимо…