Вход

View Full Version : Referer SQL-инъекция в PHP-Nuke


Soniks
21.02.2007, 20:07
Продукт: PHP-Nuke
Версия: 8.0 и ниже
Описание:
Уязвимость позволяет удаленному пользователю выполнить произвольные SQL команды в базе данных приложения.
Уязвимость существует из-за недостаточной обработки входных данных в поле "referer" в HTTP заголовке. Удаленный пользователь может с помощью специально сформированного запроса выполнить произвольные SQL команды в базе данных приложения.
Информация http://www.securitylab.ru (http://www.securitylab.ru/)
Устранение:
Добавляем проверку данной переменной.
Открываем:
mainfile.php
Находим:
// override old superglobals if php is higher then 4.1.0
Выше добавляем:
$_SERVER['HTTP_REFERER'] = isset($_SERVER['HTTP_REFERER'])?addslashes(stripslashes($_SERVER['HTTP_REFERER'])):'';

Советуем проделать данную операцию на всех указанных версиях PHP-NUKE (на данный момент), т.к. дыра есть и очень легко ей воспользоваться, если сервер хостинга не настроен должным образом (что мало вероятно)

Anibus
22.02.2007, 16:39
здравствуйте,

у меня нет этой строчки. возможно из-за того что я удалили статистику рефералов. что делать, куда код вставлять?

или может, раз рефералы не учитываются, то и опасности нет никакой?

Soniks
22.02.2007, 19:08
тогда добавьте это выше строчке
$mainfile = 1;

Anibus
18.03.2007, 11:37
уважаемый Sonics,

после после внесения указанных в первом посте изменений в систему PHPNuke 7.9 3.2 постояннно получаю следующую ошибку:

PHP Notice: Undefined index: HTTP_REFERER in /..../mainfile.php on line 51

там у меня как раз та строчка, которую рекомендовали вставить.


отмечу вставлял нужный код как раз до

// override old superglobals if php is higher then 4.1.0

т.е. с моим предыдущим вопросом это никак не связано.


Подскажите, как это можно вылечить?

Soniks
18.03.2007, 15:58
Anibus подправил первый пост

Anibus
18.03.2007, 18:05
спасибо!