thinkphp v5.0.11漏洞_漏洞预警通报【高危】

本文详细分析了ThinkPHP 5.0.11版本中的一个高危远程代码执行漏洞,涉及Request类的method函数和param函数,以及如何通过构造特定请求来覆盖filter属性实现代码执行。修复建议包括升级到5.0.24及以上版本或手动修改Request类代码。
摘要由CSDN通过智能技术生成

1 漏洞标题

ThinkPHP5远程代码执行漏洞

2 漏洞描述

ThinkPHP 是一个快速、兼容而且简单的轻量级国产 PHP 开发框架。ThinkPHP 从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进。

近日,ThinkPHP 官方发布了安全更新,其中修复了存在 ThinkPHP 5.0.0 ~ 5.0.23 版本中的远程代码执行漏洞:

https://blog.thinkphp.cn/910675

3 漏洞属性

【漏洞评级】高危

【影响范围】ThinkPHP 5.0.x

4 漏洞检测与确认

本文主要以官网下载的5.0.X 完整版(thinkphp_5.0.23_with_extend.zip)为例分析

Thinkphp处理请求的关键类为

Request(thinkphp/library/think/Request.php)

该类可以实现对HTTP请求的一些设置。

其中成员函数method用来获取当前请求类型,其定义如下:

88d116afa1f3f3dc6245243c8e5e4b1e.png

该函数主要在其他成员函数(例如isGet、isPost、isPut等)中被用来做请求类型判断

a39fdc4fed6a8d849fad6ed8f22edf13.png

thinkphp支持配置“表单伪装变量”,默认情况下该变量值为_method 

47593b73360ee92dc570c304e5be2626.png

因此在method()中,可以通过“表单伪装变量”进行变量覆盖实现对该类任意函数的调用,并且$_POST作为函数的参数传入。

c3e99cfce0b36c250ed8c929fcaa9786.png

Request类的构造函数定义如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值