Forum. MyNuke.ru
Forum. MyNuke.ruСообщения за сегодняПерсональные сообщения

Навигация  
Вернуться   Forum. MyNuke.ru > PHP-NUKE > Безопасность > Уязвимости Защиты
Ник
Пароль
Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Soniks вне форума      Старый Отсутствие проверки Id переменной #1  
Soniks
Администратор
Регистрация: 16.01.2005
Сообщения: 4,814


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Soniks Посетить домашнюю страницу Soniks Найти все сообщения от Soniks Добавить Soniks в список друзей  
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']); 

Последний раз редактировалось Soniks, 31.08.2007 в 21:21.
 
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть".


Anibus вне форума      Старый #2  
Аватара для Anibus
Anibus
Новенький
Регистрация: 30.06.2005
Сообщения: 21


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Anibus Найти все сообщения от Anibus Добавить Anibus в список друзей  
19.04.2007, 09:25

постоянно получаю следующие:

PHP код:
 PHP Notice:  Undefined index:  lid in /***/mainfile.php on line 70
PHP Notice
:  Undefined index:  id in /***/mainfile.php on line 71
PHP Notice
:  Undefined index:  cid in /***/mainfile.php on line 72
PHP Notice
:  Undefined index:  pid in /***/mainfile.php on line 73
PHP Notice
:  Undefined index:  sid in /***/mainfile.php on line 74 


версия 7.9 3.2 2.0

Soniks вне форума      Старый #3  
Soniks
Администратор
Регистрация: 16.01.2005
Сообщения: 4,814


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Soniks Посетить домашнюю страницу Soniks Найти все сообщения от Soniks Добавить Soniks в список друзей  
19.04.2007, 11:22

отключите вывод notice на экране, или код выше перепишите (я подправил)
 
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть".


Anibus вне форума      Старый #4  
Аватара для Anibus
Anibus
Новенький
Регистрация: 30.06.2005
Сообщения: 21


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Anibus Найти все сообщения от Anibus Добавить Anibus в список друзей  
19.04.2007, 16:30

Soniks большое спасибо.

Кстати в версии 7.6 строчек, после которых нужно ставить код нет.

Куда посоветуете там вставлять код?

Alexander-V-Sh вне форума      Старый #5  
Аватара для Alexander-V-Sh
Alexander-V-Sh
Бывалый
Регистрация: 19.04.2006
Сообщения: 352


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Alexander-V-Sh Посетить домашнюю страницу Alexander-V-Sh Найти все сообщения от Alexander-V-Sh Добавить Alexander-V-Sh в список друзей  
20.04.2007, 17:25

Я так понимаю, если в каждой функции каждого модуля стоит:

$sid = intval($sid);

то это нафик ненужно?

Soniks вне форума      Старый #6  
Soniks
Администратор
Регистрация: 16.01.2005
Сообщения: 4,814


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Soniks Посетить домашнюю страницу Soniks Найти все сообщения от Soniks Добавить Soniks в список друзей  
20.04.2007, 21:56

Anibus после писвоения глобальных переменных или до включения GZip
Alexander-V-Sh да
 
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть".


Val вне форума      Старый #7  
Val
Новенький
Регистрация: 09.08.2007
Сообщения: 24


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Val Найти все сообщения от Val Добавить Val в список друзей  
25.08.2007, 22:48

PHPNuke 7.9 rus

При добавлении к коду в Mainfile.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;
}
}

добавляю

$lid = isset($_REQUEST['lid'])?intval($_REQUEST['lid']):"";
$id = isset($_REQUEST['id'])?intval($_REQUEST['id']):"";
$cid = isset($_REQUEST['cid'])?intval($_REQUEST['cid']):"";
$pid = isset($_REQUEST['pid'])?intval($_REQUEST['pid']):"";
$sid = isset($_REQUEST['sid'])?intval($_REQUEST['sid']):"";

но при попытке прочитать какую-либо новость сайт не реагирует (страница грузиться бесконечно).
Грешу на строку

$pid = isset($_REQUEST['pid'])?intval($_REQUEST['pid']):"";

при ее комментировании все становится на круги своя.
Как исправить код?

:

Soniks вне форума      Старый #8  
Soniks
Администратор
Регистрация: 16.01.2005
Сообщения: 4,814


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Soniks Посетить домашнюю страницу Soniks Найти все сообщения от Soniks Добавить Soniks в список друзей  
28.08.2007, 11:41

Val а какой у вас модуль Новостей? производили ли вы там изменения? какая версия системы?
 
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть".


Val вне форума      Старый #9  
Val
Новенький
Регистрация: 09.08.2007
Сообщения: 24


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Val Найти все сообщения от Val Добавить Val в список друзей  
29.08.2007, 01:58

Блок новостей - стандартный комплекта PHP Nuke 7.9 rus.
Версия в конфиге стоит Version_Num 8.0
В модуле изменения еще не проводил, тестирую на локалхосте в поисках багов и вот один обнаружился.

Val вне форума      Старый #10  
Val
Новенький
Регистрация: 09.08.2007
Сообщения: 24


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Val Найти все сообщения от Val Добавить Val в список друзей  
29.08.2007, 18:08

у всех прошу прощения по поводу вопроса от 25.08.2007 20:48, все в порядке...

Хотя нет!!! Проблема осталась.Все таже строка...

Ответ


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отключение проверки cookies в dumper.php Alarm Безопасность 3 09.12.2005 18:04


Часовой пояс GMT +4, время: 18:30.


На Верх
Рейтинг@Mail.ru