某cms 用户中心存在时间盲注

  • A+
所属分类:安全文章

更多全球网络安全资讯尽在邑安全

无意间发现的注入,结果已经有师傅提交了有关的XSS的CVE,虽然利用的地方是一样的。
源码下载处:
http://www.zzcms.net/download/zzcms2019.zip

漏洞分析

漏洞位于/inc/function.phpmarkit函数中

function markit(){
$userip=$_SERVER["REMOTE_ADDR"];
//$userip=getip();
$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo $url;
query("insert into zzcms_bad (username,ip,dose,sendtime)values('".$_COOKIE["UserName"]."','$userip','$url','".date('Y-m-d H:i:s')."')") ;
}

从上面的代码能看出$url的值由$_SERVER['REQUEST_URI']拼接而成,也就是我们的访问的url。接着直接就在sql中进行了拼接,并没有进行相应的过滤。
而在/inc/stopsqlin.php中的2-5行,也能发现存在相应过滤

//主要针对在任何文件后加?%3Cscript%3E,即使文件中没有参数
if (strpos($_SERVER['REQUEST_URI'],'script')!==false || strpos($_SERVER['REQUEST_URI'],'%26%2399%26%')!==false|| strpos($_SERVER['REQUEST_URI'],'%2F%3Cobject')!==false){
die ("无效参数");//注意这里不能用js提示
}

但是这是针对于XSS的过滤,对我们并没有什么影响。
我们能在好几处地方找到对markit函数的调用

某cms 用户中心存在时间盲注

比如以/user/del.php为例

<?php
$pagename=isset($_POST["pagename"])?$_POST["pagename"]:'';
$tablename=isset($_POST["tablename"])?$_POST["tablename"]:'';
$id='';
if(!empty($_POST['id'])){
for($i=0; $i<count($_POST['id']);$i++){
checkid($_POST['id'][$i]);
$id=$id.($_POST['id'][$i].',');
}
$id=substr($id,0,strlen($id)-1);//去除最后面的","
}

if (!isset($id) || $id==''){
showmsg('操作失败!至少要选中一条信息。');
}

$tablenames='';
$rs = query("SHOW TABLES");
while($row = fetch_array($rs)) {
$tablenames=$tablenames.$row[0]."#";
}
$tablenames=substr($tablenames,0,strlen($tablenames)-1);

if (str_is_inarr($tablenames,$tablename)=='no'){
echo "tablename 参数有误";
exit();
}

if ($tablename=="zzcms_main"){
if (strpos($id,",")>0){
$sql="select id,img,flv,editor from zzcms_main where id in (".$id.")";
}else{
$sql="select id,img,flv,editor from zzcms_main where id ='$id'";
}
$rs=query($sql);
$row=num_rows($rs);
if ($row){
while ($row=fetch_array($rs)){
if ($row["editor"]<>$username){
markit();showmsg('非法操作!警告:你的操作已被记录!小心封你的用户及IP!');
}

能发现,只需更改$username,其对应的值是Cookie中的UserName的值,使得查询出来的$row["editor"]值与之不同即可触发markit()函数。
需要注意的是,因为注入点位于URL中,直接路径加sql语句肯定是不行的,这里可以使用?进行连接。

漏洞复现

某cms 用户中心存在时间盲注

某cms 用户中心存在时间盲注

修复建议

$_SERVER['REQUEST_URI']进行过滤

原文来自: 先知社区

原文链接: https://xz.aliyun.com/t/5178

欢迎收藏并分享朋友圈,让五邑人网络更安全

某cms 用户中心存在时间盲注

欢迎扫描关注我们,及时了解最新安全动态、学习最潮流的安全姿势!


推荐文章

1

新永恒之蓝?微软SMBv3高危漏洞(CVE-2020-0796)分析复现

2

重大漏洞预警:ubuntu最新版本存在本地提权漏洞(已有EXP) 



本文始发于微信公众号(邑安全):某cms 用户中心存在时间盲注

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: