漏洞原理
这个漏洞的利用原理其实并不复杂,核心就在 Upload.asp 文件里。原本的逻辑是“任何情况下都不允许上传asp脚本文件”,对应的代码是:
sAllowExt = Replace(UCase(sAllowExt), "ASP", "")
问题就出在这里:只过滤了 ASP 这一种后缀,而 asa、cer、cdx、htr 这些同样能被IIS当作脚本执行的扩展名,全被放过了。当初第一次用这个编辑器时就纳闷:既然作者已经意识到asp需要过滤,为什么不同时把其他危险类型一并处理掉?也许是对免费用户不太上心吧。
正确的修补方法,应该用更完整的列表来做校验:
dim sFileType,Un_FileType,FileType
sFileType= "asp|cer|asa|cdx|htr"
Un_FileType = split(sFileType,"|")
For FileType=0 To Ubound(Un_FileType)
if instr(ucase(sAllowExt),ucase(Un_FileType(FileType)))>0 Then
Response.Write ""
Response.end
end if
next
下面内容来自网络:
不少站长在部署eWebEditor时可能没注意到,这个编辑器一旦配置不当,就成了网站里的隐形冲击波。这个漏洞最早被发现,是在去年的一次渗透测试中,当时已经无计可施,结果发现站点用了eWebEditor,很容易就拿下了WebShell。后来又有好几次利用它成功入侵的经历,这才觉得应该把方法整理出来,提醒各位站长赶紧检查自己的站点——不然下一个被黑的就是你。
漏洞利用
利用eWebEditor获得WebShell的步骤大致如下:
1. 确定网站使用了eWebEditor。 一般来说,看发表帖子或文章的页面,有没有类似做了记号的图标,基本能猜个八九不离十。
2. 查看源代码,找到eWebEditor的路径。 点击“查看源代码”,搜索类似 这样的语句。只有看到这个,才能确认确实用了eWebEditor。记下 src 中的路径,这就是关键入口。
3. 访问eWebEditor的管理登录页面。 默认管理页面是 admin_login.asp,和 ewebeditor.asp 在同一目录。假设路径是 /edit/,那访问 https://www.***.net/edit/admin_login.asp 试试。如果没看到登录页面,说明管理员删了它——那就别浪费时间了,换目标吧。不过现实中,删这个页面的站长凤毛麟角。默认用户名 admin,密码 admin888,试试看?成功率相当高(如果不是默认账户,见后文处理)。
4. 增加上传文件类型。 进入“样式管理”,随便选一个列表底部的样式,点“设置”。为什么选底下的?因为eWebEditor自带的样式不允许修改,但底部的通常是自定义样式,可以调整。在“上传的文件类型”中增加 asa 类型。
5. 上传ASP木马,获得WebShell。 把ASP木马的扩展名改成 .asa,然后点击“预览”,选择“插入其它文件”按钮,就能上传了。别问怎么上传,操作起来很直观。
漏洞原理
漏洞的利用原理很简单,还是看 Upload.asp 文件:
sAllowExt = Replace(UCase(sAllowExt), "ASP", "")
因为eWebEditor只过滤了 ASP。记得第一次用这个编辑器时就纳闷:既然作者已经知道asp文件需要过滤,为什么不同时过滤 asa、cer 等文件?也许这就是对免费用户不负责任的表现吧!
高级应用
eWebEditor漏洞利用还有一些进阶技巧:
1. 默认用户名和密码无法登录
那就试试直接下载 db 目录下的 ewebeditor.mdb 文件。用户名和密码存在 eWebEditor_System 表中,经过MD5加密。如果下载不了或者破解失败,那只能认栽。
2. 加了asa类型后发现还是无法上传
说明站长懂点代码,自己改了 Upload.asp。不过常见的修改思路都是基于那句过滤做加法,比如有人这样改:
sAllowExt = Replace(Replace(Replace(Replace(Replace(UCase(sAllowExt), "ASP", ""), "CER", ""), "ASA", ""), "CDX", ""), "HTR", "")
猛一看什么危险后缀都过滤了,但只需在上传类型中增加 aaspsp,过滤掉 asp 后反而变成了 asp。是不是很巧妙?顺带一提,动网论坛7.0 sp2里也可以用类似方法绕过扩展名过滤。
3. 上传了asp文件后,却发现该目录没有运行脚本的权限
这好办——上传类型能改,上传路径当然也能改。仔细看图四,修改一下保存路径就解决了。
4. 已经用了第2点的方法,但asp还是无法上传
看来站长是个ASP高手。不过还有最后一招:看“远程类型”设置。eWebEditor能设定自动保存远程文件的类型,加入 asp 类型。至于如何让远程访问的asp文件以源码形式保存?方法很多,最简单的就是把IIS中“应用文件映射”里的asp扩展名删掉。
后记
只要能进入eWebEditor的后台管理,基本都能拿到WebShell。在Google上搜 ewebeditor.asp?id= 可以看到长达十多页的相关信息,影响范围之广可见一斑。
