PHP-extract变量覆盖

题目信息

题目名称 题目难度
PHP-extract变量覆盖 1

题目考点

复制代码
变量覆盖指的是用我们自定义的参数值替换程序原有的变量值,一般变量覆盖漏洞需要结合程序的其它功能来实现完整的攻击。
经常导致变量覆盖漏洞场景有:$$,extract()函数,parse_str()函数等.

Flag格式:

复制代码
SangFor{f2HVuTe47VPOzKlT}

环境部署

docker-compose.yml文件或者docker tar原始文件。

复制代码
http://分配ip:2008

题目writeup

1、实验主页

2、源码分析

复制代码
<?php
include('flag.php');
if ($_SERVER["REQUEST_METHOD"] == "POST")
    $SangFor = "666";
    $SXF = "2333";
    extract($_POST);
    if ($SangFor === $SXF) {
        $flag;
    }
    else{
        "咋回事呢?";
    }
highlight_file(__FILE__);
?>

extract该函数使用数组键名作为变量名,使用数组键值作为变量值。但是当变量中有同名的元素时,该函数默认将原有的值给覆盖掉。这就造成了变量覆盖漏洞。

由此可以通过POST方法覆盖变量$SangFor,将其变量值覆盖为2333,来构造if条件判断为真,即可输出flag。

复制代码
POST:
SangFor=2333
相关推荐
峥无8 小时前
Linux进程信号:从基础概念到内核底层原理
linux·运维·服务器·信号处理
土星云SaturnCloud8 小时前
土星云AI边缘计算SE110S系列模型部署实战-YOLOv5
服务器·人工智能·yolo·docker·边缘计算
北山有鸟8 小时前
用开发板的.config替换ubuntu中内核源码目录的.config
linux·运维·ubuntu
qq_452396239 小时前
第二十篇:《Docker 故障排查常用命令与技巧》
运维·docker·容器
jcbut9 小时前
离线安装dify 1.7
linux·运维·dify
Qiuner9 小时前
Pico 重塑Agent时代人与数据交互方式
windows·docker·ai·架构
云计算磊哥@9 小时前
运维开发宝典024-Linux云计算运维入门阶段总结
linux·运维·运维开发
周小码9 小时前
10分钟搭建私有Git服务器:Soft Serve实战
运维·服务器·git
木雷坞10 小时前
6月 Docker 国内镜像源配置:daemon.json、/v2/ 连通性和 pull 验证
docker·eureka·json
The Open Group10 小时前
从项目到产品:数字化转型为何进入“产品时代”?
运维