Сайт своими руками - это хорошо, а портал - это солидно

05 Сен, 2010 г. - 02:41
Материалы:  Документация :: ЧаВО (FAQ) :: Модули для PN :: Блоки для PN :: Файлы для загрузки :: Ссылки по PostNuke 
Поддержка:  Поиск по сайту :: Форумы :: Правила работы в форуме :: Чат 
 
Главное меню
· Вверх
· Ваш логин

Документация и материалы
· Документация
· ЧаВО (FAQ)
· Модули для PN
· Ссылки по PostNuke

Поддержка
· Поиск по сайту
· Форумы
· Правила работы в форуме

А также:
· Русские сайты на PN
· Участники
· Все новости
· Рекомендуйте нас
· Статистика
· Sections

Lost Login
Логин:
Пароль:

Запомнить меня

Who's Online
Сейчас, 8 гостей и 0 посетителей онлайн..

Вы анонимный пользователь.


Нужна поддержка
Сайтам Ты не один! Лечение онкологических заболеваний (рака) в клиниках Германии и Бесплатная помощь по организации лечения в Германии нужна поддержка.

SQL-инъекция и межсайтовый скриптинг в модуле Download (PN0750)
Послано: Slad 31 Авг, 2005 г. - 10:18
PostNuke

Автор уязвимости: Maksymilian Arciemowicz

оригинальные статьи:

  1. http://secunia.com/advisories/16534/
  2. http://www.security.nnov.ru/Jdocument556.html
  3. http://www.securitylab.ru/vulnerability/239808.php

Данная SQL-инъекция и межсайтовый скриптинг актуальна для версии 0.750


по тексту:
- --- 1. SQL-инъекция в модуле Download ---

Данная SQL-инъекция не критическая, потому что эксплойт работает только под правами администратора (mysql)
Проблема в файле "modules/Downloads/dl-viewdownload.php".

- --------
if ($show!="") {
  $perpage = $show;
} else {
  $show=$perpage;
}
...
$result =& $dbconn->SelectLimit($sql,$perpage,$min);
- --------
varible $perpage.

$perpage при запросе не проверяется. Если подставить в параметр $show (количество элементов на странице), например, "0" или "-3" или "asdf" или что-нибудь вредоносное, значение не будет проверено

Решение:

Если вы не собираетесь переходить на версию 0.760, то решение следующее:

  • в файле dl-viewdownload.php, в функциях viewdownload(), viewsdownload() перепишите код:

if ($show!="") {
  $perpage = $show;
} else {
  $show=$perpage;
}

на следующий код:

if ( (isset($show)) && is_numeric($show) && ($show >= 0) ) {
  $perpage = $show;
} else {
  $show = $perpage;
}

В случае неверного параметра будет выдано значение по умолчанию, взятое из конфигурации  (Спасибо TAndrew)

  • или следующее решение - в файле dl-viewdownload.php, в функциях viewdownload(), viewsdownload() перепишите код:

$result =& $dbconn->SelectLimit($sql,$perpage,$min);
поменять на
$result =& $dbconn->SelectLimit($sql,(int)$perpage,(int)$min);

В случае неверного параметра будет выдана пустая страница

 
Login
 



 


Все еще не зарегистрировались? Регистрация сделает комфортными Ваши посещения этого сайта, предоставит доступ ко многим дополнительным сервисам и настройкам, которые для анонимного пользователя недоступны.

Связные ссылки
· Ещё о PostNuke
· Новости Slad




Справочник по электрическим сетям   На первую страницу :: Модули: 1, 2, 3 
All logos and trademarks in this site are property of their respective owner.
The comments are property of their posters, all the rest © 2000-2009 by Russian Postnuke Team.
Russian PostNuke       Рейтинг@Mail.ru    Rambler's Top100