十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
帝国EmpireCMS7.5最新后台漏洞审计
为企业提供成都网站设计、网站制作、网站优化、全网营销推广、竞价托管、品牌运营等营销获客服务。成都创新互联公司拥有网络营销运营团队,以丰富的互联网营销经验助力企业精准获客,真正落地解决中小企业营销获客难题,做到“让获客更简单”。自创立至今,成功用技术实力解决了企业“网站建设、网络品牌塑造、网络营销”三大难题,同时降低了营销成本,提高了有效客户转化率,获得了众多企业客户的高度认可!
1概述
最近在做审计和WAF规则的编写,在CNVD和CNNVD等漏洞平台寻找各类CMS漏洞研究编写规则时顺便抽空对国内一些小的CMS进行了审计,另外也由于代码审计接触时间不是太常,最近一段时间也跟着公司审计项目再次重新的学习代码审计知识,对于入行已久的各位审计大佬来说,自己算是新手了。对于审计也正在不断的学习和积累中。于是抽空在CNVD上选取了一个国内小型CMS进行审计,此次审计的CMS为EmpireCMS_V7.5版本。从官方下载EmpireCMS_V7.5后进行审计,审计过程中主要发现有三处漏洞(应该还有其他漏洞暂未审计):配置文件写入、后台代码执行及后台getshell,造成这几处漏洞的原因几乎是由于对输入输出参数未作过滤和验证所导致。
2前言
帝国网站管理英文译为”EmpireCMS”,它是基于B/S结构,安全、稳定、强大、灵活的网站管理系统.帝国CMS 7.5采用了系统模型功能:用户通过此功能可直接在后台扩展与实现各种系统,如产品、房产、供求…等等系统,因此特性,帝国CMS系统又被誉为“万能建站工具”;大容量数据结构设计;高安全严谨设计;采用了模板分离功能:把内容与界面完全分离,灵活的标签+用户自定义标签,使之能实现各式各样的网站页面与风格;栏目无限级分类;前台全部静态:可承受强大的访问量;强大的信息采集功能;超强广告管理功能……
3代码审计部分
拿到该CMS后先把握大局按照往常一样先熟悉该CMS网站基本结构、入口文件、配置文件及过滤,常见的审计方法一般是:通读全文发(针对一些小型CMS)、敏感函数回溯法以及定向功能分析法,自己平常做审计过程中这几个方法用的也比较多。在把握其大局熟悉结构后,再通过本地安装去了解该CMS的一些逻辑业务功能并结合黑盒进行审计,有时候黑盒测试会做到事半功倍。
常见的漏洞个人总结有:
1)程序初始化安装
2)站点信息泄漏
3)文件上传
4)文件管理
5)登陆认证
6)数据库备份
7)找回密码
8)验证码
若各位大佬在审计过程中还有发现其他漏洞可补充交流。
这个其实是和帝国cms无关的,因为tag和关键词是网站的两个重要组成部分,看个人运用了。如果你的网站不需要tag,完全可以把关键词和tag当做一样的。
而对于优化来说,它们有着不同的作用。关键词往往是写在网站head的keyword部分,给搜索引擎看的。
而tag往往是为了作为一个桥梁,将一些相关的文章连接起来。比如拿7n7z资源网来说,发布一些帝国cms教程,帝国cms模板,我可以设置教程的tag部分包含帝国cms教程,模板部分包含帝国cms模板,这样就可以区分了。
再比如帝国cms教程部分,某系列文章是帝国的基础教程,有些是开发教程,tags部分加上不同词汇予以分类,这样我就可以通过帝国cms开发教程这个tags调用出来所有包含这个tag的文章,提高用户体验,同时也更利于优化。
不知道说了那么多你有没有明白。
如果还不明白,可以百度7n7z,也可以通过这个站联系到我
1、登录后台,单击【栏目】菜单——【TAGS管理】——【设置TAGS参数】子菜单,进入设置TAGS参数界面;
2、进入设置TAGS参数界面, 前台开启TAGS:设置前台/e/tags/页面是否开启使用。
默认使用的模板:选择tags的列表模板,这里建议选择和文章一样的列表模板;
每页显示信息:设置不指定line情况下默认的每页显示信息数。
修改步骤:
1、以下代码加入到admin/ecmsinfo.php,在任意2个elseif中间插入就行
elseif($enews=="AddTags_all")//列表批量添加Tags
{
$classid=$_POST['classid'];
$id=$_POST['id'];
$tags=$_POST['add_listtags'];
$newstime=time();
eInsertTags2($tags,$classid,$id,$newstime);
}
2、将以下代码加入到class/uesrfun.php
//加入TAG表
function eInsertTags2($tags,$classid,$id,$newstime){
global $empire,$dbtbpre,$class_r;
if(!trim($tags))
{
printerror("TAGS信息不能为空", "", 1, 0, 1);
return '';
}
$count = count($id); //统计ID数量
$tags = RepPostVar($tags);
$tag = explode(",", $tags);
if (emptyempty($count))
{
printerror("未选择信息ID", "", 1, 0, 1);
}
if (count($tag)1)
{
printerror("只能添加一个TAGS词", "", 1, 0, 1);
}
$classid=(int)$classid;
$id[$i] = (int)$id[$i];
$mid=(int)$class_r[$classid][modid];
for($i=0;$i$count;$i++)
{
$tbname=$class_r[$classid][tbname];//获取表名
$r=$empire-fetch1("select tagid from {$dbtbpre}enewstags where tagname='$tags' limit 1");
$t = $empire-fetch1("select infotags from {$dbtbpre}ecms_".$tbname." where id='$id[$i]'");
$taga=$t['infotags'].",".$tags; //组合TAGS
$tagb[$i] = explode(",",$taga); //设置数组
$tagc=array_values(array_unique($tagb[$i])); //数组排重
for($t=0;$tcount($tagc);$t++)
{//二级子循环TAGS数组输出
$newtags[$i].= ",".$tagc[$t];
}
if($r[tagid])
{
$datar=$empire-fetch1("select tagid,classid,newstime from {$dbtbpre}enewstagsdata where tagid='$r[tagid]' and id='$id[$i]' and mid='$mid' limit 1");
if($datar[tagid])
{
if($datar[classid]!=$classid||$datar[newstime]!=$newstime)
{
$empire-query("update {$dbtbpre}enewstagsdata set classid='$classid',newstime='$newstime' where tagid='$r[tagid]' and id='$id[$i]' and mid='$mid' limit 1");
}
}
else
{
$empire-query("update {$dbtbpre}enewstags set num=num+1 where tagid='$r[tagid]'");
$empire-query("update {$dbtbpre}ecms_".$tbname." set infotags='".trim($newtags[$i],",")."' where id='$id[$i]'");
$empire-query("insert into {$dbtbpre}enewstagsdata(tagid,classid,id,newstime,mid) values('$r[tagid]','$classid','$id[$i]','$newstime','$mid');");
}
}
else
{
$empire-query("update {$dbtbpre}ecms_".$tbname." set infotags='".trim($newtags[$i],",")."' where id='$id[$i]'");
$empire-query("insert into {$dbtbpre}enewstags(tagname,num,isgood,cid) values('$tags',1,0,0);");
$tagid=$empire-lastid();
$empire-query("insert into {$dbtbpre}enewstagsdata(tagid,classid,id,newstime,mid) values('$tagid','$classid','$id[$i]','$newstime','$mid');");
}
}
printerror("批量添加TAGS成功", "", 1, 0, 1);
}
3、信息管理列表模板最后一列修改成以下代码,在e/data/html/list/文件夹内
td height="25" colspan="8"
table width="100%" border="0" cellpadding="0" cellspacing="0"
tr
td width="68%" height="25"
font color="#666666"备注:多选框蓝色为未审核信息;发布者红色为会员投稿;信息ID粗体为未生成,点击ID可刷新页面./font
/td
td width="32%" input type="text" name="add_listtags" id="add_listtags" size="50" value="" /
input type="submit" name="Submit100" value="添加TAGS" onClick="document.listform.enews.value='AddTags_all';document.listform.action='ecmsinfo.php';"
/td
/tr
/table
/td