组件介绍
ThinkPHP
ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架。遵循Apache2开源协议发布,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式;可以支持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展。
版本介绍
ThinkPHP发展至今,核心版本主要有以下几个系列,即ThinkPHP2系列、ThinkPHP3系列、ThinkPHP5系列、ThinkPHP6系列,各个系列之间在代码实现及功能方面,有较大区别。其中ThinkPHP2以及ThinkPHP3系列已经停止维护,ThinkPHP5系列现使用最多,而ThinkPHP3系列也积累了较多的历史用户。
使用量及使用分布
根据全网数据统计,使用ThinkPHP的网站多达15万余个,其中大部分集中在国内,约占使用量的75%以上。其中,浙江、北京、山东、广东四省市使用量最高,由此可见,ThinkPHP在国内被广泛应用。通过网络空间搜索引擎的数据统计和柱状图表,如下图所示。
高危漏洞介绍
通过对ThinkPHP漏洞的收集和整理,过滤出其中的高危漏洞,可以得出如下列表:
从上表数据来看,ThinkPHP3系列版本的漏洞多是/年被爆出,而ThinkPHP5系列版本的漏洞基本为/年被爆出,从年开始,ThinkPHP6系列的漏洞也开始被挖掘。
其中,年与年交替之际,ThinkPHP爆出了两枚重量级的远程代码执行漏洞,这两枚漏洞均不需要进行二次开发即可利用,攻击者可通过框架中已有逻辑,直接构造恶意流量,在服务器中执行任意代码,获取服务器的最高权限。时至今日,这两枚漏洞的利用在全网中仍非常活跃,且被誉为ThinkPHP框架中的“沙皇炸弹”。
可以看出ThinkPHP近年出现的高风险漏洞主要存在于框架中的函数,这些漏洞均需要在二次开发的过程中使用了这些风险函数方可利用,所以这些漏洞更应该被称为框架中的风险函数,且这些风险点大部分可导致SQL注入漏洞,所以,开发者在利用ThinkPHP进行Web开发的过程中,一定需要