BUGTRAQ: 15169 phpMyAdmin在grab_globals.php中提供了register_globals模拟层以确保同禁用了该功能的主机兼容。这个文件通常包含在最开端,这样在全局化请求变量时不会覆盖已在使用的脚本变量。 但phpMyAdmin还捆绑了一些不应直接调用的文件,以及一些在开端没有包含grab_globals.php但包含了common.lib.php的文件,可能导致如下所示的包含树: - db_details_db_info.php \___ libraries/common.lib.php \___ libraries/select_lang.lib.php \ \___ libraries/grab_globals.php \ \___ lang/a-language.inc.php \___ ... 可见如果没有包含在最开端的话,grab_globals.php会由select_lang.lib.php包含。这可能导致在common.lib.php已经加载完$cfg配置数组后才执行全局化请求变量。由于_FILES数组没有防范有cfg名称的密钥,攻击者就可能通过清空$cfg['ThemePath']变量的内容覆盖配置数组的内容,同样还可以为$cfg['ThemeManager']变量赋值。 成功利用这个漏洞的攻击者可以包含任意本地文件,导致远程执行任意代码。 <= 2.6.4-pl2 phpMyAdmin ---------- 目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载: * phpMyAdmin Upgrade phpMyAdmin-2.6.4-pl3.tar.gz <a href=http://prdownloads.sourceforge.net/phpmyadmin/phpMyAdmin-2.6.4-pl3.tar.gz target=_blank>http://prdownloads.sourceforge.net/phpmyadmin/phpMyAdmin-2.6.4-pl3.tar.gz</a>
BUGTRAQ: 15169 phpMyAdmin在grab_globals.php中提供了register_globals模拟层以确保同禁用了该功能的主机兼容。这个文件通常包含在最开端,这样在全局化请求变量时不会覆盖已在使用的脚本变量。 但phpMyAdmin还捆绑了一些不应直接调用的文件,以及一些在开端没有包含grab_globals.php但包含了common.lib.php的文件,可能导致如下所示的包含树: - db_details_db_info.php \___ libraries/common.lib.php \___ libraries/select_lang.lib.php \ \___ libraries/grab_globals.php \ \___ lang/a-language.inc.php \___ ... 可见如果没有包含在最开端的话,grab_globals.php会由select_lang.lib.php包含。这可能导致在common.lib.php已经加载完$cfg配置数组后才执行全局化请求变量。由于_FILES数组没有防范有cfg名称的密钥,攻击者就可能通过清空$cfg['ThemePath']变量的内容覆盖配置数组的内容,同样还可以为$cfg['ThemeManager']变量赋值。 成功利用这个漏洞的攻击者可以包含任意本地文件,导致远程执行任意代码。 <= 2.6.4-pl2 phpMyAdmin ---------- 目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载: * phpMyAdmin Upgrade phpMyAdmin-2.6.4-pl3.tar.gz <a href=http://prdownloads.sourceforge.net/phpmyadmin/phpMyAdmin-2.6.4-pl3.tar.gz target=_blank>http://prdownloads.sourceforge.net/phpmyadmin/phpMyAdmin-2.6.4-pl3.tar.gz</a>