Перейти к контенту
  • 0

Кража сессии администратора


Arhar

Вопрос

Как известно, можно подделать ip адрес с помощью скрипта, делающего запрос на форум

И если мы узнаем текущий ip администратора и текущую сессию в админцентре, мы сможем сделать запрос, который обойдет имеющуюся защиту и, например, сменит пароль администратору

После чего можно делать что угодно

Добавим хотя-бы немного дополнительных проблем, а именно проверку еще и куки

Если у злоумышленника есть возможность украсть и куки, то тогда ничто не спасет)

 

ALTER TABLE __PREFIX__admin_sessions ADD session_cookie varchar(255) DEFAULT NULL;

./sources/action_admin/login.php ~250line with smartcards

                $sess_id = md5( uniqid( microtime() ) );
               $sess_cookie = md5( uniqid( $sess_id, true ) );

               $this->ipsclass->my_setcookie("admin_sid",$sess_cookie);

               $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(),
                                                                                  'session_cookie'		    => $sess_cookie
                                                                        )	    );

./sources/lib/admin_functions.php ~182line

				$csid = $this->ipsclass->my_getcookie("admin_sid");
			if(!$csid or $csid!=$row['session_cookie'])
			{
				$this->ipsclass->DB->query("DELETE FROM ibf_admin_sessions WHERE session_id='".$this->ipsclass->input['adsess']."'");
				$this->ipsclass->admin_session['_session_validated'] = 0;
				$this->ipsclass->admin_session['_session_message']   = "Невозможно запросить сессию";
				return FALSE;
			}
			//----------------------------------
			// Key is good, check the member details
			//----------------------------------

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

Пока что нет ответов на этот вопрос

Присоединиться к обсуждению

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

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.