编辑器的一些默认特征:
默认登陆admin_login.asp
默认数据库db/ewebeditor.mdb
默认帐号admin 密码admin或admin888
baidu、google搜索“ewebeditor.asp?id=”关键字十分重要,有人搜索"eWebEditor - eWebSoft在线编辑器",根本搜索不到几个~
利用eWebEditor获得WebShell的常用步骤:
1、确定网站使用了eWebEditor。一般来说,我们只要注意发表帖子(文章)的页面是否有类似做了记号的图标,就可以大致做出判断了。
2、查看源代码,找到eWebEditor的路径。点击“查看源代码”,看看源码中是否存在类似
<iframe ID='eWebEditor1' src='/edit/ewebeditor.asp?id=content&style=mini' frameborder=0 scrolling=no width='560' HEIGHT='360'></iframe>
的语句。其实只有发现了存在这样的语句了,才可以真正确定这个网站使用了eWebEditor。然后记下src='***'中的“***”,这就是eWebEditor路径。
3、访问eWebEditor的管理登录页面。eWebEditor的默认管理页面为admin_login.asp,和ewebeditor.asp在同一目录下。以上面的路径为例,我们访问的地址为:http://www.***.net/edit/admin_login.asp,看看是否出现了登录页面。
如果没有看到这样的页面,说明管理员已经删除了管理登录页面,也可以试试admin_style.asp文件。我很少看到有哪个管理员删了这个页面,试试默认的用户名:admin,密码:admin888。怎么样?成功了吧(不是默认账户请看后文)!
4、增加上传文件类型。点击“样式管理”,随便选择列表中底下的某一个样式的“设置,为什么要选择列表中底下的样式?因为eWebEditor自带的样式是不允许修改的,当然你也可以拷贝一个新的样式来设置。然后在上传的文件类型中增加“asa”类型。
5、上传ASP木马,获得WebShell。接下来将ASP木马的扩展名修改为asa,就可以简单上传你的ASP木马了。不要问我怎么上传啊,看到 “预览” 了吗?点击“预览”,然后选择“插入其它文件”的按钮就可以了。
灵活技巧:
eWebEditor的漏洞利用还有一些技巧:
1、使用默认用户名和密码无法登录。
试访问下载db/ewebeditor.mdb文件,用户名和密码在eWebEditor_System表中,经过了md5加密,如果无法下载或者无法破解,那就当自己的运气不好了,另外如果为asp数据库可以写入一句话木马取SEHLL。
2、加了asa类型后发现还是无法上传。
应该是站长懂点代码,自己修改了Upload.asp文件,但是没有关系,按照常人的思维习惯,往往会直接在sAllowExt = Replace(UCase(sAllowExt), "ASP", "")一句上修改,我就看见过一个站长是这样修改的:sAllowExt = Replace(Replace(Replace(Replace(Replace(UCase(sAllowExt), "ASP", ""), "CER", ""), "ASA", ""), "CDX", ""), "HTR","")
猛一看什么都过滤了,但是我们只要在上传类型中增加“aaspsp”,就可以直接上传asp文件了。呵呵,是不是天才的想法?“aaspsp”过滤了“asp”字符后,反而变成了“asp”!顺便告诉大家一个秘密,其实动网论坛7.0 sp2中也可以利用类似的方法绕过对扩展名的过滤。
3、上传了asp文件后,却发现该目录没有运行脚本的权限。
呵呵,真是好笨啊,上传类型可以改,上传路径不是也可以修改的吗?
4、已经使用了第2点中的方法,但是asp类型还是无法上传。
看来站长肯定是一个写asp的高手,但是我们还有最后一招来对付他:编辑区中有“远程文件上传”,eWebEditor能够设定自动保存远程文件的类型,我们可以加入1.gif.asp类型文件,在“网络”栏中写入已存在的asp木马地址,如:http://www.***.com/1.gif.asp,同样可以取得SEHLL(ewebeditor v6.0.0存在)。但是如何才能让远程访问的asp文件能够以源码形式保存呢?方法是很多的,最简单的方法是将IIS中的“应用文件映射”中的 “asp”删除。
5、eWebEditor在线编辑器可以设置上传路径,极大的方便了建站工作者,不过其过滤不严格,导致我们可以利用它浏览整个网站目录或者跳到其它目录并且可以删除服务器文件。简单说下利用方法,拷贝一份样式进行设置,将其上传路径设置为"/"。提交之后点上传文件管理选择刚才设置的样式就可以看到网站根目录的文件并且可以删除文件与文件夹了。
我常的方法是:在上传文件管理中随便找一个样式查看,在地址栏上会显示这样的连接webeditor/admin_uploadfile.asp?id=34这时你可以在地址栏后面加上&dir=..然后& dir=../..一级一级的向上一级目录跳,也许就会有以外的收获。
6、黑吃黑——如果管理员后台被删又或者密码被前人改了MD5破解不出来,但前人取SHELL时添加设置的诸如asa|cer|aaspsp等上传类型还在(别人添没添加默认数据库中都有),可以使用以下网址直接上传,黑吃黑!
ewebeditor/ewebeditor.asp?id=conten&style=standard1
注其中的standard1是样式名,前人是添加在哪个里面就添哪个。
7、 ewebeditor2.7以下存在注入漏洞(不过也有人说ewebeditor7.0以下版本都在注入漏洞,大家自己试试),例:http://www.***.com/edit/ewebeditor.asp?id=contentid& style=standard'
我试了好几款工具,发现只有pangolin可以注入,啊D只能发现注入不能继续猜解。
eweb默认的管理员表是:ewebeditor_system
这个表下的默认两个列名为:sys_UserName和sys_userpass
需要手动添加。
8、ewebeidtor的修改版、lite版、2.1.6版的ewebeditor存在一个注入漏洞,之后一个版也存在这样的问题,针对没有后台、有默认数据库或者破不了密码的时候此方法非常有效,漏洞见下面的upload解释我这里就不多说了,只讲利用方法:
http://www.***.com/ewebeditor/upload.asp?action=save&type=IMAGE&style=fox' union select S_ID,S_NameaseHref,S_ContentPath,S_AutoRemote,S_ShowBorder from ewebeditor_style where s_name='standard' and 'a'='a union要之前的select结果为空(这个好办)同时要知道字段数(下载到数据库查也能查到了) ,S_Dir,S_CSS,S_UploadDir,S_Width,S_Height,S_Memo,S_IsSys,S_FileE xt,S_FlashExt, [S_ImageExt]+'|cer',S_MediaExt,S_RemoteExt,S_FileSize,S_FlashSize,S_ImageSize,S_MediaSize,S_RemoteSize,S_StateFlag,S_DetectFromWord,S_InitMode,S_BaseUrl,S_UploadObject,S_AutoDir,S_B
我使用[S_ImageExt]+'|cer'使S_ImageExt中加入"|cer"串。
用NC发包就可以上传木马了。
只要能进入eWebEditor的后台管理,基本上都可以获得WebShell。oblg 2.52版以前的版本也是使用eWebEditor,其实官方提供的测试系统并不存在类似的漏洞,不是他们不知道,而是根本就没有把免费用户的网站安危放在心上!
几处漏洞:
一、请看Upload.asp文件:
Sub InitUpload()
sType = UCase(Trim(Request.QueryString("type")))
sStyleName = Trim(Request.QueryString("style"))
sSql = "select * from ewebeditor_style where s_name='" & sStyleName &
"'"
oRs.Open sSql, oConn, 0, 1
If Not oRs.Eof Then
sUploadDir = oRs("S_UploadDir")
sUploadDir = Replace(sUploadDir, "\", "/")
If Right(sUploadDir, 1) <> "/" Then
sUploadDir = sUploadDir & "/"
End If
Select Case sType
Case "FILE"
sAllowExt = oRs("S_FileExt")
nAllowSize = oRs("S_FileSize")
Case "MEDIA"
sAllowExt = oRs("S_MediaExt")
nAllowSize = oRs("S_MediaSize")
Case "FLASH"
sAllowExt = oRs("S_FlashExt")
nAllowSize = oRs("S_FlashSize")
Case Else
sAllowExt = oRs("S_ImageExt")
nAllowSize = oRs("S_ImageSize")
End Select
Else
OutScript("parent.UploadError('无效的样式ID号,请通过页面上的链接进行操作!')")
End If
oRs.Close
' 任何情况下都不允许上传asp脚本文件
sAllowExt = Replace(UCase(sAllowExt), "ASP", "")
(1)、End SubsStyleName变量是直接从style中读取到,没有经过任何过滤,我们可以通过 union 增加一个 sAllowExt类型 构造
(2)、因为eWebEditor仅仅过滤了ASP文件。程序员就是程序员,莫不知IIS默认用asp.dll处理的不仅仅有asp还有asa、cer、cdx、htr等等。挨打!
二、漏洞文件admin_style.asp相关代码如下:
If sStyleUploadDir = "" or Get_TrueLen(sStyleUploadDir) > 50 Then
Go_Error "上传路径不能为空,且不大于50个字符长度!"
End If
If IsSafeStr(sStyleUploadDir) = False Then
Go_Error "上传路径请勿包含特殊字符!"
End If
对上传路径判断了不能为空且不能超过50个长度字符,并且用了IsSafeStr()函数进行检测,IsSafeStr()函数在Include/Startup.asp文件中代码如下:
Function IsSafeStr(str)
Dim s_BadStr, n, i
s_BadStr = "' &<>?*,;:()`~!@#$^*{}[]|+-=" & Chr(34) & Chr(9) & Chr(32)
n = Len(s_BadStr)
IsSafeStr = True
For i = 1 To n
If Instr(str, Mid(s_BadStr, i, 1)) > 0 Then
IsSafeStr = False
Exit Function
End If
Next
End Function
过滤了许多特殊字符,但是没有过滤脚本攻击中经常用到的跳转目录的"../"或者直接转到网站根目录的"/"字符。
漏洞修补:
1、针对默认账号密码漏洞当然是修改一下默认的admin账号密码了,后台有这个功能的,就不要偷懒了。最好将admin_login.asp后台地址也修改一下或者直接KILL掉。
2、针对默认数据库漏洞当然是修改一下默认的数据库名称或者路径,可以考虑防下载处理,另外账号密码不要太简单,防止暴破出来。
3、针对上传漏洞的修补大家很可能是把asp、cer、asa、cdx等通通加进去过滤一番,其实sAllowExt = Replace(UCase(sAllowExt), "ASP", "")这样子过滤我们还可以在上传图片类型里加一个aaspsp格式,这样经过replace函数过滤后的格式正好是asp,其它的同理。另外如果网站支持.NET攻击者也可能上传aspx格式的木马或者支持php的系统上传一个php木马,这个就看具体情况啦,个人认为像这样的上传漏洞如果可能最好严格限定图片上传格式,即限定为只能为哪些格式,而不是单个的过滤asp这些危险的格式;另外最好对上传后生成的图片文件的格式再进行检测,如果非法就进行处理,这个看程序员的个人爱好了。
4、针对上传路径过滤不严漏洞解决方法当然是再过滤一下啊,但是如果在IsSafeStr()函数里把"/"过滤掉了以后上传路径设为UploadFile/也会报错的,所以还是在admin_style.asp文件里判断是否为"/"或者是跳转目录的"../",这样比较保险。
5、用Session验证是很难欺骗的,但在某些条件下也可能被利用,个人认为最好还是用Cookies与Session双重验证,同时限制非法人员直接访问。
eWebEditor是个内嵌网页的可见及可得HTML编辑器,架构设计得很巧妙,结构高度可配置,美观实用,号称国内最强大在线编辑器。分商业和免费两种版本,其免费版被z-blog、pjblog等众多流行的blog程序内嵌。
eWebEditor 存在漏洞网上早在盛传,并有黑客写出了利用eWebEditor攻击网站的教程,他们的工作流程一般为:第一步,搜索攻击目标;第二步,获取 WebShell;第三步,控制服务器。我认为黑客们仍然高估了eWebEditor,其漏洞就像一个未穿上衣的×××在大街上行走一样惹眼,eWebEditor极其低级的漏洞不知道是程序员故意OR无意对免费版本留下的。网上有文“发现官方提供的测试系统并不存在类似的漏洞,看来不是他们不知道,而是没有把免费用户的网络安危放在心上!”
eWebEditor配置不当会使其成为网站中的隐形×××。网站之所以被利用,是因为将免费的版本不做任何修改拿来就用,不修改数据库名称,甚至连初始密码都丝毫未动。