|
10.03.2007, 05:16
Продукт: PHP-Nuke
Версия: 8.0 и ниже
Описание:
При определенных настройках сервера (4.0.7<=PHP<=5.2.1 и выключенном параметре register_globals off), позволяет злоумышленнику подменять переменные в скриптах, при помощи POST запроса.
Устранение:
Открываем:
mainfile.php
Находим (89 строка):
PHP код:
if (!ini_get('register_globals')) { @import_request_variables("GPC", ""); }
И меняем на:
PHP код:
if (!ini_get('register_globals')) { extract($_COOKIE, EXTR_SKIP); extract($_POST, EXTR_SKIP); extract($_GET, EXTR_SKIP); }
Для версий php-nuke ниже 8.0 нужно так же добавить еще ниже:
PHP код:
// Die message for empty HTTP_REFERER $posttags = "<b>Внимание:</b> ваш браузер не отправляет шапку HTTP_REFERER на сайт.<br>"; $posttags .= "Это может быть вызвано вашим браузером, использования proxy server или Firewall.<br>"; $posttags .= "Пожалуйста, измените ваш браузер или выключите использование proxy<br>"; $posttags .= "или выключите 'Deny servers to trace web browsing' в вашем firewall<br>"; $posttags .= "и вы не должны иметь проблем с отсылкой POST запросов на сайт."; if ($_SERVER['REQUEST_METHOD'] == "POST") { if (isset($_SERVER['HTTP_REFERER'])) { if (!stripos_clone($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST'])) { die('Posting from another server not allowed!'); } } else { die($posttags); } }
На этом все!
|
|