应该算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 && 后台任意文件下载的更多相关文章

  1. 【代码审计】CLTPHP_v5.5.3后台任意文件下载漏洞分析

      0x00 环境准备 CLTPHP官网:http://www.cltphp.com 网站源码版本:CLTPHP内容管理系统5.5.3版本 程序源码下载:https://gitee.com/chich ...

  2. ThinkSnS v4后台任意文件下载漏洞

    漏洞文件: /apps/admin/Lib/Action/UpgradeAction.class.php 主要问题还是出现在了180行直接将远程获取到的图片直接保存. 文中可见并没有做任何的对$dow ...

  3. 反射型XSS的逆袭之路

    0×00背景 这是一次结合各自技巧的渗透过程,由于原作者的截图不多,我们只是简单叙述一下思路~ 目标是一家本地的游戏公司,起因是找到一个反射型xss,但是却被对方公司忽略,而作者身边的一个妹子也在这家 ...

  4. 解决反射型XSS漏洞攻击

    对于程序员来说安全防御,无非从两个方面考虑,要么前端要么后台. 一.首先从前端考虑过滤一些非法字符. 前端的主控js中,在<textarea> 输入框标签中,找到点击发送按钮后,追加到聊天 ...

  5. 【代码审计】XYHCMS V3.5任意文件下载漏洞分析

      0x00 环境准备 XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:http://www.xyhc ...

  6. 【代码审计】ThinkSNS_V4 任意文件下载漏洞分析

      0x00 环境准备 ThinkSNS官网:http://www.thinksns.com 网站源码版本:ThinkSNS V4  更新时间:2017-09-13 程序源码下载:http://www ...

  7. 【代码审计】EasySNS_V1.6 前台任意文件下载漏洞分析

      0x00 环境准备 EasySNS官网:http://www.imzaker.com/ 网站源码版本:EasySNS极简社区V1.60 程序源码下载:http://es.imzaker.com/i ...

  8. 0基础浅谈反射型xss(2)

    0x1:回顾前文疑惑“先闭合,在构造” 上一篇,我们说到了xss的一个触发精髓,“先闭合,在构造”,对于前面的先闭合,我们来简单的解释一下:   首先说,为什么要闭合? 因为HTML标签都是成对出现的 ...

  9. [典型漏洞分享]从一个手动分析的反射型XSS漏洞看待一个安全设计原则【中危】

    这是在测试YS“本地相册”功能时发现的一个反射型XSS,自己在安全测试过程中也发现过不少XSS漏洞,唯独这个的发现过程有点区别. 在此之前,我在测试另外一个模块的功能接口的时候发现了一个反射型XSS, ...

随机推荐

  1. [BZOJ 4417][Shoi2013]超级跳马

    4417: [Shoi2013]超级跳马 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 379  Solved: 230[Submit][Status ...

  2. hibernate框架学习笔记1:搭建与测试

    hibernate框架属于dao层,类似dbutils的作用,是一款ORM(对象关系映射)操作 使用hibernate框架好处是:操作数据库不需要写SQL语句,使用面向对象的方式完成 这里使用ecli ...

  3. 2017-2018-1 1623 bug终结者 冲刺003

    bug终结者 冲刺003 by 王旌含 今日任务:优化界面布局,提供图片素材 需求 app图标.主界面图.主界面中按钮图:选择关卡图.关卡按键图:游戏中的小人.箱子.地板.墙.目的地:方向按钮:重置按 ...

  4. Django restful-framework初步学习

    urls.py from django.conf.urls import include, url from django.contrib import admin from rest_framewo ...

  5. python 单向链表实现

    单链表的操作 is_empty() 链表是否为空 length() 链表长度 travel() 遍历整个链表 add(item) 链表头部添加元素 append(item) 链表尾部添加元素 inse ...

  6. sqlserver之排序规则和ETL不支持sqlserverdatetime2的问题

    sqlserver的排序规则大概分为Windows 排序规则和 SQL Server 排序规则.数据在安装的时候,默认不设置会默认为SQL_Latin1_General_CP1_CI_AI.数据库在创 ...

  7. 使用HttpClient4.5实现HTTPS的双向认证

    说明:本文主要是在平时接口对接开发中遇到的为保证传输安全的情况特要求使用https进行交互的情况下,使用httpClient4.5版本对HTTPS的双向验证的  功能的实现    首先,老生常谈,文章 ...

  8. Junit 4 测试中使用定时任务操作

    难度:测试中执行线程操作 package com.hfepc.job.dataCollection.test; import java.util.Date; import java.util.List ...

  9. Spring mvc中junit测试遇到com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException错误怎么解决

    今天遇到图片中的错误,纠结了一下,弄清楚了怎么从控制台中读取错误信息,并修改错误. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: ...

  10. Linux入门(2)_给初学者的建议

    1 学习Linux的注意事项 严格区分大小写(命令, 文件, 选项) Linux中所有内容以文件形式保存, 包括硬件 硬盘文件是/dev/sd[a-p] 光盘文件是/dev/sr0等 Linux不靠扩 ...