当前位置:论坛首页 > Linux面板 > Linux面板教程

【业内漏洞预警】ThinkPHP 5.X 代码执行漏洞

发表在 Linux面板2019-1-11 20:18 [复制链接] 1 300

原文地址:https://nosec.org/home/detail/2163.html

2019年1月11日,thinkphp官网发布了安全更新,修复了一个远程代码执行漏洞。主要影响的版本为5.0.0~5.0.23版本。

此次爆出漏洞的ThinkPHP 5.x版本是官方于2015年发布的新一代框架,其中5.0版本于2016年的9月份布。在不久之前,ThinkPHP 5.x版本就曝出远程代码执行漏洞。短短两三个月后,ThinkPHP 5.0 就又曝出了新的远程代码执行漏洞,这说明其框架在安全方面有较大缺陷,预计在日后会遭受更严峻的考验。

ThinkPHP诞生于2006年,是一个国产开源的PHP开发框架,其借鉴了Struts框架的Action对象,同时也使用面向对象的开发结构和MVC模式。ThinkPHP可在Windows和Linux等操作系统运行,支持MySql,Sqlite和PostgreSQL等多种数据库以及PDO扩展,是一款跨平台,跨版本以及简单易用的PHP框架。

目前FOFA系统最新数据(一年内数据)显示全球范围内共有184604个ThinkPHP网站对外开放服务。中国大陆地区使用数量最多,共有134531台,美国第二,共有25106台,中国香港特别行政区第三,共有16978台,日本第四,共有1396台。

全球范围内ThinkPHP网站分布情况(仅为分布情况,非漏洞影响情况)

全球范围内ThinkPHP网站分布情况(仅为分布情况,非漏洞影响情况)

中国大陆地区浙江省使用用数量最多,共有78058台;北京市第二,共有25191台,广东省第三,共有6180台,上海市第四,共有3584台,四川省第五,共有2983台。

中国大陆范围内ThinkPHP网站分布情况(仅为分布情况,非漏洞影响情况)

危害等级严重漏洞原理

本次以5.0.20版本为例。

本次漏洞触发点在Request.php文件里的method方法中,该方法的功能主要是判断请求类型。

跟进method方法,这里判断是否存在'var_method',如果存在则执行$this->{$this->method}($_POST);

在config.php中,可以看到 'var_method' 是表单请求伪变量,其默认值为 '_method'。

这里可以POST _method=__construct用构造函数来进行变量覆盖,实现命令执行。

在构造函数中,会判断其传入参数的key是否是该类属性,如果是,则将对应的value赋值给该属性,可以进行变量覆盖。

再看全局过滤函数filtervalue,根据上一步的变量覆盖,POST filter[]=system,将$filter赋值为array('system'),同时POST 123456=whoami,触发过滤函数,调用call_user_func方法,执行whoami命令。

复现结果:

漏洞影响

目前漏洞影响版本号包括:

5.x <= 5.0.23

以下基于ThinkPHP 5 二次开发的内容管理系统,很可能受到该漏洞影响,建议厂商及时更新。



  1. AdminLTE后台管理系统
  2. layui后台管理系统
  3. thinkcmf
  4. H-ui.admin后台管理系统
  5. tpshop
  6. FsatAdmin
  7. eyoucms
  8. LarryCMS后台管理系统
  9. tpadmin后台管理系统
  10. snake后台管理系统
  11. ThinkSNS
  12. DolphinPHP后台管理系统
  13. WeMall商城系统
  14. CLTPHP
  15. 齐博CMS
  16. DSMALL
  17. YFCMF
  18. HisiPHP后台管理系统
  19. Tplay后台管理系统
  20. lyadmin后台管理系统
  21. haoid后台管理系统
复制代码




博客地址: 博客
如果问题完美解决了,可以给我小强打赏,6元就够我吃个泡面了,感恩不尽。
使用道具 举报 只看该作者 回复

准内测组成员

发表于 2019-1-14 13:38:15 | 显示全部楼层
已更新 多谢提醒
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

【求助贴,请有以下信息】

①错误提示截图;

②操作系统版本;

③环境信息;

信息详细,秒速帮你处理

上班时间:周一至周六 9:00~18:30

如果紧急,官网后台提交付费工单解决

快速回复 返回顶部 返回列表