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
相关推荐
K龙16 分钟前
私有资产测绘&安全流水线Shovel
运维·安全·开发·其它
程序猫A建仔25 分钟前
【物联网】基于树莓派的物联网开发【4】——WIFI+SSH远程登录树莓派
运维·物联网·ssh
luck_me52 小时前
如何远程执行脚本不留痕迹
linux·运维·服务器
-SGlow-2 小时前
Linux相关概念和易错知识点(40)(HTML资源交互、网页管理、搜索引擎)
linux·运维·服务器·网络·html·交互
默心2 小时前
centos7部署mysql5.7
linux·运维·mysql·centos
-SGlow-2 小时前
Linux相关概念和易错知识点(39)(URL、HTTP)
linux·运维·http
因缘而起12 小时前
【Linux】gcc从源码编译安装,修改源码,验证修改的源码
linux·运维·服务器
Luck_ff08102 小时前
服务器选购指南:从零开始了解服务器
运维·服务器
云攀登者-望正茂3 小时前
最大化效率和性能:AKS 中节点池的强大功能
云原生·容器·kubernetes
山川而川-R3 小时前
开机自启动python程序_ubuntu22.04
linux·运维·服务器