Как известно, можно подделать ip адрес с помощью скрипта, делающего запрос на форум
И если мы узнаем текущий ip администратора и текущую сессию в админцентре, мы сможем сделать запрос, который обойдет имеющуюся защиту и, например, сменит пароль администратору
После чего можно делать что угодно
Добавим хотя-бы немного дополнительных проблем, а именно проверку еще и куки
Если у злоумышленника есть возможность украсть и куки, то тогда ничто не спасет)
ALTER TABLE __PREFIX__admin_sessions ADD session_cookie varchar(255) DEFAULT NULL;
./sources/action_admin/login.php ~250line with smartcards
Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.
Вопрос
Arhar
Как известно, можно подделать ip адрес с помощью скрипта, делающего запрос на форум
И если мы узнаем текущий ip администратора и текущую сессию в админцентре, мы сможем сделать запрос, который обойдет имеющуюся защиту и, например, сменит пароль администратору
После чего можно делать что угодно
Добавим хотя-бы немного дополнительных проблем, а именно проверку еще и куки
Если у злоумышленника есть возможность украсть и куки, то тогда ничто не спасет)
./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 //----------------------------------Ссылка на комментарий
Поделиться на других сайтах
0 ответов на этот вопрос
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.