8Dle
Авторизация

Недостаточная фильтрация входящих данных 3

Недостаточная фильтрация входящих данных 3

Очередная DLE уязвимость


Суть DLE уязвимости: Если у вас на сайте есть пользователи которым разрешена загрузка фалов(не картинок) на сайт, то этот юзер имеет возможность указать путь загрузки не типичный для сохранения загружаемых файлом. Ещё хуже если юзер имеет права админа. В этом случае он может заменить своим файлом существующий и запустить его. Тем самым сделать он сможет что угодно с вашим сайтом. Тут уж дело за его фантазией и навыками.
DLE уязвимость работает на версиях: любые DLE

Уровень риска: Средняя (Высокая при наличии админов на сайте кроме вас самих хотя и Вас могут взломать и сделать каку)

К счастью, взломать dle мы не дадим, а поэтому DEN 007 делится лекарством от этой уязвимости dle.
Начнем.
1. Открываем файл engine/inc/files.php и находим:
$serverfile = trim( htmlspecialchars( strip_tags( $_POST['serverfile'] ) ) );

меняем на:
if ($member_id['user_group'] == 1) $serverfile = trim( htmlspecialchars( strip_tags( $_POST['serverfile'] ) ) ); else $serverfile = '';

        if ( $serverfile != '' ) {

            $serverfile = str_replace( "\\", "/", $serverfile );
            $serverfile = str_replace( "..", "", $serverfile );
            $serverfile = str_replace( "/", "", $serverfile );
            $serverfile_arr = explode( ".", $serverfile );
            $type = totranslit( end( $serverfile_arr ) );
            $curr_key = key( $serverfile_arr );
            unset( $serverfile_arr[$curr_key] );

            if ( in_array( strtolower( $type ), $allowed_files ) )
                $serverfile = totranslit( implode( ".", $serverfile_arr ) ) . "." . $type;
            else $serverfile = '';

        }

        if( $serverfile == ".htaccess") die("Hacking attempt!");

2. Открываем файл engine/classes/thumb.class.php и находим:
$this->img['des'] = imagecreatetruecolor( $this->img['lebar_thumb'], $this->img['tinggi_thumb'] );

и добавляем выше этой строки:
if ($this->img['lebar_thumb'] < 1 ) $this->img['lebar_thumb'] = 1;
        if ($this->img['tinggi_thumb'] < 1 ) $this->img['tinggi_thumb'] = 1;


Ура! Теперь плохие перцы не смогут взломать dle используя эту уязвимость :)

Жмите на Кнопу ниже, или подписывайтесь!


Читайте также
  1. axe2009
    31 июля 2010 22:17
    У меня нет такого файла thumb.class.php стоит версия 7.5
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Dle это движок который изначально проектировался для создания новостных сайтов, но по мере своего развития движка значительно расширил свою функциональность и стал универсальным средством разработки и сопровождения сайтов и блогов различной направленности и тематики. По сравнению с другими бесплатными (и некоторыми платными) CMS системами движок dle обладает довольно обширными возможности.

Авторизация