|
18.04.2007, 14:40
Продукт: PHP-Nuke
Версия: 8.0 и ниже
Описание:
В скриптах системы отсутствует проверка входных данных, поэтому при удачных стечениях обстоятельств (magic_quotes - OFF, register_global - ON, отсутствие фильтров SQL-инъекций), злоумышленник может выполнить SQL-Инъекцию.
Устранение:
Для более эффекта добавим проверку в главном файле.
Открываем: mainfile.php
Находим (43 строка):
PHP код:
// override old superglobals if php is higher then 4.1.0 if($phpver >= '4.1.0') { $HTTP_GET_VARS = $_GET; $HTTP_POST_VARS = $_POST; $HTTP_SERVER_VARS = $_SERVER; $HTTP_POST_FILES = $_FILES; $HTTP_ENV_VARS = $_ENV; $PHP_SELF = $_SERVER['PHP_SELF']; if(isset($_SESSION)) { $HTTP_SESSION_VARS = $_SESSION; } if(isset($_COOKIE)) { $HTTP_COOKIE_VARS= $_COOKIE; } }
Ниже добавляем проверку:
PHP код:
if(isset($_REQUEST['id'])) $id = intval($_REQUEST['id']); if(isset($_REQUEST['lid'])) $lid = intval($_REQUEST['lid']); if(isset($_REQUEST['cid'])) $cid = intval($_REQUEST['cid']); if(isset($_REQUEST['pid'])) $pid = intval($_REQUEST['pid']); if(isset($_REQUEST['sid'])) $sid = intval($_REQUEST['sid']); if(isset($_REQUEST['tid'])) $tid = intval($_REQUEST['tid']);
|
|