代码审计之Semcms v2.3

前言:本来提交给了cnvd平台,竟然被驳回,原因是semcms v2.2就已经存在了这个漏洞,那么问题来了,这个锅难道是我们背?(无力吐槽厂商。。)

SemCms是一套开源外贸企业网站管理系统,主要用于外贸企业,兼容IE、Firefox 、google、360 等主流浏览器。

SemCms(php版)使用php语言编写,结合apache,在window,或linux系统下运行。

SemCms采用国际通用utf-8编码编写。

SemCms非常适合在外贸企业,电子商务互联网应用上使用,2009年12月首次发布以来,SemCms依靠出色的用户体验和领先的技术不断扩大外贸场占有率,目前在国内已经成为最受欢迎的英文外贸网站之一。

官方网站:www.semcms.com

官方demo网站:http://php.sem-cms.com/

1.漏洞成因

漏洞出处:jzkk_Admin/Include/function.php第9行

function checkuser(){ //判断账号

$cookieuser=@htmlspecialchars($_COOKIE[“scuser”]);

$cookieuserqx=@htmlspecialchars($_COOKIE[“scuserqx”]);

$sql=”select * from sc_user where user_ps=’$cookieuser’ and user_qx=’$cookieuserqx'”;

$result=mysql_query($sql);

$row = mysql_fetch_array($result,MYSQL_ASSOC);

if (!mysql_num_rows($result)){ echo “<script language=’javascript’>alert(‘账号密码不正确重新登陆!’);top.location.href=’index.html’;</script>”;}

else {echo”;}

}

这里看到生成的scuser和scuserqx都只经过了htmlspecialchars()函数,然后就进入了数据库查询,很明显这里存在cookie注入的问题!

下面看看是否后台登录进去后的界面有没有调用这个函数!

首先查看后台首页文件SEMCMS_Main.php第1行

<?php include_once ‘SEMCMS_Top_include.php’; ?>

这里为了示意,只截取重要代码,可以看到调用了SEMCMS_TOP_include.php文件,下面进入这个文件,看看有无调用checkuser()函数

在SEMCMS_TOP_include.php第309行出现了调用函数

<title>欢迎使用黑蚂蚁·SEMCMS外贸网站管理系统</title>

</head>

<?php

echo checkuser();

?>

因此我们判定这里一定存在cookie注入!

2.漏洞poc

下面我们利用cookie生成软件来添加我们的payload

图片[1]-代码审计之Semcms v2.3-安全小百科

添加完成后我们直接访问后台地址http://127.0.0.1/jzkk_Admin/SEMCMS_Main.php

图片[2]-代码审计之Semcms v2.3-安全小百科

可以看到我们已经直接登录进来了,绕过了账号登录环节

图片[3]-代码审计之Semcms v2.3-安全小百科

这是cookie中的数据,证实了cookie注入漏洞的存在!

如有不当之处,敬请指出~

相关推荐: 学习笔记之安装docker(一)

Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。 Docker…

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论