安全研究
安全漏洞
PHP符号链接绕过open_basedir安全限制漏洞
发布日期:2006-10-03
更新日期:2006-10-09
受影响系统:PHP PHP 5
PHP PHP 4
描述:
BUGTRAQ ID:
20326
PHP是广泛使用的通用目的脚本语言,特别适合于Web开发,可嵌入到HTML中。
PHP在检查和处理文件访问路径时存在漏洞,本地攻击者可能利用此漏洞非授权访问文件。
PHP的open_basedir功能可以禁止脚本访问所配置的基础目录以外的文件。这个检查是在处理文件的PHP函数在实际的打开调用发生之前执行的。在检查和实际打开调用之间有一个时间差,而攻击者可以利用这个时间差更改所检查的路径,指向open_basedir限制所禁止访问的文件。
尽管很难利用这个时间差更改路径,但攻击者可以使用symlink()函数来发动攻击。PHP的symlink()函数要保证符号链接操作的来源和目标都是open_basedir和safe_mode限制所允许的,但攻击者可以使用mkdir()、unlink()及至少两个符号链接将链接指向任意文件。
<*来源:Stefan Esser (
s.esser@ematters.de)
链接:
http://marc.theaimsgroup.com/?l=bugtraq&m=115996035115020&w=2
http://secunia.com/advisories/22235/
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
mkdir("a/a/a/a/a/a");
symlink("a/a/a/a/a/a", "dummy");
symlink("dummy/../../../../../../", "xxx");
unlink("dummy");
symlink(".", "dummy");
建议:
临时解决方法:
* 在php.ini中禁用symlink()函数。
厂商补丁:
PHP
---
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.php.net浏览次数:3717
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载 绿盟科技给您安全的保障 |