ZZCMS v8.2 前台Insert注入+任意文件删除
前几天看了水泡泡老哥的zzcms的审计,在论坛上一搜发现这个cms有不少洞。听说很适合小白练手,所以来瞅一瞅。不知道我发现的这个洞是不是已经被爆过了,如果雷同,纯属巧合。
一.Insert注入,直接返回数据
先从默认页index.php入手:

跟进inc/conn.php看一下:

发现include了好多文件,可以看一下每一行的注释,大多数都是定义一些常量。只有inc/function.php和inc/stopsqlin.php不是。先进入function.php看一下,大都是一些公用函数的定义。看看stopsqlin.php:

第一个if用处注释中有了,这里就不说了。直接看黄标,这里用zc_check()处理了$_GET,$_POST和$_COOKIE。这个函数在上面定义了,基本就是在引号前面加个\转义。但是很容易发现,这里并没有过滤$_REQUEST。所以如果某段程序中用$_REQUEST直接获取客户端传来的参数的话,就有可能产生漏洞,可以直接全局搜索一下$_REQUEST。可是我当时没想到,中间又走了些弯路就不说了。直接来到user/adv.php:

可以看到,在37行之后,用REQUEST赋值了很多变量,而这些变量都是原生态的~
从文件头开始看:

inc/conn.php我们一开始就看过了,主要就是对$_GET,$_POST和$_COOKIE做了过滤。跟进下面这个check.php看看:

注意第4行的if条件,如果两个cookie都没set的话,就说明没有登录,进入第一个语句块。重点来了,这里直接用了个js的前端跳转,并没有exit()程序,所以说后面的代码还是会执行的。看一下第二个语句块,这里先query一下数据库,判断是否有返回信息,如果没有的话再来一个js跳转(13行),否则巴拉巴拉巴拉。所以总结下来,这个文件就是用来判断你有没有登录,不过这两个前端跳转形同虚设,后面的代码还是会执行的。回到上个文件adv.php,从那个REQUEST赋值往下看,看到97行有个if:

$action是可控的,进去之后就是个insert语句,语句直接拼接了我们上面通过$_REQUEST获得的变量,所以一个Insert注入就这么形成了。仔细看一下这个insert语句,前面的adv, company, advlink, img都是可控的,后面还有个$_COOKIE"UserName"也是可控的,只有最后两个参数不可控。
下面用BurpSuite演示一下,五个可控的点已经标出来了:
点击下载
瞅一眼数据库(最后一行,别看岔了):

插入成功!既然已经插入了,下面就要找一下在哪里能把这个结果给输出出来。继续往下看,发现输出就在下面:

110行有个select,根据username字段检索表,然后输出在那几个红线位置。这里回想一下,在上一个insert中,username是可控的,由$_COOKIE['UserName']控制,而这里的username也是如此。但是由于insert在select的前面,所以在我们第一次请求中,结果中就已经包含了我们注入的信息。回到BurpSuite看一看,果然:

返回很多,不只这一个,既然先看到他,就拿他爆数据吧。回到insert语句,由于这几个变量都是被包在单引号内的,而且引号并没有被转义,所以直接常规操作。

注意一下红线部分,由于adv直接闭合了括号,所以这里的username不再是从cookie中获取的了,而是这个5678(必须是唯一的,否则后面会select出多行记录)。因此Cookie的值也是5678,这个是用于select取数据。这里有个小坑,adv这个字段好像是不能重复的,所以测试的时候注意一下。
请求之后看一下数据库(最后一行):

这里可以看到,advlink已经被注入了user()了。看一下页面:

总结一下:
1.代码仅过滤了$_GET, $_POST, $_COOKIE, 而没有过滤$_REQUEST。
2.检查登录时,如果不符合要求并没有用exit()退出程序。
二.任意文件删除
还是上面那个文件:adv.php,还是上面那个图,我直接给复制过来了。看看第二个if,$oldimg是REQUEST得到的变量,所以这里有个任意文件删除。


根目录新建了个文件:DeleteMeBro.php。由于代码中已经将$oldimg与../拼接了(101行),所以参数直接写文件名就好:

回文件夹看看,删除成功。
ps: 我发现这个洞和水泡泡之前发的那个任意文件删除一模一样。。。
ZZCMS v8.2 前台Insert注入+任意文件删除的更多相关文章
- ThinkSNS2.5前台getshell+后台任意文件删除
12年爆出的一个洞 前几天比赛的一个cms 于是跟出题人表哥要过来审计了看看 漏洞文件再根目录thumb.php中 <?php /* * 自动缩略图 参数 url|w|h|type=" ...
- [代码审计]云优cms V 1.1.2前台多处sql注入,任意文件删除修复绕过至getshell
0X00 总体简介 云优CMS于2017年9月上线全新版本,二级域名分站,内容分站独立,七牛云存储,自定义字段,自定义表单,自定义栏目权限,自定义管理权限等众多功能深受用户青睐,上线短短3个月,下载次 ...
- PHP:网展cms后台任意文件删除和sql注入
0x01:目录结构 可以发现Frameword是框架的文件 install安装 public公共文件 uploads储存上传之类的文件 webuser后台文件 Home前台文件 0x02.csrf漏洞 ...
- Discuz!X 3.4 前台任意文件删除漏洞复现
Discuz!X 3.4 前台任意文件删除漏洞复现 参考链接: http://www.freebuf.com/vuls/149904.html http://www.freebuf.com/artic ...
- Youke365_2_4 一处Sql注入漏洞以及一处任意文件删除
本文作者:X_Al3r Prat 0 自白 每一天都是新的一天.没啥吐槽的,步入正题 /system/category.php 文件一处Sql注入## 80-87行代码 $root_i ...
- [代码审计]phpshe开源商城后台两处任意文件删除至getshell
0x00 背景 这套系统审了很久了,审计的版本是1.6,前台审不出个所以然来.前台的限制做的很死. 入库的数据都是经过mysql_real_escape_string,htmlspecialchars ...
- 【代码审计】大米CMS_V5.5.3 任意文件删除及代码执行漏洞分析
0x00 环境准备 大米CMS官网:http://www.damicms.com 网站源码版本:大米CMS_V5.5.3试用版(更新时间:2017-04-15) 程序源码下载:http://www ...
- 【代码审计】YzmCMS_PHP_v3.6 任意文件删除漏洞分析
0x00 环境准备 YzmCMS官网:http://www.yzmcms.com/ 程序源码下载:http://pan.baidu.com/s/1pKA4u99 测试网站首页: 0x01 代码分析 ...
- 【代码审计】XIAOCMS_后台database.php页面存在任意文件删除漏洞
0x00 环境准备 XIAOCMS官网: http://www.xiaocms.com/ 网站源码版本:XiaoCms (发布时间:2014-12-29) 程序源码下载:http://www.xi ...
随机推荐
- MyBatis 中一对一和一对多的映射关系
1 一对一映射 比如每位学生有一个地址. public class Address { private Integer addrId; private String street; private S ...
- nsqd.go
}
- MySQL 大数据量快速插入方法和语句优化
MySQL大数据量快速插入方法和语句优化是本文我们主要要介绍的内容,接下来我们就来一一介绍,希望能够让您有所收获! INSERT语句的速度 插入一个记录需要的时间由下列因素组成,其中的数字表示大约比例 ...
- Ajax的工作原理以及优点、缺点 (汇总)
最近空闲时间,有朋友问我关于Ajax的工作原理,在这里我结合自己的工作经验和网上大佬的经验做一个总结,如有不足,请各位业内大佬指正 在我们了解Ajax之前,我们先来了解一下Javascript的执行原 ...
- HEOI2018 游记
day0早上没有跑操,收拾了点东西,带了点吃的,老妈打电话说要给送点厚衣服,好像确实有点冷.上午有考试,说自愿考,然后开到一半就没了,根本没人打啊,打了一道小园丁和老司机,一个一个部分分打,最后T了一 ...
- BZOJ_3110_[Zjoi2013]K大数查询_整体二分+树状数组
BZOJ_3110_[Zjoi2013]K大数查询_整体二分+树状数组 Description 有N个位置,M个操作.操作有两种,每次操作如果是1 a b c的形式表示在第a个位置到第b个位置,每个位 ...
- BZOJ_2157_旅游_树剖+线段树
BZOJ_2157_旅游_树剖+线段树 Description Ray 乐忠于旅游,这次他来到了T 城.T 城是一个水上城市,一共有 N 个景点,有些景点之间会用一座桥连接.为了方便游客到达每个景点但 ...
- MySQL--各版本DDL 操作总结
MySQL 5.5 DDL 在MySQL 5.5版本前,所有DDL操作都使用Copy Table的方式完成,操作过程中原表数据库不允许写入,只能读取,在MySQL 5.5版本中引入FIC(Fast i ...
- Android--性能测试关注的指标
性能测试过程中,出现的一些问题可直接导致了用户对当前app的使用率和卸载率,如果app使用时卡顿严重或者加载页面慢,cpu占用率高,导致app闪退等问题,在测试过程中,则需特别关注性能方面的体验,ap ...
- .NET Core 迁移躺坑记
最近将自己负责的一个核心接口系统从.Net Framework迁移到了.Net Core. 整体过程,从业务层面说一般般吧(整体还好但还是搞的业务有感,没出严重故障)但是技术层面上感觉其实并没有达到要 ...