PHP header函数去除空格功能溢出漏洞

 

  PHP是广泛使用的通用目的脚本语言,特别适合于Web开发,可嵌入到HTML中。PHP的header()实现上存在潜在的缓冲区溢出漏洞,在特定平台上本地攻击者可能利用此漏洞提升自己权限。如果调用了PHP的header()函数的话,该函数首先会对其参数执行去除空格操作,如下所示...  

 
  受影响系统: 

  PHP PHP 5.2.0 

  描述: 

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

  PHP的header()实现上存在潜在的缓冲区溢出漏洞,在特定平台上本地攻击者可能利用此漏洞提升自己权限。 

  如果调用了PHP的header()函数的话,该函数首先会对其参数执行去除空格操作,如下所示: 

  /* cut of trailing spaces, linefeeds and carriage-returns */ 

  while(isspace(header_line[header_line_len-1])) 

  header_line[--header_line_len]=’/0’; 
   
  在去除拖尾空格时这段代码从头向后移动并在末尾覆盖NULL字节,但由于回退并不是在字符串的开始处停止的,因此如果缓冲区开始之前的字节中包含有属于空白字符集的ASCII字符的话,上述操作就会在所分配的缓冲区之前写入空字节。 

  PHP新的内存管理器将之前内存块的大小储存在缓冲区之前,因此在little endian系统中缓冲区之前的字节不太可能出现空格空白字符;但在big endian系统中(如PPC)远程攻击者可能创建在缓冲区之前包含有空白字符的堆结构,这样去除空格操作就会用空字节覆盖该结构,破坏控制信息,导致执行任意指令。 

  <*来源:Stefan Esser (s.esser@ematters.de) 

   链接:http://www.php-security.org/MOPB/MOPB-25-2007.html 

  *> 

  建议: 

  厂商补丁: 

  PHP 

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

  http://www.php.net 【转

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值