Недостаточная фильтрация входящих данных
Проблема: Пользователю которому разрешена загрузка файлов на сервер (не картинок), может выйти за пределы разрешенной папки загрузки, а если он имеет администраторский аккаунт на сайте, то и повредить данные скрипта.
Ошибка в версии: 7.x - 8.5
Степень опасности: Средняя (Высокая при наличии администраторского аккаунта на сайте)
Для исправления откройте файл engine/inc/
files.php и найдите:
	PHP код:
 
	
		
			
$serverfile = trim( htmlspecialchars( strip_tags( $_POST['serverfile'] ) ) ); 
		
	
 замените на:
	PHP код:
 
	
		
			
 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 и найдите:
	PHP код:
 
	
		
			
$this->img['des'] = imagecreatetruecolor( $this->img['lebar_thumb'], $this->img['tinggi_thumb'] ); 
		
	
 и добавьте выше:
	PHP код:
 
	
		
			
        if ($this->img['lebar_thumb'] < 1 ) $this->img['lebar_thumb'] = 1;
        if ($this->img['tinggi_thumb'] < 1 ) $this->img['tinggi_thumb'] = 1; 
		
	
 взял тут