ThinkPHP V5.0.5漏洞_ThinkPHP漏洞分析与利用

v2-d2e73ff8129c76b1537eb1e3bb073625_1440w.jpg?source=172ae18b

一、组件介绍

1.1 基本信息

ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,遵循Apache 2开源协议发布,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。

ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP 5.0以上版本,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展。

1.2 版本介绍

ThinkPHP发展至今,核心版本主要有以下几个系列,ThinkPHP 2系列、ThinkPHP 3系列、ThinkPHP 5系列、ThinkPHP 6系列,各个系列之间在代码实现及功能方面,有较大区别。其中ThinkPHP 2以及ThinkPHP 3系列已经停止维护,ThinkPHP 5系列现使用最多,而ThinkPHP 3系列也积累了较多的历史用户。版本细分如下图所示:

v2-d8f7b313a661882cbe630464ca25f923_b.jpg

二、高危漏洞介绍

通过对ThinkPHP漏洞的收集和整理,过滤出其中的高危漏洞,可以得出如下列表:

v2-ddf198b8e8b633ff82e513daa5564df9_b.jpg

从上表数据来看,ThinkPHP 3系列版本的漏洞多是2016/2017年被爆出,而ThinkPHP 5系列版本的漏洞基本为2017/2018年被爆出,从2020年开始,ThinkPHP 6系列的漏洞也开始被挖掘。

从中可以看出,ThinkPHP近年出现的高风险漏洞主要存在于框架中的函数,这些漏洞均需要在二次开发的过程中使用了这些风险函数方可利用,所以这些漏洞更应该被称为框架中的风险函数,且这些风险点大部分可导致SQL注入漏洞,所以,开发者在利用ThinkPHP进行Web开发的过程中,一定需要关注这些框架的历史风险点,尽量规避这些函数或者版本,则可保证web应用的安全性。

三、漏洞利用链

3.1、暴露面梳理

根据ThinkPHP的历史高危漏洞,梳理出分版本的攻击风险点,开发人员可根据以下图标,来规避ThinkPHP的风险版本,如下ThinkPHP暴露面脑图。

v2-239aab9195377cd713a39119f6775768_b.jpg

3.2、利用链总结

基于暴露面脑图,我们可以得出几种可以直接利用的ThinkPHP框架漏洞利用链,不需要进行二次开发。

3.2.1、ThinkPHP 2.x/3.0 GetShell

v2-e30517808d9dd82b923f7d5657ce4688_b.jpg

ThinkPHP低于3.0 - GetShell

  • ThinkPHP 低版本可以使用以上漏洞执行任意系统命令,获取服务器权限。

3.2.2、ThinkPHP 5.0 GetShell

v2-52ba7fe85b0201a071569fb263f34426_b.jpg

ThinkPHP 5.0.x - GetShell

  • 首先明确ThinkPHP框架系列版本。
  • 根据ThinkPHP版本,如是5.0.x版本,即可使用ThinkPHP 5.x远程代码执行漏洞,无需登录,即可执行任意命令,获取服务器最高权限。

3.2.3、ThinkPHP 5.1 GetShell

v2-c68cdd62df0376c8f8f476675fca19db_b.jpg

ThinkPHP 5.1.x - GetShell

  • 1. 首先明确ThinkPHP框架系列版本。
  • 2. 根据Th
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值