安全研究

安全漏洞
PHP Transparent会话ID跨站脚本执行漏洞

发布日期:2003-05-30
更新日期:2003-06-05

受影响系统:
PHP PHP 4.3.1
PHP PHP 4.3.0
PHP PHP 4.2.3
PHP PHP 4.2.2
PHP PHP 4.2.1
PHP PHP 4.2.0
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
PHP PHP 4.0.2
PHP PHP 4.0.1
PHP PHP 4.0
PHP PHP 4.1.2
    - Apple MacOS 10.1.2
    - Apple MacOS 10.1.1
    - Apple MacOS 10.1
    - Apple MacOS 10.0.4
    - Apple MacOS 10.0.3
    - Apple MacOS 10.0.2
    - Apple MacOS 10.0.1
    - Apple MacOS 10.0
    - Debian Linux 3.0
    - FreeBSD 4.6
    - FreeBSD 4.5
    - FreeBSD 4.4
    - FreeBSD 4.3
    - RedHat Linux 8.0
    - Slackware Linux 8.1
不受影响系统:
PHP PHP 4.3.2
描述:
BUGTRAQ  ID: 7761
CVE(CAN) ID: CVE-2003-0442

PHP是一款广泛使用的脚本语言解析系统,可以方便的进行WEB开发,能嵌入到HTML中使用。

PHP由于不充分过滤PHPSESSID URI参数,远程攻击者可以利用这个漏洞进行跨站脚本执行攻击,可能获取其他用户的敏感信息。

PHP可以自动把SESSION ID嵌入到WEB的URL中,此功能称为:"transparent SID support",由于PHP对此ID缺少充分的过滤。如一个有漏洞的WEB站点,下面的URL会导致产生的WEB页包含脚本代码:

http://www.somesite.example/index.php?PHPSESSID="><script>...</script>

此脚本由PHP生成时会如下所示:

<a href="...?PHPSESSID="><script>...</script>

攻击者可以诱使用户访问构建的恶意URL,使的恶意脚本代码在用户浏览器上执行,可窃取目标用户SESSION ID,重定向登录页面等。

<*来源:Sverre H. Huseby (shh@thathost.com
  
  链接:http://shh.thathost.com/secadv/2003-05-11-php.txt
*>

建议:
临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

* 如果不需要Transparent SID支持,可修改php.ini,设置如下选项取消:

session.use_trans_sid=0

厂商补丁:

PHP
---
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

PHP Upgrade PHP 4.3.2
http://www.php.net/downloads.php

浏览次数:4292
严重程度:1(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障