Dleshka.org
Авторизация

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

+6
DEN 007 8-06-2010 Баг-фиксы DLE 2 комментария
Проблема: Пользователю которому разрешена загрузка файлов на сервер (не картинок), может выйти за пределы разрешенной папки загрузки, а если он имеет администраторский аккаунт на сайте, то и повредить данные скрипта.

Ошибка в версии: Все версии

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

Для исправления откройте файл engine/inc/files.php и найдите:
<font color=#660000>$serverfile</font><font color=#8000FF> = </font>trim( htmlspecialchars( strip_tags( <font color=#660000>$_POST</font>['serverfile'] ) ) );


замените на:

<font color=#0000FF>if</font> (<font color=#660000>$member_id</font>['user_group']<font color=#8000FF> == </font>1) <font color=#660000>$serverfile</font><font color=#8000FF> = </font>trim( htmlspecialchars( strip_tags( <font color=#660000>$_POST</font>['serverfile'] ) ) ); <font color=#0000FF>else</font> <font color=#660000>$serverfile</font><font color=#8000FF> = </font>'';

        <font color=#0000FF>if</font> ( <font color=#660000>$serverfile</font> != '' ) {

            <font color=#660000>$serverfile</font><font color=#8000FF> = </font>str_replace( "\\", "/", <font color=#660000>$serverfile</font> );
            <font color=#660000>$serverfile</font><font color=#8000FF> = </font>str_replace( "..", "", <font color=#660000>$serverfile</font> );
            <font color=#660000>$serverfile</font><font color=#8000FF> = </font>str_replace( "/", "", <font color=#660000>$serverfile</font> );
            <font color=#660000>$serverfile_arr</font><font color=#8000FF> = </font>explode( ".", <font color=#660000>$serverfile</font> );
            <font color=#660000>$type</font><font color=#8000FF> = </font>totranslit( end( <font color=#660000>$serverfile_arr</font> ) );
            <font color=#660000>$curr_key</font><font color=#8000FF> = </font>key( <font color=#660000>$serverfile_arr</font> );
            unset( <font color=#660000>$serverfile_arr</font>[<font color=#660000>$curr_key</font>] );

            <font color=#0000FF>if</font> ( in_array( strtolower( <font color=#660000>$type</font> ), <font color=#660000>$allowed_files</font> ) ) 
                <font color=#660000>$serverfile</font><font color=#8000FF> = </font>totranslit( implode( ".", <font color=#660000>$serverfile_arr</font> ) ) . "." . <font color=#660000>$type</font>; 
            <font color=#0000FF>else</font> <font color=#660000>$serverfile</font><font color=#8000FF> = </font>'';

        }

        <font color=#0000FF>if</font>( <font color=#660000>$serverfile</font><font color=#8000FF> == </font>".htaccess") die("Hacking attempt!");


Откройте файл engine/classes/thumb.class.php и найдите:

<font color=#660000>$this</font>->img['des']<font color=#8000FF> = </font>imagecreatetruecolor( <font color=#660000>$this</font>->img['lebar_thumb'], <font color=#660000>$this</font>->img['tinggi_thumb'] );


и добавьте выше:
        <font color=#0000FF>if</font> (<font color=#660000>$this</font>->img['lebar_thumb'] < 1 ) <font color=#660000>$this</font>->img['lebar_thumb']<font color=#8000FF> = </font>1;
        <font color=#0000FF>if</font> (<font color=#660000>$this</font>->img['tinggi_thumb'] < 1 ) <font color=#660000>$this</font>->img['tinggi_thumb']<font color=#8000FF> = </font>1;


Так что вот так делать выводы тока вам!



А вот еще одна интересная инфишка

Ковырял тут дле от нечего делать на досуге, нашел еще одну критическую багу. Все, я заебался. Через несколько дней(после выходных займусь) тут будет vb, которвый писали нормальные кодеры, а не криворукие долбоебы, умеющие только качать права. В какой-то степени нам повезло - нас еще никто не слил. И не сольет, т.к. мы меняем движок :)

P.S. Те, кто юзают дле для серьезных проектов, задумайтесь: ВСЕ сайты, посвященные этой cms, были слиты и/или взломаны: скриптерс, дле.ин.юа, 6дле, савгруп, гс поменьше(типа 8дле или провеббера), осетрина и прочие школоклубы, etc. И эти взломы продолжатся, даю слово. Несколько слов о паблике баз и полных рипов сайтов: идея себя не оправдала. Мы получили популярность у разного рода имбецилов, которые отрывают меня от работы просьбами бесплатно, "как потсан взламай! как буито тибе жалко! да и дениг нет, патом атдам! ты мне не вериш???", сделать следующее: "слить охуенный сайтец", "наказать друга", "праучить ету шкалату, каторая на миня пездит на мегасофте!!11" и т.д. Я устал, я ухожу(с).

P.P.S. Форум, который тут появится, будет далек от поклонения дырявому движку. Основными тематиками будут администрирвоание, php, обсуждения партнерок.

Источник ru-ua.ws

Информация
Зарегистрируйтесь чтобы комментировать публикацию.
Saint
9 июня 2011 11:15
+ 0 -
Кто нибудь побывал?
Faeton
8 июля 2011 11:06
+ 0 -
Да уж… Жизнь – как вождение велосипеда. Чтобы сохранить равновесие, ты должен двигаться.
Авторизация