MongoDB,IT界主流非关系型数据库(NoSQL)平台之一,是基于表的关系型数据库的流行替代物。日前,用于管理MongoDB的一款图形用户界面(GUI)工具phpMoAdmin被暴具有非常严重的安全漏洞,一旦被利用,此漏洞将允许攻击者在服务器上执行命令。
phpMoAdmin为PHP语言写就,与MySQL的数据库管理工具phpMyAdmin类似,可使网站开发者和管理员能够利用GUI进行多种数据库操作。然而,phpMyAdmin有一个强大的开发社区为依托(鉴于其跟MySQL的关系),phpMoAdmin却在已经两年多没更新了。
最近,研究人员发现phpMoAdmin代码里藏有一个严重漏洞。如上文所言,如果这个漏洞被利用,攻击者将可以在服务器上执行命令。此漏洞在本月早些时候被公开,一些管理员已经开始报告遭到漏洞利用攻击。
phpMoAdmin的开发团队是否注意到代码漏洞我们尚不清楚。但,在Metasploit框架中相关模块发布前一周,罪犯就已经在售卖这一漏洞了。
漏洞的核心在于脚本在GET请求上使用了eval()函数。
eval(‘$find = ‘ . $_GET[‘find’] . ‘;’);
此时,可藉由改变$action变量触发漏洞。
http://localhost/phpmoadmin/moadmin.php?action=listRows&collection=0&find=array();system(%27whoami%27);exit;
网络上的一个主机托管中心操控的僵尸网络瞄准了此漏洞,试图通过这个漏洞传播由Perl脚本语言写成的IRCbot病毒。这段病毒脚本,还有传播方式,都与去年CSO网站报道过的Shellshock漏洞事件类似。
使用phpMoAdmin的用户最好更换另一种GUI工具。目前有很多这种工具,比如RockMongo、MongoVUE、Mongo-Express或者UMongo。如果不想换,那就只剩限制对phpMoAdmin的访问一途了。
phpMoAdmin项目目前处于停滞状态,有可能都已经被放弃了,更加凸显与开源代码相关的安全风险。如果真的没人对它进行维护,漏洞将永远处于未修补状态。
上个月,一个德国研究团队发现了大约4万个公开的MongoDB之后,MongoDB团队发布了一片博文,列出了一些基本的安全措施。鉴于当前事态发展情况,建议仔细阅读这篇文章,以及MongoDB的安全手册。