eWebEditor是基于浏览器的、所见即所得的在线HTML编辑器。她能够在网页上实现许多桌面编辑软件(如:Word)所具有的强大可视编辑功能。WEB开发人员可以用她把传统的多行文本输入框<TEXTAREA>替换为可视化的富文本输入框,使最终用户可以可视化的发布HTML格式的网页内容。eWebEditor!已基本成为网站内容管理发布的必备工具!
此漏洞存在于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不见了!
Ewebeditor2.8.0
暂无
<a href=http://www.ewebeditor.net/ target=_blank rel=external nofollow>http://www.ewebeditor.net/</a>
暂无评论