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

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


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

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

phpBB 2.0.13 - user level exploit

Подвергши версии: все версии включая phpBB 2.0.13

Файл: sessions.php

Описание: Найден баг в авторизации пользователя на форуме (автологин).
Если авторизация пройдет неудачно, то произойдет присвоение переменной $userdata ['user_id'] как АНОНИМНОМУ пользователю, но $userdata ['user_level'] остается по прежнему пользовательским. Теперь phpBB будет проверять userlevel в различных местах кода и игнорировать user_id.
Так, если Вы поизменяете "_data" cookie, чтобы послать user_id admin, Вы сможете видеть информацию, видимая администратору. Например как, скрытые пользователи в, "кто - в онлайн" или адреса электронной почты пользователей, даже если пользователь запретил это, в профиле. Возможно Вы сможете даже использовать некоторые функции admin, я не проверял это подробно. Манипуляция cookies будет только воздействовать на первую страницу, поскольку session.php тогда перепишет user_id, если Вы, конечно, не запретите браузеру изменять куки.

Найденый баг в:
PHP код:
 if ( $user_id != ANONYMOUS )
{
$auto_login_key $userdata['user_password'];
if ( 
$auto_create )
{
if ( isset(
$sessiondata['autologinid']) && $userdata['user_active'] )
{
    
// We have to login automagically
    
if( $sessiondata['autologinid'] === $auto_login_key )
    {
     
// autologinid matches password
     
$login 1;
     
$enable_autologin 1;
    }
    else
    {
     
// No match; don't login, set as anonymous user
     
$login 0;
     
$enable_autologin 0;
     
$user_id $userdata['user_id'] = ANONYMOUS;
    }
}
else
{
    
// Autologin is not set. Don't login, set as anonymous user
    
$login 0;
    
$enable_autologin 0;
    
$user_id $userdata['user_id'] = ANONYMOUS;
}
}
else
{
$login 1;
}
}
else
{
$login 0;
$enable_autologin 0;



Исправляем баг: В выше указаном коде, в файле includes/sessions.php
добавьте:
PHP код:
 $userdata['user_level'] = USER

после каждого:
PHP код:
 $user_id $userdata['user_id'] = ANONYMOUS

Выглядить будет так:
PHP код:
 $user_id $userdata['user_id'] = ANONYMOUS;
$userdata['user_level'] = USER


Очередной баг исправлен

 


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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PHPBB Viewtopic.PHP Cross-Site Scripting (CSS) Уязвимость Soniks Уязвимости Защиты 0 28.06.2005 21:16
Обновляем форум phpBB 2.0.11 до 2.0.12 Soniks Безопасность 38 23.06.2005 23:18
Обновляем форум phpBB 2.0.13 до 2.0.14 Soniks Безопасность 2 16.04.2005 18:27
Уязвимость в Topic Calendar 1.0.1 для phpBB Soniks Уязвимости Защиты 0 24.03.2005 23:50
Обновляем форум phpBB 2.0.12 до 2.0.13 Soniks Безопасность 0 28.02.2005 12:44


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


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