代码审计

代码审计——zcncms几处漏洞合集

字号+ 作者:小黑屋 来源:转载 2016-12-24 14:37 我要评论( )

from: 小黑屋 继上一篇参数$parentid未正确处理后,在/module/products/admincontroller/products_photo.php中, switch($a) { case list:default://list //列表 i......

from:小黑屋

继上一篇参数$parentid未正确处理后,在/module/products/admincontroller/products_photo.php中,

当 $a的值为’list’时,$where = ” productid = ‘”.$productid.”‘ “, $procuctid被单引号保护起来,参数引进是经过addslashes操作的,所以这里是安全的。但是当$a == ‘edit’时,$products->GetInfo(”,’ id = ‘.$productid),$productid被直接拼接到where语句中且没有单引号保护,导致SQL注入。构造payload如下:

1

反射型xss

在后台登陆文件 /include/admincontroller/login.php中,进行登陆是否成功后,设置模板文件为’login.tpl.php’.

跟踪到/admin/templates/default/login.tpl.php

在<title>标签中要echo三个变量,其中会检查$topTitle是否为空,我们再控制器文件login.php中并未找到$topTitle的定义或初始化,由于之前参数输入特性,可以进行变量覆盖。

2

后台getshell

在文件/include/admincontroller/sys.php中

可编辑网站的基本信息并且存入sys.inc.php,$rs_msg = $STR->safe($info);但是$info经过了safe函数,我们跟踪safe函数

safe函数过滤了单双引号及常见的xss,我们再看看sys.inc.php

我们继续跟踪sys.php中的写函数,file_Write()->_write()

发现经过一系列的安全处理后,写入前会进行stripslashes操作,但是之前单引号被替换了。这里想到了\
我们呢可以这样构造

将$sys[“closeinfo”]后面的单引号转义,使之和$sys[“webtitle”]的第一个单引号闭合,这 样$sys[“webtitle”]的值就摆脱了单引号,再利用注释符”//“注释掉后面的单引号,中间直接可以写shell。执行完成后 sys.inc.php如下

3

成功getshell

4


本文来自: 蜗蜗侠's Blog-关注网络安全 http://blog.icxun.cn/hack/Code/484.html

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评
暂时未开启评论功能~