• 彻底禁用fckEditor的上传功能(含防止Type漏洞问题)


    线编辑器中,FCKeditor是我用过最爽的,也是目前互联网上最好的编辑器,功能强大,支持多种浏览器,
    无平台限制,可以和多种WEB语言融合,多语言支持,而且还支持开源!^-^
    可它的确是太强大了! 以致于可以被别有用心的人轻易利用。
    比如不想禁止使用文件上传功能,请看下面内容
    http://www.cnblogs.com/WoodFish/archive/2008/05/11/1192304.html
    抄录如下:
    环境以Asp.net开发来进行讲解,步骤如下:
    1、获取文件
    我们可以从http://www.fckeditor.net/download下载两个压缩文件,第一个是FCKeditor.Net,最新版本是2.5,它主要包含C#的源
    码,及DLL文件,我们把DLL复制到BIN目录并将DLL添加到工具箱中,方便使用。另一个是FCKeditor 2.6,里面包含的是FCKeditor
    的脚本文件,样式,语言等FCKeditor的杂项。我们可以对它进行精简后,拷到WEB根目录下就可以了。

    2、FCKeditor的精简
    FCKeditor是支持多种WEB语言的,我们可以针对自己使用的语言来进行简化,将不使用的文件删掉,将FCKeditor_2.6解压后,进入
    到 FCKeditor文件夹下,先把以“_”为开头的文件夹统统删除,这些文件夹里放的是范例或是一些其它工具。其实也就是只保留
    editor文件夹、fckconfig.js、fckeditor.js、fckstyles.xml、fcktemplates.xml 就可以了,最外层的精简化完毕。
    进入到editor文件夹内,先把“_source”文件夹删除,这里是一些源文件,对于使用来说没什么用处。再进入lang文件夹内,这里
    是编辑器语言外包文件,只保留 zh-cn.js、en.js、zh.js这几个文件,这几个文件的含义我想大家都是知道的。当然如果需要其它
    语言也可以留下来。

    再进入skin文件夹,这是编辑器的皮肤,如果你想使用fckeditor默认的这种奶黄色,如果想用别的,那就自己考虑了。office2003
    的皮肤比较漂亮,听说加载时速度比较慢,也可以选那择silver,也比较好配色,速度也快。
    精简的最后一步,退出skin文件夹,再进入filemanager,进入到 connectors目录下,保留aspx目录,其它全部删除。
    精简工作完成,现在看起来就赏心悦目了!

    3、对编辑器进行配置,
    我们将编辑器控件拖到网页中是是不能正确运行的,必要要对其进行配置。第一个配置文件是fckconfig.js,位于FCKeditor根目录
    下。修改项包括:
    FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/silver/' ;(皮肤)
    FCKConfig.AutoDetectLanguage    = true ;(自动检测语言)
    FCKConfig.DefaultLanguage        = 'zh-cn' ;(默认为简体中文)
    选择aspx就行
    var _FileBrowserLanguage    = 'aspx' ;    // asp | aspx | cfm | lasso | perl | php | py (用来浏览上传文件)
    var _QuickUploadLanguage    = 'aspx' ;    // asp | aspx | cfm | lasso | perl | php | py (用来上传文件)
    如果想设置编辑器的浏览功能,如浏览图片、Flash,设置上传功能,如图片、Flash上传,可以设置为启用与禁用,true为启用

    false禁用。
    FCKConfig.LinkBrowser = true;
    FCKConfig.ImageBrowser = true ;
    FCKConfig.FlashBrowser = true ;
    FCKConfig.LinkUpload = true ;
    FCKConfig.ImageUpload = true ;
    FCKConfig.FlashUpload = true ;

    如果你的编辑器还用在网站前台的话,比如说用于留言本或是日记回复时,那就不得不考虑安全了,在前台千万不要使用Default的
    toolbar,要么自定义一下功能,要么就用系统已经定义好的Basic,禁用文件上传等其它比较危险的功能。当然也可以自定义,选择
    适合自己的功能。至于怎么选,可以对照fckconfig.js文件中FCKConfig.ToolbarSets["Default"]、FCKConfig.ToolbarSets
    ["Basic"]的配置,应该是比较容易做到的。不用讲解!

    4、文件上传的设置
    在文件上传时,我们希望将文件上传到指定的目录中,而且必须是经过验证的用户才能上传文件,我们可以
    在filemanager\connectors\aspx目录中的config.ascx文件中进行设置,首先为了防止没经过验证的用户上传木马文件,我们可以
    在CheckAuthentication()方法中加上对当前用户认证,成功后返回true即可;在SetConfig()方法中,可以设置UserFilesPath来指
    定保存上传文件的路径。上传文件可以按目录自动保存到对应的目录中,如: File, Image, Flash, Media ,设置后结构如下
    UserFilesPath = "~/Upload/",WEB根目录下的Upload目录中。
    ~/Upload
           |-File
           |-Image
           |-Flash
           |-Media


    另外, 上传时有个Type漏洞

    出现上传漏洞的地址是:
    http://www.xxx.com/admin/FCKeditor/editor/filemanager/browser/default/browser.html?Type=all&Connector=connectors/aspx/connector.aspx
    打开这个地址就可以上传任何类型的文件了,马儿上传到的位置是:
    http://www.xxx.com/UserFiles/all/1.asa
    "Type=all" 这个变量是自己定义的,在这里创建了all这个目录,而且新的目录没有上传文件格式的限制.
    比如输入:
    http://www.xxx.com/admin/FCKeditor/editor/filemanager/browser/default/browser.html?Type=monyer&Connector=connectors/aspx/connector.aspx
    所传的文件就到了 http://www.xxx.com/UserFiles/monyer/ 下了
    而如果这样输入:http://www.xxx.com/admin/FCKeditor/editor/filemanager/browser/default/browser.html?Type=../&Connector=connectors/aspx/connector.aspx
    就可以传到网站的根目录下,网站支持什么脚本,传什么脚本的马就可以了.
    所传的文件就到了网站根目录下了

    解决方案,删除"FCKeditor\editor\filemanager"
    邀月注:本文版权由邀月和博客园共同所有,转载请注明出处。
    助人等于自助!  3w@live.cn
  • 相关阅读:
    JS 面向对象
    堆 栈
    考试题
    HTML Meta标签
    Nodejs 安装
    CSS3 背景图片的大小位置
    JS Math函数
    CSS3 巧用before after选择器
    计算机网络原理_数据链路层
    Asp.net_验证控件
  • 原文地址:https://www.cnblogs.com/downmoon/p/1205784.html
Copyright © 2020-2023  润新知