[代码审计]云优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 ...
随机推荐
- NameError: name 'reload' is not defined
对于 Python 2.X: import sys reload(sys) sys.setdefaultencoding("utf-8") 对于 <= Python 3.3: ...
- Android后台服务拍照
原文:https://blog.csdn.net/wurensen/article/details/47024961 一.背景介绍最近在项目中遇到一个需求,实现一个后台拍照的功能.一开始在网上寻找解决 ...
- '增量赋值(augmented assignment)', 多么痛的领悟!
'增量赋值(augmented assignment)', 多么痛的领悟! 深刻理解x += a 与 x = x + a 的不同: 按理说上面的两条语句是等价的, 功能上完全一样的. 之所以说不同, ...
- 【学习笔记】Spring AOP注解使用总结
Spring AOP基本概念 是一种动态编译期增强性AOP的实现 与IOC进行整合,不是全面的切面框架 与动态代理相辅相成 有两种实现:基于jdk动态代理.cglib Spring AOP与Aspec ...
- html5 canvas显示文字(写上5个字,纪念我那刚刚逝去的爱情)
<script type="text/javascript"> window.addEventListener('load',eventWindowLoaded,fal ...
- 第10月第4天 Mac g++ sfml opendir
1. g++ OpenGL.cpp -I/Users/temp/Downloads/SFML-2.4.2-osx-clang/include -L/usr/local/lib -framework O ...
- insert into与insert ignore以及replace into的区别
insert ignore表示,如果表中已经存在相同的记录,则忽略当前新数据: INSERT INTO有无数据都插入,如果主键则不插入; REPLACE INTO 如果是主键插入则会替换以前的数据; ...
- python3操作数据库 借助pycharm快速连接并操作mysql数据库
1.https://blog.csdn.net/qiushi_1990/article/details/78041299
- C# 压缩文件 的创建
using System;using System.IO.Compression; using System.Collections.Generic;using System.Linq;using S ...
- 『实践』Android之短信验证码(用的Mob短信验证)
1.参考资料 Mob网站:http://www.mob.com/ Mob在Github上的例子:https://github.com/MobClub/SMSSDK-for-Android 教程:htt ...