漏洞利用
利用eWebEditor获得WebShell的步骤大致如下:
1. 确定网站使用了eWebEditor。一般来说,只要留意发表帖子(文章)的页面是否有类似做了记号的图标,就可以大致判断出来。
2. 查看源代码,找到eWebEditor的路径。点击“查看源代码”,看看源码中是否存在类似“”的语句。只有发现这样的语句,才能真正确定网站使用了eWebEditor。然后记下src=“***”中的内容,这就是eWebEditor路径。
3. 访问eWebEditor的管理登录页面。默认管理页面为admin_login.asp,和ewebeditor.asp在同一目录下。以上面的路径为例,访问地址为:https://www.***.net/edit/admin_login.asp,看看是否出现登录页面。如果没有看到,说明管理员已经删除了管理登录页面——那就走人,换个地方试试。不过,我很少看到有哪个管理员删了这个页面,默认用户名admin、密码admin888,一试便知(如果不是默认账户,请看后文)。
4. 增加上传文件类型。点击“样式管理”,随便选择列表中靠下的某个样式的“设置”。为什么要选靠下的?因为eWebEditor自带的样式不允许修改,当然也可以拷贝一个新样式来设置。然后在上传的文件类型中增加“asa”类型。
5. 上传ASP木马,获得WebShell。将ASP木马的扩展名修改为asa,就可以直接上传了。点击“预览”,然后选择“插入其它文件”的按钮即可。
漏洞原理
漏洞原理其实很简单,看Upload.asp文件中的这句代码:
任何情况下都不允许上传asp脚本文件
sAllowExt = Replace(UCase(sAllowExt), "ASP", "")
eWebEditor仅仅过滤了ASP文件。当初第一次使用eWebEditor时就在纳闷:既然作者已经知道asp文件需要过滤,为什么不同时过滤asa、cer等文件呢?也许这就是对免费用户不负责任的表现吧。
高级应用
eWebEditor的漏洞利用还有一些技巧:
1. 使用默认用户名和密码无法登录。
试试直接下载db目录下的ewebeditor.mdb文件,用户名和密码在eWebEditor_System表中,经过md5加密。如果无法下载或无法破解,那就只能认了。
2. 加了asa类型后发现还是无法上传。
这应该是站长懂点代码,自己修改了Upload.asp文件。但按常人的思维习惯,往往会直接在sAllowExt = Replace(UCase(sAllowExt), "ASP", "")一句上修改。曾见过一位站长这样修改:
sAllowExt = Replace(Replace(Replace(Replace(Replace(UCase(sAllowExt), "ASP", ""), "CER", ""), "ASA", ""), "CDX", ""), "HTR", "")
猛一看什么都过滤了,但只要在上传类型中增加“aaspsp”,就可以直接上传asp文件了。是不是天才的想法?“aaspsp”过滤了“asp”字符后,反而变成了“asp”!顺便透露一个秘密,动网论坛7.0 sp2中也可以利用类似的方法绕过对扩展名的过滤。
3. 上传了asp文件后,却发现该目录没有运行脚本的权限。
其实上传类型可以改,上传路径不是也可以修改吗?仔细看看图四。
4. 已经使用了第2点中的方法,但asp类型还是无法上传。
看来站长肯定是一位asp高手,但这还有最后一招:看到图三中的“远程类型”了吗?eWebEditor能够设定自动保存远程文件的类型,可以加入asp类型。但如何让远程访问的asp文件以源码形式保存?方法很多,最简单的是将IIS中的“应用文件映射”中的“asp”删除。
后记
根据经验,几乎只要能进入eWebEditor的后台管理,基本上都可以获得WebShell。在Google上搜索“ewebeditor.asp?id=”能发现长达十多页的相关信息,大致抽查了其中几个,成功率约为50%。还不错吧?oblg 2.52版以前的版本也使用eWebEditor,可以搜索几个来练练手。要命的是eWebEditor的官方网站和帮助文件中根本没有这方面的安全提示。另外,官方提供的测试系统并不存在类似的漏洞,看来不是他们不知道,而是没有把免费用户的网络安危放在心上。
