|
Правила •
Регистрация •
Справка Сообщения за день • Поиск |
|
|
|
Опции темы | Опции просмотра |
[исход]
|
Если злоумышленник, используя SQL инъекцию, получит данные о хеше пароля администратора и данные о salt (случайный набор символов, записываемый пре регистрации), то он может на их основе сформировать хеш передаваемый в cookies, и, изменив куки, авторизоваться под учетной записью администратора.
В данной ситуации, лучше, чтобы хеш был уникальным, поэтому в простейшем случае можно сделать следующее. Открыть файл /class/sessions.class.php найти строку PHP код:
PHP код:
PHP код:
PHP код:
Можно сделать и универсальный вариант. PHP код:
PHP код:
или PHP код:
а PHP код:
PHP код:
или PHP код:
--- Хотя, надо сказать, что сам этот хеш хранится в базе данных и при наличии SQL инъекции ничего не мешает выдрать именно его, а не пароль и соль и потом с ними возиться. Просто лишние телодвижения для взломщика. Последний раз редактировалось LARK, 06-23-2010 в 14:24 Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском ------------------------------------------------------------------- Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки. |
||||
|
|
): ǝҺɐни dиw ɐн иd⊥оwɔ
|
Кстати, а были прецеденты перехвата печенья и взлом из за этого ?
Просто не припомню Напильник для RUNCMS Строим помаленьку Для гурманов Мебель для дома |
||||
|
|
[исход]
|
Цитата:
А так если есть дырка для SQL инъекции, то получить админские права несложно. Встроенный фильтр не все инъекции отсекает. К тому же POST запросы не фильтруются. Вот пример: http://www.securityfocus.com/bid/36825/info (правда для 2-ки) Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском ------------------------------------------------------------------- Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки. |
||||
|
|
Напильникъ - наше все
|
Что, даже вот такой фильтр не поможет?
Насколько я понял, запросы чаще читаются через $_GET, а не через $_SERVER, так что если какой-нить хакереныш будет с подстановкой POST играть - его игры просто пройдут мимо системы А переменные из массива $_POST вроде бы по большей части экранированы. Вот про кукисы ты мне напоминал, до них у меня руки так и не дошли пока... Ням... Нет ИМХО ничего лучше сравнительно слабо известного движка, который тем не менее хорошей защитой обладает - дурак такой не отломает из-за отсутствия известных механизмов взлома, а умный может и не полезть в наши дебри Последний раз редактировалось ZlydenGL, 06-23-2010 в 18:07 Не ошибается только тот, кто ничего не делает. Ковчег построил любитель. Профессионалы строили Титаник. |
||||
|
|
Зам старшего участника
|
Что это за печенье?
Портал - домашние животные Фоны для сайта Территория вебграфики |
||||
|
|
[исход]
|
этот поможет, речь идет о стандартном.
Цитата:
куки Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском ------------------------------------------------------------------- Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки. |
||||
|
|
Напильникъ - наше все
|
Юрий Пет, cookies = (печенья|печенки|печенюшки)
Не ошибается только тот, кто ничего не делает. Ковчег построил любитель. Профессионалы строили Титаник. |
||||
|
|
Старожил
|
В версиях RUNCMS 1.4 и ниже вроде такая конструкция:
$this->hash = md5($this->uid.':'.$this->pass.':'._HTTP_USER_AGENT); Замените "_HTTP_USER_AGENT" на что угодно и также ниже есть: if ($this->sessionID == md5($uid.':'.$pass.':'._HTTP_USER_AGENT)) { тоже замените "_HTTP_USER_AGENT" на что угодно, но чтобы это что угодно, было как выше вставили, т.е. одинаково Всё для Sony Ericsson |
||||
|
|
[исход]
|
Так как возможен вариант кражи хеша уже из таблицы префикс_session, с последующей его подстановкой в куки, то нужно сделать дополнительную защиту (пример для RUNCMS 2.Х):
в /class/sessions.class.php строку PHP код:
PHP код:
PHP код:
PHP код:
теперь если злоумышленник украдет хеш из таблицы session с помощью SQL инъекции, подставить его в куки он не сможет. Последний раз редактировалось LARK, 10-01-2010 в 14:27 Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском ------------------------------------------------------------------- Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки. |
||||
|
|
Напильникъ - наше все
|
Для полного удовлетворения еще бы этот параметр вместе с
в админку вывести, чтобы можно было динамично их поменять, не используя ftp. Просто "на всякий пожарный и при случае что". Хотя мое ИМХО остается прежним - лучше бросить все силы на перекрытие SQL инъекций даже в ущерб штатной юзабилити (то бишь с ручной правкой этой самой юзабилити при необходимости) Не ошибается только тот, кто ничего не делает. Ковчег построил любитель. Профессионалы строили Титаник. |
||||
|
|
|
Опции темы | |
Опции просмотра | |
|
|
Powered by: vBulletin Version 3.0 Copyright ©2000-2024, Jelsoft Enterprises Ltd. |
Все разделы прочитаны - Руководство форума - Архив - Вверх |