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

Баг-фиксы найденные в DataLife Engine

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

Сообщение Брупт » 09 июн 2010, 17:23

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

  • Откройте 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!");
  • Откройте 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-Infa group ©
 
Сообщения: 21
Зарегистрирован: 31 окт 2009, 22:13

Вернуться в Баг-фиксы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей

cron