ThinkPHP 简介
ThinkPHP 是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,因为其易用性、扩展性,已经成长为国内颇具影响力的WEB应用开发框架
漏洞解析
漏洞引发的原因是框架对控制器名没有进行足够的检测,现拉取ThinkPHP v5.0.22 来进行测试
1 | 请求路由 |
跟踪到路由解析代码 \thinkphp\library\think\App.php
1 | /** |
1 | 漏洞测试结果 |
受影响版本范围
ThinkPHP 5.0.x < 5.0.23
ThinkPHP 5.1.x < 5.1.31
大家看一下相关链接中github版本列表,参考github release列表的更新内容,选择对自己升级影响最小的,最好的话就是直接升级到最新版本,要想不受漏洞影响,至少应该升级为
ThinkPHP 5.0.23
ThinkPHP 5.1.311
2
3
4
5
6
7
8
9
10
11
12composer require topthink/framework=v5.0.23
composer require topthink/framework=v5.1.31
升级后确认版本已更新
# composer show topthink/framework
name : topthink/framework
descrip. : the new thinkphp framework
keywords : framework, orm, thinkphp
versions : * v5.0.23
type : think-framework
...
相关链接
ThinkPHP composer包列表(composer 可以拉取的版本列表)
ThinkPHP github版本列表(更新内容说明参考)
ThinkPHP 官方漏洞说明