FCKEditor 2.3.2 的type漏洞修复

2023-10-27

从网上下了最新的FCKeditor 2.3.2和对应的JSP整合文件FCKeditor 2.3,安装后进行测试,发现type漏洞仍然存在,汗!

  漏洞情况是:或在type后面跟上一个非file/image/flash/media参数,就可以上传任意文件,能浏览任意目录并将文件上传到这些目录下。要是上传一些病毒或是木马,嘿嘿...
  然后着手进行修改。改了几个地方:
一、 一是web.xml文件,里面有两个servlet,浏览文件用的是Connector,既然能上传任意文件,那就可以在这里做限制,因为浏览文件并不会用到SimpleUploadServlet,所以如果这里不做限制,就可以上传任意文件了。增加以下参数:
 
<init-param>
      <param-name>AllowedExtensionsFile</param-name>
      <param-value>jpg|gif|jpeg|png|bmp|swf|fla</param-value>
</init-param>
 
然后在src\com\fredck\FCKeditor\connector\ConnectorServlet.java文件里做上传的文件检测,即可解决上传任意文件问题。
//修复开始,检测在web.xml文件中指定的上传类型
String fileType="FileExt";
boolean isValidType=false;
if(extIsAllowed(fileType,ext)){
   isValidType=true;
}else{
   retVal="202";//无效类型提示
}
if(isValidType){
//修复结束
这里会用到一个extIsAllowed()函数,从src\com\fredck\FCKeditor\uploader\SimpleUploaderServlet.java文件里拷即可。另外,要在init里进行初始化:
  allowedExtensions = new Hashtable(3);
  allowedExtensions.put("FileExt",stringToArrayList(getInitParameter("AllowedExtensionsFile")));
二、二是会浏览硬盘任意目录问题,这个也在ConnectorServlet.java里,这里要限制用户进入指定目录这外的其它目录。 
//修复开始
 //修复会进入设定上传根目录的上级目录
String curRealDir=currentDir.getCanonicalPath();
String rootPath=getServletContext().getRealPath(baseDir);//网站上传的根目录
String currentRootDir=null;
if(curRealDir.length()>rootPath.length()){
    currentRootDir=curRealDir.toString().substring(0,rootPath.length());
}else{
     currentRootDir=curRealDir;
}
if(!rootPath.equals(currentRootDir)){
     //如果不在配置文件指定的根目录,则将当前根目录固定到指定根目录
     currentDir=new File(rootPath);
}
同样,也在SimpleUploaderServlet.java里做限制。以防止上传到非指定目录。
 
三、原FCKEditor上传文件后,会沿用原文件名,如果有重名,在后面加以1、2...序号,这里,我想将文件按年/月的形式存放,并在下面自动生成image、Flash等目录。而文件名也用时间戳生成。
   这里改了ConnectorServlet.java和SimpleUploadServlet.java文件,新建立一个TimeStamp类,用于生成文件名。
   这样,在浏览上传和选择上传选项,均会将文件传到如/UserFiles/2006/12/Image/20061213121444.gif的位置。
   但这样一来,浏览服务器文件就要出现问题,我的做法是,打开浏览服务器窗口时,自动进入上传文件夹,这里可以看到按年/月分类的结构。修改fckconfig.js文件,如下:
FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=/&Connector=connectors/jsp/connector' ;
FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=/&Connector=connectors/jsp/connector' ;
FCKConfig.FlashBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=/&Connector=connectors/jsp/connector' ;
四、建立文件夹问题
  FCKEditor没有限制文件夹名称,什么乱七八糟的名称都可以,可以限制为只能用字母、数字和下划线。建立中文文件夹好象会出错,我们一般也不提倡建立中文文件夹。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FCKEditor 2.3.2 的type漏洞修复 的相关文章

  • 使用 Java EE 表单身份验证登录后访问用户详细信息

    我已经实现了一个 Java EE 安全领域 如果用户尝试访问受保护的资源 该安全领域会将用户重定向到 login jsp 假设用户想要访问受保护的网址 http mywebapp shopping cart映射到 ShoppingCartS
  • 将 JSTL 添加到 jsp (Tomcat 8) [重复]

    这个问题在这里已经有答案了 我想在我的 jsp 中使用 JSTL 库 现在我按照教程进行操作 它告诉我将此行添加到 jsp 页面 它给我错误无法解析 taglib 与 uri 然后是 URL 我正在运行 tomcat 8 我的 web xm
  • 用圆形减去(遮盖掉?)路径

    我正在使用 Spark Path 在 Flex 中绘制一条路径 我想从这条路径中减去一个圆形 如下图所示 道路又黑又宽 有任何想法吗 我尝试使用 Shape 对象创建蒙版 但无法完全创建其中有圆孔的蒙版 找到了 不涉及口罩 我拿了Path并
  • 如何在 Jboss 7.1 中配置简单身份验证

    我正在从事由以下人员编写的项目纯jsps 脚本 不使用任何框架 jboss版本 jboss as 7 1 0 Final 我现在正在尝试在其上添加简单的身份验证 因此 当用户尝试浏览 jsp 时 比如说 http localhost myC
  • 在 WordPress 页面上嵌入 swf

    我正在尝试将 swf 嵌入到 WordPress 页面中 这听起来很简单 但它不起作用 我不明白为什么 我已将所有相关文件上传到服务器上 并且我相当确定所有文件路径都是正确的 包含 fla 和 swf 文件的文件夹还包含一个 index h
  • Adobe Flash 项目的版本控制

    我正在处理一个非常复杂的 Flash 项目 该项目是我们为客户使用而部署的全套服务的一部分 对于我们的大多数软件源 Java PHP Javascript HTML 和一些其他语言的支持脚本 我们使用 subversion 进行版本控制和管
  • 如何在ngDialog中加载数据

    我有一个要求 我需要从 jsp 页面打开一个对话框 并且在打开该对话框时 我需要从服务器加载一些预填充的数据 使用 AJAX 调用 如果我在打开对话框之前进行 AJAX 调用 我会获取数据 但对话框会像新页面一样加载 如果我尝试在新控制器中
  • 如何在 jsp 中访问 ModelMap?

    如何从jsp中的ModelMap访问一个对象 以便调用它的方法 目前我收到此错误 Syntax error on token delete this token JSP Java Controller RequestMapping dash
  • 我应该等待 Flash Player 10.1 还是使用 Flash Lite 3 来为手机和设备开发 Flash 内容

    Adobe 将在 2010 年第一季度推出 Flash Player 10 1 这将在桌面和移动设备上提供一致的运行时 因此我假设如果它是为 Web 构建的 那么它也可以在移动设备上运行 我即将开始为手机开发基于 Flash 的应用程序 我
  • 防止浏览器弹出警告窗口

    我正在尝试在新窗口中打开 jsp 页面 使用 JavaScriptwindow open产生浏览器警告 并且在某些情况下 firefox 将默认阻止弹出窗口 有没有办法解决这个问题 这不是恶意应用程序 它是内部用户工具 大多数浏览器不会阻止
  • 自动更改时 onChange 事件不起作用

    我在一个选择框 usageDisplays 上有一个 onChange 事件 它根据第一个选择框的选定值填充下一个选择框
  • /WEB-INF 中的 JSP 返回“HTTP 状态 404 请求的资源不可用”

    我创建了一个 JSP 文件 sample jsp This is jsp program 我把它放在这里samplejsp项目 samplejsp WebContent WEB INF sample jsp 我通过以下网址打开了它 http
  • 从 iframe 访问 Session 变量

    我有一个 jsp 我在其中设置了会话变量 但是 当我尝试读取另一个 jsp 中的会话变量 user 时 该变量已加载到 iframe 同一主机 服务器等 中 然后我得到 NullPointerException 如何在 iframe 中获取
  • 更改由 AS3 添加到舞台的影片剪辑中的动态文本字段不起作用?

    当我更改动态文本字段的文本值时 文本字段只是变为空白 而不显示新值 我有一个名为 game board 的 MovieClip 由 AS3 动态添加到舞台上 舞台一开始是空白的 我有另一个名为 stage 2 的 MovieClip 它作为
  • JavaScript 中的 jstl

    可以在javascript中使用jstl吗 我正在绑定设置
  • 如何在字段值无效的情况下更改 Struts2 验证错误消息?

    我在 Web 表单上使用 Struts2 验证 如果字段假设为整数或日期 则
  • 如何通过命令行将Flash .fla编译为.swf? [复制]

    这个问题在这里已经有答案了 如何在基于 Windows 的操作系统上通过命令行将 Flash fla 文件编译为 swf 需要安装的命令行工具就可以了 谁能建议我该怎么做 以直接的方式 谢谢 您可以使用JSFL为 Flash IDE 编写脚
  • 使用 Python Mechanize 与 Flash 交互

    我正在尝试用 Python 创建一个处理 Flash 的自动化程序 现在我正在使用Python Mechanize 它非常适合填写表格 但是当涉及到flash时我不知道该怎么办 有谁知道我如何通过 Python mechanize 或其他一
  • 使用 flash 或 java servlet 将麦克风数据从浏览器上传到服务器的教程? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 There was a question on how to get data from a microphone on a client
  • Java Web 技术中的 AJAX 自动完成文本框(JSP 和 servlet)

    我需要您的帮助 了解如何使用 Java Web 技术 JSP Servlet 和 AJAX 使 HTML 输入文本元素像 Google 的 AJAX 搜索引擎 输入文本元素一样工作 下拉列表中的数据将来自数据库表 例如分别是 MySQL 或

随机推荐

  • mybatis中resultMap和resultType区别,三分钟读懂

    先说结论 resultmap与resulttype的区别为 对象不同 描述不同 类型适用不同 说人话就是 resultmap和resulttype功能差不多 但是resultmap功能更强大 resultType 使用resultType进
  • 成员变量与属性是不同的

    成员变量 在类体的变量部分中定义的变量 也称为字段 属性 官方定义为属性是指get或者set方法名 去掉get或者set后 把剩余的部分首字母改为小写后 即为这个类的属性 例 public class Test private String
  • 基础算法01

    冒泡排序 基本思想是 将相邻的记录的关键码进行比较 若前面记录的关键码大于后面记录的关键码 则将它们交换 否则不交换 bool swapped true do swapped false for int i 0 i
  • 在idea中配置 gitignore忽略文件(一)

    针对一些不用每次提交的文件 设置不让其提交到git的本地仓库中 先在idea中安装gitignore插件 点击File gt Settings 选择plugs 在右边搜索 ignore 点击Install 安装完成后就可以愉快的使用了 不过
  • 界面、线程与Qt线程

    1 当界面的操作频率很高 而且还要考虑用户体验时 耗时的操作会独占系统cpu资源 让界面卡死在那里 这时需要考虑多线程方案 将耗时的操作放在 线程中执行 如下例 界面需要不停地添加字符串 如果不使用线程处理的话界面会卡死 下面我们先使用UC
  • 主成分分析(Principal Component Analysis,PCA)详解

    PCA是非常重要的统计方法 其实际应用非常广泛 但是很多讲解太过于公式化 很难让初学者消化 本文将从一个实际例子出发 并对数学公式原理及推导过程作出详细解释 即使你的数学基础比较差 在看完这篇博客之后 相信你会对PCA会有一个透彻的认知 P
  • 构造函数初始化:提高代码可读性和执行效率

    在C 中 构造函数是用来初始化对象数据成员的 一个对象在创建的时候 构造函数会被自动调用 以便为该对象的数据成员赋初值 传统的初始化方式是在构造函数内部对数据成员逐一进行初始化 这种方式虽然可行 但是代码复杂度高且效率低下 本文将介绍如何使
  • 一文详解!嵌入式软件的自动化测试框架、测试流程与功能研究分析

    目录 引言 1 嵌入式软件自动化测试平台分析 2 嵌入式软件自动化测试平台概要设计 3 嵌入式软件自动化测试平台详细设计 3 3 功能设计 引言 嵌入式软件是指被设计用于嵌入或控制另一个产品 设备或系统的软件 它在各种应用领域 例如消费电子
  • 如何批量提取不同文件夹下的图片并随机重命名

    问题提出 无论是在为了跑深度学习模型而准备数据集 还是其他的一些用途 相信大家都会遇到一个问题 我所需要的图片分布在很多不同的文件夹下 但我不需要这么多文件夹 那么我如果要使用这些图片的话 就需要把这些文件夹下的图片一个个提取出来 然后再放
  • GEE-页面介绍

    页面介绍 一 首页介绍 二 Datasets 1 Home首页介绍 1 1Climate and Weather 对应上面的 Browse by tags 标签 即为按照标签访问数据 1 2Imagery 对应上面的 landsat MOD
  • 蓝桥杯JAVA B组 2020(2)第三题 合并检测

    一 题目描述 如果结果为阴性 则说明这 k个人都是阴性 用一个试剂盒完成了 k 个人的检测 如果结果为阳性 则说明至少有一个人为阳性 需要将这 k 个人的样本全部重新独立检测 加上最开始的合并检测 一共使用了 k 1 个试剂盒完成了 k 个
  • 基于ssm框架的毕业设计管理系统 毕业设计-附源码211633

    摘 要 随着科学技术的飞速发展 各行各业都在努力与现代先进技术接轨 通过科技手段提高自身的优势 对于毕业设计管理系统当然也不能排除在外 随着网络技术的不断成熟 带动了毕业设计管理系统 它彻底改变了过去传统的管理方式 不仅使服务管理难度变低了
  • VMware出现“该虚拟机似乎正在使用中”问题

    按照以下步骤解决虚拟机异常关机无法打开问题 1 在用VMware虚拟机的时候 有时会发现打开虚拟机时提示 该虚拟机似乎正在使用中 如果该虚拟机未在使用 请按 获取所有权 T 按钮获取它的所有权 否则 请按 取消 按钮以防损坏 配置文件 D
  • Android——使用DatePicker和TimePicker显示当前日期和时间

    1 DatePicker和TimePicker两种实现动态输入日期和时间的功能 2 DatePickerDialog和TimePickerDialog两种实现动态输入日期和时间的对话框 3 两组监测日期和时间改变的监听器 1 OnDateC
  • vue中使用百度地图 添加标记物,点击标记物弹窗,画运动轨迹,位置纠偏,逆地址解析

    在vue项目中使用百度地图 添加标记物 位置纠偏 信息弹窗 画轨迹 坐标转换 逆地址解析 参考vue baidu map开发文档 安装 npm install vue baidu map save 全局注册 在main js中引入以下代码
  • 【Vue】关于开发中本地图片加载失败的经验总结

    文章目录 1 图片存放在assets 2 图片存放在static中 3 其他需要注意的点 我的源码 img或者el avatar中的src没有提供静态值 而是绑定一个动态变量 如果这个变量的路径是存放在assets里 则图片会加载失败 1
  • nginx代理路径配置总结

    一 发现问题 配置nginx代理的时候 发现location配置的路径和代理的上下文路径的组合不同 服务端接收到的uri的路径不同 导致了controller的RequestMapping匹配出现问题 所以就仔细研究了一下nginx路径配置
  • 对象属性拷贝(BeanUtils.copyProperties)用法

    系列文章目 对象属性拷贝 BeanUtils copyProperties 用法 一 BeanUtils copyProperties参数赋值顺序 根据导包不同 方式不同 一个为org springframework beans BeanU
  • MySQL数据库渗透及漏洞利用总结

    Mysql数据库是目前世界上使用最为广泛的数据库之一 很多著名公司和站点都使用Mysql作为其数据库支撑 目前很多架构都以Mysql作为数据库管理系统 例如LAMP 和WAMP等 在针对网站渗透中 很多都是跟Mysql数据库有关 各种Mys
  • FCKEditor 2.3.2 的type漏洞修复

    从网上下了最新的FCKeditor 2 3 2和对应的JSP整合文件FCKeditor 2 3 安装后进行测试 发现type漏洞仍然存在 汗 漏洞情况是 或在type后面跟上一个非file image flash media参数 就可以上传