ZZCMS内容管理系统于2018年2月6号被爆出SQL注入漏洞,该ZZCMS网站程序是应
用于招商行业、平台供求、加盟行业,应用比较广泛,全套系统采用PHP语言开发,数据库
采用mysqli,配合伪静态,zzcms系统稳定便捷,深受用户的喜欢。这次发现的zzcms网站漏
洞,是存在于2017年12月12日的最新V8.2版本。
SINE安全公司在对该ZZCMS网站程序代码进行安全审计的时候,发现在用户目录USER下的
del.php代码里发现存在sql注入漏洞,利用该漏洞可以获取网站的管理员账号密码,以及篡改
数据。Sine安全公司是一家专注于:网站安全、服务器安全、网站安全检测、网站漏洞修复,
渗透测试,安全服务于一体的网络安全服务提供商。 <?php $pagename=trim($_POST["pagename"]);
$tablename=trim($_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('操作失败!至少要选中一条信息。'); } switch ($tablename){case "zzcms_main";if (strpos($id,",")>0){ 之前ZZCMS的版本已经加强了前端的安全过滤,尤其在chekid参数值上也进行了详细的安全过
滤,那么就没有其他的注入漏洞了吗?我们接着往下看代码,在 del.php代码的最下面的代码
里发现了漏洞所在,如下代码: }else{
if (strpos($id,",")>0){
$sql="select id,editor from ".$tablename." where id in (". $id .")"; }else{
$sql="select id,editor from ".$tablename." where id ='$id'"; }
$rs=query($sql);
$row=num_rows($rs);
if ($row){
while ($row=fetch_array($rs)){
if ($row["editor"]<>$username){
markit();
showmsg('非法操作!警告:你的操作已被记录!小心封你的用户及 IP!'); exit; } query("delete from ".$tablename." where id =".$row['id'].""); } echo "<script>location.href='".$pagename."';</script>"; } 完全是没有对tablename参数过滤,在tablename这个参数值上,发现可以传入一些非法参数包含
sql注入代码,由于这个参数值不需要闭合,直接可以拼接成sql语句,导致该sql注入漏洞发生。
这个sql注入漏洞不需要用户登录也可以直接注入,危害极大,请各位网站的运营者尽快修复漏洞。 zzcms漏洞利用exp

还没有评论,来说两句吧...