以文本方式查看主题

-  智睿软件_技术交流论坛  (http://zhirui.net/bbs/index.asp)
--  Web程序开发  (http://zhirui.net/bbs/list.asp?boardid=22)
----  FCKeditor编辑器上传漏洞(解决方案)  (http://zhirui.net/bbs/dispbbs.asp?boardid=22&id=198)

--  作者:zhirui
--  发布时间:2009-12-11 19:44:54
--  FCKeditor编辑器上传漏洞(解决方案)
1.打开引用页或嵌入调用页。例:http://127.0.0.1/FCKeditor/_samples/default.html
2.点击“插入/编辑图像”图标,打开“图像属性-网页对话框”,点击浏览服务器。
3.按F11键把FCKeditor窗口嘬大化,得到该窗口隐藏在地址栏中的URL:"http://127.0.0.1/FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/asp/connector.asp"

4.把Type=Image中的Image更改为"/",回车执行。结果显示为Userfiles中的所有文件夹及文件。
5.上传任意一个Asp文件,成功上传!

漏洞描述:

可以上传任意格式的文件。
v1.6之前的版本不仅"/"可用,还可用"../"直至站点根目录。
对于采用FCKeditor编辑器v1.6之后版的网站,只要短短几分钟,一个小马就可能跑入了服务器!

还可以新建一个.asa文件。一定要新建.asa .asp不行的。

然后传个小马.jpg 在.asa中,绝杀..

修复

修改\\editor\\filemanager\\browser\\default\\connectors\\asp中的commands.asp文件,如下:


在代码:

  \' Get the uploaded file name.
  sFileName = oUploader.File( "NewFile" ).Name
  sExtension = oUploader.File( "NewFile" ).Ext

后加入如下语句:


\'jmdcw 限制上传类型代码
sFileName=Mid(sFileName,1,Instr(sFileName,".")-1)
Dim FilterArray
Dim jm
Dim jmdcw
jmdcw=false
FilterArray=Split("BMP|JPG|JPEG|GIF|PNG|RAR|ZIP|SWF|WAV|MID|WMA","|")\'允许上传类型

For jm=0 to UBound(FilterArray)
if UCase(sExtension)=FilterArray(jm) Then
jmdcw=true
Exit For
Else
jmdcw=false
End if
Next
if jmdcw=false Then \'如果不在上传类型中,则弹出窗口
sErrorNumber = "202"
Else
sFileName=sFileName&"."&sExtension
\'下面的为文件原语句
sOriginalFileName = sFileName
Dim iCounter
.......... \'省略部分代码
if oUploader.ErrNum > 0 Then sErrorNumber = "202"
Exit Do
End if
Loop
End if \'在此加入IF结束语句
End if
Set oUploader = Nothing \'End