SemCms(php版)利用php措辞编写,结合apache,在window,或linux系统下运行。

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

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

phpsem代码审计之Semcms v23 RESTful API

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

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

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

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

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