[代码审计]云优cms V 1.1.2前台多处sql注入,任意文件删除修复绕过至getshell
0X00 总体简介
云优CMS于2017年9月上线全新版本,二级域名分站,内容分站独立,七牛云存储,自定义字段,自定义表单,自定义栏目权限,自定义管理权限等众多功能深受用户青睐,上线短短3个月,下载次数已超过5万次。云优CMS坚信没有排名的网站不是“好网站”,我们将致力于为用户打造全自动SEO解决方案
此次审的版本为云优CMS v1.1.2,更新于2018.08.02。
发现了前台api模块Master.php,V1.php存在多个注入漏洞,与及statics\ueditor\vendor\Local.class.php 文件remove方法存在任意文件删除可导致getshell。
0x01 漏洞环境
工具: phpstudy , vscode,seay源代码审计工具,burpsuite
CMS版本: v1.1.2
官网下载:http://www.yunucms.com/
0x02 漏洞介绍
一、前台api模块下的Master.php,V1.php控制器多处sql注入
多处sql注入皆是orderby变量未过滤,直接带入了查询。pdo是没有办法过滤orderby的。
1,Master.php\api_list 方法

直接带入查询,没有任何过滤

2,Master.php\api_link 方法

不一一举例,Master.php文件的多处$orderby变量都是存在注入的,同理V1.php文件也是一样。

注入证明:取master.php文件中的api_list方法的注入点为例(为了更好的显示漏洞,手动开启了程序的debug模式,不开启报错方式也是可通过盲注的方式获取数据。程序默认不开启debug模式)

修复建议:
1) :不让用户可控$orderby参数
二、任意文件删除漏洞修复绕过
文件statics\ueditor\vendor\Local.class.php remove方法

这个漏洞在1.0.6版本中引入,在1.0.8版本修复。

但是修复不完全,可以直接绕过。
看代码的意思是获取文件路径,通过’/’来划分为数组,判断数组[0]和数组[1]是否等于uploads,不等于则非法。但是我们可以这样绕过,payloads:/uploads/../test.txt

且该处文件不经过后台认证,比如删除一个正常的图片,不带cookie,也是可以正常删除的。

跨目录删除文件,删除根目录下的test.txt

请求包:


可删除install.lock,重装系统写入配置文件直接获取网站webshell,参考(http://www.freebuf.com/column/162343.html)
修复建议:
1) :不允许路径中出现.. 字符
2) :比如将安全验证的代码修改为$file=str_replace(‘..’,’’,$file);
0X03 总结
漏洞原理比较简单,通过这个系统顺便总结了一下orderby注入相关的东西。
与及也发现了一些组件相关的问题,后面写篇文章总结一下。
声明:本文章只用于学习研究之用,禁止用于违法犯罪。
0x04 参考链接
1,http://www.cnblogs.com/iyiyang/articles/6740580.html
[代码审计]云优cms V 1.1.2前台多处sql注入,任意文件删除修复绕过至getshell的更多相关文章
- ZZCMS v8.2 前台Insert注入+任意文件删除
前几天看了水泡泡老哥的zzcms的审计,在论坛上一搜发现这个cms有不少洞.听说很适合小白练手,所以来瞅一瞅.不知道我发现的这个洞是不是已经被爆过了,如果雷同,纯属巧合. 一.Insert注入,直接返 ...
- 【代码审计】JTBC(CMS)_PHP_v3.0 任意文件删除漏洞分析
0x00 环境准备 JTBC(CMS)官网:http://www.jtbc.cn 网站源码版本:JTBC_CMS_PHP(3.0) 企业版 程序源码下载:http://download.jtbc. ...
- ThinkSNS2.5前台getshell+后台任意文件删除
12年爆出的一个洞 前几天比赛的一个cms 于是跟出题人表哥要过来审计了看看 漏洞文件再根目录thumb.php中 <?php /* * 自动缩略图 参数 url|w|h|type=" ...
- Discuz!X 3.4 前台任意文件删除漏洞复现
Discuz!X 3.4 前台任意文件删除漏洞复现 参考链接: http://www.freebuf.com/vuls/149904.html http://www.freebuf.com/artic ...
- 【代码审计】大米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 代码分析 ...
- 【代码审计】XYHCMS V3.5任意文件删除漏洞分析
0x00 环境准备 XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:http://www.xyhc ...
- [代码审计]phpshe开源商城后台两处任意文件删除至getshell
0x00 背景 这套系统审了很久了,审计的版本是1.6,前台审不出个所以然来.前台的限制做的很死. 入库的数据都是经过mysql_real_escape_string,htmlspecialchars ...
- 【代码审计】TuziCMS_v3.0_任意文件删除漏洞分析
0x00 环境准备 TuziCMS官网:http://www.tuzicms.com/ 网站源码版本:TuziCMS_v3.0_20161220 程序源码下载:http://www.tuzicms ...
随机推荐
- P3089 [USACO13NOV]POGO的牛Pogo-Cow
P3089 [USACO13NOV]POGO的牛Pogo-Cow FJ给奶牛贝西的脚安装上了弹簧,使它可以在农场里快速地跳跃,但是它还没有学会如何降低速度. FJ觉得让贝西在一条直线的一维线路上进行练 ...
- 把iPad上的视频推送到大麦盒子去
把iPad上的视频推送到大麦盒子去 最近因为升级家里的宽带,服务商送了一个大麦盒子给我. 大麦盒子,就是一个网络机顶盒,用它可以通过互联网收看电视剧.电影.电视节目.音乐等等.除了它自身带的一 ...
- timer.Interval用法简介
这个东东呢是我在做windows服务的时候碰到的,总结了一下她的用法,如下: 一.指定时间间隔 写一个每隔一分钟就执行一次的吧 public partial class PSJCService : S ...
- oracle connect by用法篇 (转)
1.基本语法 select * from table [start with condition1] connect by [prior] id=parentid 1 2 1 2 一般用来查找存在父子 ...
- POJ - 3020 Antenna Placement(最小覆盖路径)
---恢复内容开始--- https://vjudge.net/problem/POJ-3020 题意 *--代表城市,o--代表空地 给城市安装无线网,一个无线网最多可以覆盖两座城市,问覆盖所有城市 ...
- bzoj千题计划235:bzoj2448: 挖油
http://www.lydsy.com/JudgeOnline/problem.php?id=2448 一遍过,嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎,O(∩_∩)O~ 题意是最小化最大值 设计区间dp dp[i ...
- 蓝桥杯 带分数 DFS应用
问题描述 100 可以表示为带分数的形式:100 = 3 + 69258 / 714. 还可以表示为:100 = 82 + 3546 / 197. 注意特征:带分数中,数字1~9分别出现且只出现一次( ...
- spring框架学习(二)使用注解代替xml配置
注解 1.使用注解配置spring 1)开启使用注解代理配置文件 <?xml version="1.0" encoding="UTF-8"?> &l ...
- 浅说Get请求和Post请求
Web 上最常用的两种 Http 请求就是 Get 请求和 Post 请求了.我们在做 java web 开发时,也总会在 servlet 中通过 doGet 和 doPost 方法来处理请求:更经常 ...
- JQuery效果隐藏/显示
hide() 方法 语法 $(selector).hide(speed,callback) show() 方法 语法 $(selector).show(speed,callback) 参数 描述 sp ...