zoukankan      html  css  js  c++  java
  • 彻底禁用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
  • 相关阅读:
    Two strings CodeForces
    Dasha and Photos CodeForces
    Largest Beautiful Number CodeForces
    Timetable CodeForces
    Financiers Game CodeForces
    AC日记——整理药名 openjudge 1.7 15
    AC日记——大小写字母互换 openjudge 1.7 14
    AC日记——将字符串中的小写字母换成大写字母 openjudge 1.7 13
    AC日记——加密的病历单 openjudge 1.7 12
    AC日记——潜伏着 openjudge 1.7 11
  • 原文地址:https://www.cnblogs.com/downmoon/p/1205784.html
Copyright © 2011-2022 走看看