修复eWebEditor漏洞需要注意以下几个方面(大全总结)

[ 2009-09-26 11:25:53 | 作者: admin ]
字号: | |
http://hi.baidu.com/xinwg126/blog/item/998b0f186d9b680134fa4103.html

今天用了以下eWebEditor,根据网上一篇文章改了一下.因为怕被黑啊,网上都有eWebEditor漏洞的攻击方法,所以得改改,怕怕!

第一步:下载eWebEditor2.8 修正版

下载地址http://ewebeditor.webasp.net/download.asp
解压放到项目文件目录下. 为了方便使用我把文件改名为ewebeditor

第二步:修改相关调用到编辑器的ASP文件

<iframe ID="Editor" src="ewebeditor/ewebeditor.asp?Id=NewsContent&style=s_newssystem" frameborder="0" scrolling="no" width="100%" HEIGHT="100%"></iframe>

第三步:修改eWebEditor编辑器

1,使之支持插入分页符
打开eWebEditor/db/ewebeditor.mdb =>
打开eWebEditor_Button表=>
在倒数的21行
B_Title 字段的值为”显示或隐藏指导方针”修改为”插入系统分页符”
B_Event 字段的值为” showBorders()”修改为” insert('SplitPage')”
打开 WebEditor/Include/Editor.js
在777行之前插入
               case "SplitPage": // 插入分页符
                    insertHTML("<HR sysPageSplitFlag>");
                    break;
2,修改编辑器上传文件的保存路径
打开eWebEditor_Style表
找到你使用的样式所在的行,我用的是s_newssystem 修改 S_UploadDir 字段的值
我是改成../../../UpLoadFiles/
这样我用编辑器上传的图片等都会在根目录的UpLoadFiles文件夹下.

第四步:编辑器的安全性

1、先用admin登录到后台,修改密码,然后删除admin_login.asp文件,如果不需要上传的话,最好连upload.asp也一起删除掉。

2、删除Manage/ Library/ ewebeditor文件夹下所有以Admin_开头的文件.
删除Admin文件夹(里面是对我们无用的图片),删除Example 文件夹(eWebEditor示例).

以下是我的个人总结,只代表个人观点

1.修改eWebEditor的数据库名字.

2.删除eWebEditor后台管理文件

3.修改Upload.asp文件

在Upload.asp文件里面,找到这句话sAllowExt = Replace(UCase(sAllowExt), "ASP", "")

把这句话替换为
Do While InStr(sAllowExt, "ASP") or InStr(sAllowExt, "CER") or InStr(sAllowExt, "ASA") or InStr(sAllowExt, "CDX") or InStr(sAllowExt, "HTR")
      sAllowExt = Replace(sAllowExt, "ASP", "")
      sAllowExt = Replace(sAllowExt, "CER", "")
      sAllowExt = Replace(sAllowExt, "ASA", "")
      sAllowExt = Replace(sAllowExt, "CDX", "")
      sAllowExt = Replace(sAllowExt, "HTR", "")
      sAllowExt = Replace(sAllowExt, "CGI", "")
      sAllowExt = Replace(sAllowExt, "ASPX", "")'
      sAllowExt = Replace(sAllowExt, "ASP .JPG", "")
      sAllowExt = Replace(sAllowExt, "CER .JPG", "")
      sAllowExt = Replace(sAllowExt, "ASA .JPG", "")
      sAllowExt = Replace(sAllowExt, "CDX .JPG", "")
      sAllowExt = Replace(sAllowExt, "HTR .JPG", "")
      sAllowExt = Replace(sAllowExt, "CGI .JPG", "")
      sAllowExt = Replace(sAllowExt, "ASPX .JPG", "")
Loop

EWebEditor漏洞改进方法:

1.在EWebEditor中加入IP控制
<%
''建立连接
dim conn,connstr
connstr="driver={sql server};server=.;uid=yst06;pwd=yst06;database=yst06"
set conn=Server.Createobject("ADODB.Connection")
conn.open connstr
''***************************************************
''功能:实现字符长度的控制
''参数:cutstr
''***************************************************
function cutstr(tempstr,tempwid)
if len(tempstr)>tempwid then
cutstr=left(tempstr,tempwid)&"..."
else
cutstr=tempstr
end if
end function
userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If userip = "" Then
userip = Request.ServerVariables("REMOTE_ADDR")
end if
userip=cstr(userip)
''Response.write userip&"<br>"
''Response.write Instr(userip,"*")-2
''Response.End()
''ip="210.29.168.123"
''Response.write Instr(ip,"*")
''Response.end()
set rs=server.createobject("adodb.recordset")
sql="select * from IP where state=1"
rs.open sql,conn,1,1
do while not rs.eof
TrustIp = Trim(Rs("IP"))
if Instr(TrustIp,"*")=0 then
if TrustIp = userip then
UserIpTrusted = True
exit do
else
rs.movenext
end if
else
Position=Instr(TrustIp,"*")-2
if left(TrustIp,Position) = left(userip,Position) then
UserIpTrusted = True
exit do
else
rs.movenext
end if
end if
loop
if UserIpTrusted = False then
Response.write "<script language=''javascript''>alert(''非法的IP登录,请与管理员联系!'');location.href=''../index.asp'';</script>"
end if
%>
2.更改EWebEditor文件夹名称
比较麻烦,尚未实现
3.修改EWebEditor管理后台(用户名/密码/允许文件上传类型)
4.修改EWebEditor中文件过滤类型asp,cer,cdx,htr,stm,asa(Upload.asp)
'' 任何情况下都不允许上传asp,CER,ASA,CDX,HTR,stm脚本文件
sAllowExt = Replace(Replace(Replace(Replace(Replace(Replace(UCase(sAllowExt), "ASP", "**"), "CER", "**"), "ASA", "**"), "CDX", "**"), "HTR", "**"),"stm","**")(这个不建议,还是用上面其它人写的过滤代码吧)
5.修改EWebEditor的数据库路径,并在Include/Startup.asp中更改连接语句。

 一、判断网站是否使用了eWebEditor的简单方法:查看程序源代码,看看源码中是否存在类似“ewebeditor.asp?id=”语句,只要有此语句的存在,就能判断网站确实使用了WEB编辑器。

  二、该WEB编辑器可能被黑客利用攻击的安全漏洞:

  (1)管理员未对编辑器的数据库路径和名称进行修改,导致黑客可以利用编辑器默认路径直接对网站数据库进行下载。

  (2)管理员未对编辑器的用户登录路径进行修改,导致黑客可以利用网站数据库所获得的用户名和密码直接登陆编辑器管理后台。

  (3)该WEB编辑器上传程序存在的安全漏洞:

  请看Upload.asp文件,程序中有这么一段表达式:

  sAllowExt = Replace(UCase(sAllowExt), "ASP", "")任何情况下都不允许上传asp脚本文件

  但该语句仅过滤了ASP文件,未同时过滤ASA、CER等文件。上述两类文件同样可以构成ASP程序后门程序。黑客还能利用在上传程序类型中增加“aaspsp”来绕过此方法对扩展名的过滤,根据该语句的过滤规则,“aaspsp”过滤了“asp”字符后,反而变成了“asp”,这种类似的漏洞利用方法也可以运用在动网论坛7.0 sp2中。

  总结

  面对此种威胁网站管理员应该做好如下的防范措施:

  1、使用了eWebEditor编辑器的网站,应及时修改该编辑器的默认数据库路径和后缀名,防止数据库被黑客非法下载

  2、修改编辑器后台登陆路径和默认的登陆用户名和密码,防止黑客进入后台管理界面

  3、对Upload.asp语句进行修改,防止黑客利用其上传ASP木马从而获得WEB权限

  4、及时对网站服务器IIS配置中的应用程序扩展名映射进行整理,确保其它类型的文件不能在服务器网站上运行。
 一、判断网站是否使用了eWebEditor的简单方法:查看程序源代码,看看源码中是否存在类似“ewebeditor.asp?id=”语句,只要有此语句的存在,就能判断网站确实使用了WEB编辑器。

  二、该WEB编辑器可能被黑客利用攻击的安全漏洞:

  (1)管理员未对编辑器的数据库路径和名称进行修改,导致黑客可以利用编辑器默认路径直接对网站数据库进行下载。

  (2)管理员未对编辑器的用户登录路径进行修改,导致黑客可以利用网站数据库所获得的用户名和密码直接登陆编辑器管理后台。

  (3)该WEB编辑器上传程序存在的安全漏洞:

  请看Upload.asp文件,程序中有这么一段表达式:

  sAllowExt = Replace(UCase(sAllowExt), "ASP", "")任何情况下都不允许上传asp脚本文件

  但该语句仅过滤了ASP文件,未同时过滤ASA、CER等文件。上述两类文件同样可以构成ASP程序后门程序。黑客还能利用在上传程序类型中增加“aaspsp”来绕过此方法对扩展名的过滤,根据该语句的过滤规则,“aaspsp”过滤了“asp”字符后,反而变成了“asp”,这种类似的漏洞利用方法也可以运用在动网论坛7.0 sp2中。

  总结

  面对此种威胁网站管理员应该做好如下的防范措施:

  1、使用了eWebEditor编辑器的网站,应及时修改该编辑器的默认数据库路径和后缀名,防止数据库被黑客非法下载

  2、修改编辑器后台登陆路径和默认的登陆用户名和密码,防止黑客进入后台管理界面

  3、对Upload.asp语句进行修改,防止黑客利用其上传ASP木马从而获得WEB权限

  4、及时对网站服务器IIS配置中的应用程序扩展名映射进行整理,确保其它类型的文件不能在服务器网站上运行。
[最后修改由 admin, 于 2010-05-02 10:33:15]
评论Feed 评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=1292

这篇日志没有评论。

此日志不可发表评论。