服务器维护,服务器代维,安全设置,漏洞扫描,入侵检测服务

运维之家

 找回密码
 注册
搜索
查看: 5068|回复: 2

Ewebeditor2.8.0最终版删除任意文件漏洞

[复制链接]
dirtysea 发表于 2009-8-15 01:21:35 | 显示全部楼层 |阅读模式
这个漏洞可以很鸡肋,也可以很致命,关键看你怎么利用!

此漏洞存在于Example\NewsSystem目录下的delete.asp文件中,这是ewebeditor的测试页面,无须登陆可以直接进入,看这些代码:
' 把带"|"的字符串转为数组
  • Dim aSavePathFileName
  • aSavePathFileName = Split(sSavePathFileName, "|")

复制代码 【注:此代码当前贴于 http://bbs.xdadmin.com
' 删除新闻相关的文件,从文件夹中
  • Dim i
  • For i = 0 To UBound(aSavePathFileName)

复制代码 【注:此代码当前贴于 http://bbs.xdadmin.com
' 按路径文件名删除文件
  • Call DoDelFile(aSavePathFileName(i))
  • Next

复制代码 【注:此代码当前贴于 http://bbs.xdadmin.com
而aSavePathFileName是前面从数据库取出来的:
  • sSavePathFileName = oRs("D_SavePathFileName")

复制代码 【注:此代码当前贴于 http://bbs.xdadmin.com
看看D_SavePathFileName是怎么添加到数据库里的,在addsave.asp(modifysave.asp)里:
  • sSavePathFileName = GetSafeStr(Request.Form("d_savepathfilename"))
  • oRs("D_SavePathFileName") = sSavePathFileName

复制代码 【注:此代码当前贴于 http://bbs.xdadmin.com
居然过滤了,是GetSafeStr函数,再看看这个函数,在Startup.asp里:
  • Function GetSafeStr(str)
  • GetSafeStr = Replace(Replace(Replace(Trim(str), "'", ""), Chr(34), ""), ";", "")
  • End Function

复制代码 【注:此代码当前贴于 http://bbs.xdadmin.com
无语,这不是过滤字符型注入的函数么?放这里什么用也没有啊!既然路径没有过滤,那就可以直接定义了,构造一个提交页面,其中d_savepathfilename自己任意赋值(要删除多个文件,用|隔开即可)。试试../../eWebEditor.asp,提交后删除该新闻,于是主目录下的eWebEditor.asp不见了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|运维之家

GMT+8, 2024-4-20 16:55 , Processed in 0.147508 second(s), 14 queries .

Powered by Dirtysea

© 2008-2020 Dirtysea.com.

快速回复 返回顶部 返回列表