Mlecms 反射型xss && 后台任意文件下载
应该算0day吧,自己分析出来的,有点鸡肋,不过小cms分析确实比较简单。
xss地址:search.php?word=a><img+src=1+onerror=alert`1`>a&type=1
对于word的参数,他的过滤是这样的
$trim_str = ' .,;[]|+-=_`~!@#$%^&*()<>?{}';
empty($this->type) && $this->type = 1;
$this->type = $this->type < 1 ? 1 : ($this->type > 4 ? 4 : $this->type);
$this->word = trim(preg_replace('/[\'\"\\\\\/]/','',$this->word),$trim_str);
$this->tag = trim(preg_replace('/[\'\"\\\\\/]/','',$this->tag),$trim_str);
先过滤'"\/ 然后在过滤这些.,;[]|+-=_`~!@#$%^&*()<>?{} 发现是用trim() 函数来过滤的,他也就过滤头部和尾部,所以我们只要头部和尾部不为.,;[]|+-=_`~!@#$%^&*()<>?{}就行,所以我们的poc是: a><img+src=1+onerror=alert`1`>a ,
后台任意文件下载。
漏洞位于 /down.php 第69行
$do == 0 && $d['mode'] == 0 && is_file($d['format_url'][$do][1]) ? download::read($d['format_url'][$do][1]) : msgbox('',$d['format_url'][$do][1]);
调用read()函数读取url,跟进read()函数
public static function read($file){
ob_end_clean();
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
@header('Content-Length: '.filesize($file));
header('Content-Disposition: attachment; filename='.basename($file));
@readfile($file);
exit();
}
没有啥过滤,直接读取返回。
$d['format_url'][$do][1]而这个url的值是存放在数据库中的值,这个值是后台创建的,或者修改。

修改完成以后在前台下载就行。

这个文件下载漏洞需要管理员的权限,下载包含webkey的文件,就能getshell了。
readfile() 不知道能不能用 php://的方法来getshell,暂时没找到,留着以后更!
Mlecms 反射型xss && 后台任意文件下载的更多相关文章
- 【代码审计】CLTPHP_v5.5.3后台任意文件下载漏洞分析
0x00 环境准备 CLTPHP官网:http://www.cltphp.com 网站源码版本:CLTPHP内容管理系统5.5.3版本 程序源码下载:https://gitee.com/chich ...
- ThinkSnS v4后台任意文件下载漏洞
漏洞文件: /apps/admin/Lib/Action/UpgradeAction.class.php 主要问题还是出现在了180行直接将远程获取到的图片直接保存. 文中可见并没有做任何的对$dow ...
- 反射型XSS的逆袭之路
0×00背景 这是一次结合各自技巧的渗透过程,由于原作者的截图不多,我们只是简单叙述一下思路~ 目标是一家本地的游戏公司,起因是找到一个反射型xss,但是却被对方公司忽略,而作者身边的一个妹子也在这家 ...
- 解决反射型XSS漏洞攻击
对于程序员来说安全防御,无非从两个方面考虑,要么前端要么后台. 一.首先从前端考虑过滤一些非法字符. 前端的主控js中,在<textarea> 输入框标签中,找到点击发送按钮后,追加到聊天 ...
- 【代码审计】XYHCMS V3.5任意文件下载漏洞分析
0x00 环境准备 XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:http://www.xyhc ...
- 【代码审计】ThinkSNS_V4 任意文件下载漏洞分析
0x00 环境准备 ThinkSNS官网:http://www.thinksns.com 网站源码版本:ThinkSNS V4 更新时间:2017-09-13 程序源码下载:http://www ...
- 【代码审计】EasySNS_V1.6 前台任意文件下载漏洞分析
0x00 环境准备 EasySNS官网:http://www.imzaker.com/ 网站源码版本:EasySNS极简社区V1.60 程序源码下载:http://es.imzaker.com/i ...
- 0基础浅谈反射型xss(2)
0x1:回顾前文疑惑“先闭合,在构造” 上一篇,我们说到了xss的一个触发精髓,“先闭合,在构造”,对于前面的先闭合,我们来简单的解释一下: 首先说,为什么要闭合? 因为HTML标签都是成对出现的 ...
- [典型漏洞分享]从一个手动分析的反射型XSS漏洞看待一个安全设计原则【中危】
这是在测试YS“本地相册”功能时发现的一个反射型XSS,自己在安全测试过程中也发现过不少XSS漏洞,唯独这个的发现过程有点区别. 在此之前,我在测试另外一个模块的功能接口的时候发现了一个反射型XSS, ...
随机推荐
- DB2开发系列之四——触发器
1.触发器类型 1)BEFORE 触发器:在对表插入或更新之前执行该触发器,允许使用CALL 和 SIGNAL SQL 语句: 2)BEFORE DELETE 触发器:在删除操作之前执行该触发器: 3 ...
- CSS3动画箭头
<style type="text/css"> .arrow { display: block; width: 20px; height: 20px; position ...
- 如何修改HTML5 input placeholder 颜色
有三种实现方式:伪元素(pseudo-elements).伪类( pseudo-classes)和Notihing. WebKit和Blink(Safari,Google Chrome, Opera1 ...
- Android中的layout_gravity和gravity的区别
在Android的布局中,除了padding和margin容易弄混之外,还有layout_gravity和gravity.按照字面意思来说,layout_gravity就是相对于layout来设置的. ...
- JavaScript(第十一天)【变量,作用域,内存】
JavaScript的变量与其他语言的变量有很大区别.JavaScript变量是松散型的(不强制类型)本质,决定了它只是在特定时间用于保存特定值的一个名字而已.由于不存在定义某个变量必须要保存何种数据 ...
- 2018.3.29 div格式设置
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> ...
- 关于c++停止工作
出现这样情况有两种原因 : 1未初始化 2用scanf未用符号& 3当0做分母时
- W班-项目选题报告成绩
作业链接 https://edu.cnblogs.com/campus/fzu/FZUSoftwareEngineering1715W/homework/907 作业要求 1份团队选题报告(word电 ...
- 201621123040《Java程序设计》第4周学习总结
1.本周学习总结 1.1写出你认为本周学习中比较重要的知识点关键词 关键词:继承 多态性 基本语法 重新定义Override 1.2尝试使用思维导图将这些关键词组织起来.注:思维导图一般不需要出现过多 ...
- centos 安装配置 mysql
安装环境:CentOS7 64位 MINI版,安装MySQL5.7 1.配置YUM源 在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo ...