Badcoffee[S.N.T]
此文章已发表在《黑客X档案》2008年第9期杂志上,转载请务必保留此信息!
Joomla是一套获得过多个奖项的内容管理系统(Content Management System,CMS),它采用PHP+MySQL数据库开发,可以运行在Linux、Windows、MacOSX、Solaris等多种平台上。除了具有新闻/文章管理、文档/图片管理、网站布局设置、模板/主题管理等一些基本功能外,还可以通过其提供的上千个插件进行功能扩展,包括了电子商务与购物车引擎、论坛与聊天软件、日历、博客软件、目录分类管理、广告管理系统、电子报、数据收集与报表工具、期刊订阅服务等等。同时它还支持多种语言,由于它的功能非常强大,语言支持强,因此在全世界范围内都有很广泛的应用。
在此之前Joomla一直没有出现过什么重大的问题,但是1.5.x版本却由于在密码找回处的过滤不严,导致我们可以通过提交特殊字符来修改管理员密码,从而登录后台上传拿shell。漏洞主要出在/components/com_user/目录下的controller.php和/components/com_user/models/目录下的reset.php文件上。我们可以通过提交“’”来让controller.php程序告诉reset.php我们提交的暗号是正确的,然后reset.php就会出现重设密码的界面。好了,下面就开始我们的入侵操作吧!
打开GOOGLE输入关键字“Powered by Joomla 1.5.”,就能够找到很多使用Joomla的网站,如图1。随便选择一个网站打开,打开后在其网址后添加上“/index.php?option=com_user&view=reset&layout=confirm”来到密码重设页面,如图2。



此时我们会看到这样一句话“已经发送了一封e-mail到您的信箱。该e-mail中含有验证暗号。请在下面的输入框中粘贴您所收到的暗号,以证明您就是该帐号的所有者。”,正常的情况下是,我们到邮箱中查看发送过去的暗号,再此输入暗号提交后才能出现修改密码的页面。由于我们不知道管理员的邮箱也就不可能知道这个暗号了,不过没关系,问题就出在这个地方,我们只要在这个暗号中输入“’”提交就可以了。此时我们就会来到重设理员密码的地方,如图3,重新设定一个新的管理员密码后点“提交”,会提示“您的密码已被重新设置”,如图4。不用理会它,我们在网址后面加administrator来到管理员登录页面,如图5,输入默认管理员帐号admin和你刚才设定的密码就可以登录进入了。



登录后在前台菜单中选择“全局设置”,如图6,来到系统设置页面,如图7,选择“系统”,在“合法的扩展名(文件类型)”处添加一个“,php”,如图8,添加完成后点击最上边的保存按钮即可。此时会自动返回到系统后台,选择媒体管理来到媒体管理页面,如图9,在浏览文件外选择一个PHP木马,然后点击“开始上传”即可,如图10。就这样,一个Webshell轻轻松松的就到手了,如图11。







由于Joomla支持多种语言,因此它在全世界范围内的应用都很广泛,我们可以在GOOGLE中设定语言进行搜索,这样就可以拿到使用特定语言的网站的SHELL了,比如日文、韩文等,还在等什么,快去拿SHELL吧!