代码审计之Semcms v2.3

前言:

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

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

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

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

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 “”;}

else {echo”;}

}

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

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

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

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

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

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

echo checkuser();

?>

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

2.漏洞poc

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

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

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

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

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

相关资讯: