PHP4/5多个漏洞

发表于:2007-05-25来源:作者:点击数: 标签:漏洞php4多个
剑心[B.C.T] 翻译 http://www.bnso.net/ B.C.T小组注:因为文章的翻译比较困难,未免会出现一些的遗漏和错误,希望大家不要见怪,请大家见凉,如果有错误的请指出 信息来源:http://marc.theaimsgroup.com/?l=bugtraqm=110314318531298w=2 发布日期:2004-12-1
剑心[B.C.T]  翻译  http://www.bnso.net/
B.C.T小组注:因为文章的翻译比较困难,未免会出现一些的遗漏和错误,希望大家不要见怪,请大家见凉,如果有错误的请指出

 


信息来源:http://marc.theaimsgroup.com/?l=bugtraq&m=110314318531298&w=2
发布日期:2004-12-15
最后修改:2004/12/15
作者:Stefan Esser
漏洞程序:PHP4 低于 4.3.9
PHP5 低于 5.0.2
漏洞影响:在几个Php里发现的几个漏洞允许本地或者远程执行任意代码
危险程度:严重
厂商反映:厂商已经发布了修补漏洞的版本。
问题参考:http://www.hardened-php.net/advisories/012004.txt

概述:
Php是一个广泛使用的脚本解释语言,特别适用于网页开发并且可以嵌入HTML中。
在发展PHp安全特性过程中,发现了一些缓冲区溢出漏洞,信息泄露漏洞,路径截断导致饶过安全模式漏洞
漏洞细节:
[01 -pack() -整型变量溢出导致堆缓冲区溢出]
传递给pack()的参数因为不充分的验证而导致一个堆溢出,可以被利用来在Php脚本里执行任意的代码。这将使攻击者饶过安全模式的限制,以web服务器的权限执行任意的代码。因为这个函数是在系统中原来就有的,不像其他的脚本是以外泄露给攻击者信息的。
[02 -unpack() -整型变量溢出导致堆信息泄露]
传递给unpack()的参数因为验证不充分而导致一个堆信息泄露,可以被用来返回一些apache进程的重要数据。在这个基础上,一个有经验的本地攻击者就可以利用这个漏洞与上面的01一起饶过系统对堆的保护。与01相似,这个函数,这个函数在网络应用程序里并不经常提供数据给用户。
[03 -在多multithreaded PHP里绕过安全模式的safe_mode_exec_dir]
在Php里的安全模式打开时,他只允许执行在一些在safe_mode_exec_dir里指定的命令。不幸的是,当Php是运行在一个multithreaded unix(Apache2的一些安装选项)的服务器下时,它会在所有的可执行命令前加上一个"cd [当前目录];"。因为当前目录的名字是直接加在命令前面的,本地攻击者有可能通过王当前目录的名字下插入脚本命令从而绕过safe_mode_exec_dir。
[04 -通过路径截断饶过安全模式限制]
安全模式在传递路径值给realpath()的时候自动截取文件的路径为最大长度。通过与realpath()函数的失误想结合,这将允许精心构造一个文件路径,使本应该不能通过安全模式检查的文件通过安全模式的检查。
[05 - 在realpath()里的文件截断]
Php使用realpath()函数来获得文件的真实路径。不幸的是,一些realpath()自动截断超长的文件名(OpenBSD, and older NetBSD/FreeBSD),这将导致可以包含任意文件,从而引发漏洞,譬如在系统中使用include "modules/$userinput/config.inc.php";。
[06 unserialize()对恶意引用的错误处理]
unserializer变量可以被恶意的引用欺骗导致在哈希表增中加错误的值。当这些哈希表被破坏时从而efree()任意的内存地址,这将导致执行任意可执行的代码。(除非Hardened-PHP的内存保护处于打开状态。)
[07 - unserialize()对引用的错误处理导致释放数据]
当前的版本unserializer变量允许对哈希表中已经释放的变量再行设置。一个有经验的入侵者将可以利用这个精心创建一个字符串,当他被传递给unserialize()时将导致执行任意的内存地址的代码。对于AMD64系统,创建一个字符串可以直接饶过而执行包含在字符串自身的代码

理解可以这些字符串可以远程利用一些流行的Php应用程序很重要,因为可以通过cookie来利用unserialize().
存在漏洞的一些脚本例子:
- phpBB2
- Invision Board
- vBulletin
- Woltlab Burning Board 2.x
- Serendipity Weblog
- phpAds(New)
- ...
漏洞避免:Hardened-PHP将不再对外发布存在漏洞的版本。
我们的建议:我们强烈建议你尽快更新到最新的Php版本,因为已经有很多的Php应用程序暴露出很容易被远程的入侵者溢出unserialize()。我们建议你运行Hardened-PHP提供的补丁。

原文连接:http://marc.theaimsgroup.com/?l=bugtraq&m=110321976808504&w=2

 

原文转自:http://www.ltesting.net