[代码审计]ThinkPHP5的文件包含漏洞

本文详细分析了ThinkPHP5框架存在的文件包含漏洞,涉及影响版本为5.0.0至5.1.10。漏洞源于模板变量赋值过程中的变量覆盖问题,允许攻击者通过特定payload控制文件包含路径,导致安全风险。修复方案是修改代码以避免变量覆盖,确保安全。
摘要由CSDN通过智能技术生成

漏洞影响范围

加载模版解析变量时存在变量覆盖问题,导致文件包含漏洞的产生
漏洞影响版本:5.0.0<=ThinkPHP5<=5.0.18 、5.1.0<=ThinkPHP<=5.1.10

tp框架搭建

tp框架由两部分组成
应用项目: https://github.com/top-think/think
核心框架: https://github.com/top-think/framework
框架下载好后,需要更名为thinkphp

这里可以直接用composer来获取代码
通过以下命令获取测试环境代码:

composer create-project --prefer-dist topthink/think=5.0.18 tp5.0.18

将 composer.json 文件的 require 字段设置成如下:

"require": {
   
    "php": ">=5.6.0",
    "topthink/framework": "5.0.18"
},

然后执行 composer update ,并将 application/index/controller/Index.php 文件代码设置如下:

<?php
namespace app\index\controller;
use think\Controller;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

huamanggg

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

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

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

打赏作者

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

抵扣说明:

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

余额充值