受影响系统:
PHP PHP 4.2.3
PHP PHP 4.2.2
PHP PHP 4.2.1
PHP PHP 4.2.0
PHP PHP 4.1.2
PHP PHP 4.1.1
PHP PHP 4.1.0
PHP PHP 4.1
PHP PHP 4.0.7
PHP PHP 4.0.6
PHP PHP 4.0.5
PHP PHP 4.0.4
PHP PHP 4.0.3
- Linux系统
- Microsoft Windows NT 4.0
- Microsoft Windows 98
- Microsoft Windows 2000
- Unix系统
描述:
BUGTRAQ ID: 5669
PHP是一款免费开放源代码的WEB脚本语言包,可使用在Microsoft Windows、Linux和Unix操作系统下。
PHP的header函数对URL中包含的数据缺少正确过滤,远程攻击者可以利用这个漏洞进行脚本注入攻击。
PHP header()函数用于通过HEADER行来修改HTTP头信息,如:
但解析URL数据时没有正确检查用户提交的数据,攻击者可以在URL中提供脚本代码而时header()函数解析后把脚本代码插入到HTTP信息头中,这样就可以导致攻击者进行跨站脚本执行攻击或者在通过HTTP头如content-dispostion进行初始化下载等攻击。
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
通常一般常见于如下调用:
--- REDIR.PHP ---
--- REDIR.PHP ---
然后可以请求如下URL:
上面会产生如下HTTP头信息:
HTTP/1.1 302 Found
Server: Xitami
Date: Sat, 07 Sep 2002 21:50:17 GMT
Content-length: 96
Content-type: text/html
X-powered-by: PHP/4.2.3
{Location: http://www.yahoo.com/
这里插入了代码。
Content-type: text/html
建议:
临时解决方法:
如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:
* 在PHP脚本中严格过滤用户提交的数据。
厂商补丁:
PHP
---
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本: