PHP-$$变量覆盖

embedded/2024/10/11 11:22:49/

[题目信息]:

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

[题目考点]:

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

[Flag格式]:

SangFor{yIMTJpEwJghjSgd5}

[环境部署]:

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

http://分配ip:2009

[题目writeup]:

1、实验主页

2、源码分析

<?php
error_reporting(0);
include "flag.php";
highlight_file(__file__);
if(isset($_GET['args'])){$args = $_GET['args'];if(!preg_match("/^\w+$/",$args)){die();}eval("var_dump($$args);");
}
else{"yyds";
}
?>

分析代码逻辑,首先检测变量是否设置,然后是一个正则匹配传入的值。

/^\w+$/

两个//表示开始和结束

^表示开始字符串

$表示结束字符串

\w表示包含[a-z,A-Z, _ , 0-9]

+表示一个或者多个\w

总体意义就是限定一个任意长字符串全部由字母数字组成,前面中间后面都不能有空格、标点等非\w字符。

如果args的值是只由大小写字母数字和下划线,则执行eval(“var_dump($$args)”)。

通过提示“flag在变量里”,想能不能通过打印所有变量的值来获得flag。

这里介绍一个超全局变量$GLOBALS,它可以引用全局作用域中可用的全部变量(一个包含了全部变量的全局组合数组。变量的名字就是数组的键),与所有其他超全局变量不同。我们尝试输入“?args=GLOBALS”获得flag

http://localhost/?args=GLOBALS


http://www.ppmy.cn/embedded/9646.html

相关文章

Python爬虫与数据可视化论文课题免费领取咨询

引言 作为一名在软件技术领域深耕多年的专业人士&#xff0c;我不仅在软件开发和项目部署方面积累了丰富的实践经验&#xff0c;更以卓越的技术实力获得了&#x1f3c5;30项软件著作权证书的殊荣。这些成就不仅是对我的技术专长的肯定&#xff0c;也是对我的创新精神和专业承诺…

MySQL中InnoDB存储引擎详细介绍

介绍 InnoDB是一种兼顾高可靠性高和高性能的通用存储引擎&#xff0c;在MySQL5.5之后&#xff0c;InnoDB是默认的MySQL存储引擎。 特点 DML(增删改)操作遵循ACID(事务四大特性)模型&#xff0c;支持事务&#xff1b;行级锁&#xff0c;提高并发访问性能支持外链FORELGN KEY约…

使用gdal均匀筛选点矢量

使用gdal均匀筛选点矢量 作用&#xff1a; 通过计算各点之间的欧式距离&#xff0c;筛选出符合目标的、均匀发布在空间中的N个数据点。 效果示意图 运行环境 python 3.10 安装&#xff1a;tqdm、numpy和tqdm这三个库 完整代码 import numpy as np from osgeo import ogr,…

SQL server详细使用教程

SQL Server是一个强大的关系型数据库管理系统&#xff0c;广泛应用于各种数据管理和分析场景。以下是SQL Server的详细使用教程&#xff1a; 一、安装与配置 在开始安装SQL Server之前&#xff0c;请确保系统满足以下要求&#xff1a;操作系统为Windows 7或更高版本&#xff…

RTT设备驱动框架学习(CAN设备)

RTT设备框架属于组件和服务层&#xff0c;是基于RTT内核之上的上层软件。 设备框架是针对某一类外设&#xff0c;抽象出来的一套统一的操作方法及接入标准&#xff0c;可以屏蔽硬件差异&#xff0c;为应用层提供统一的操作方法。 RTT设备框架分为三层&#xff1a;设备驱动层、…

docker打包部署自己的应用

docker部署应用 当谈及使用 Docker 进行容器化部署应用时&#xff0c;可以想象它是一个能够将整个应用程序及其所有依赖项打包成一个独立、可移植的容器的工具。这个容器不仅包含了应用代码&#xff0c;还包括了操作系统、运行时环境以及所有依赖的库和组件。这样一来&#xf…

项目中,如何写 readme.md 文件 | 写项目总结

tips&#xff1a;注意写 1. readme文件&#xff1a;①项目文档&#xff08;项目需求和设计文档、项目系统架构和技术文档、接口文档&#xff09;、②项目结构、③启动项目。具体结构见下文。 2. 项目总结&#xff1a;技术栈、描述、主要工作&#xff01;&#xff01;需求及功…

java | junit | 基本+技巧

1.参考链接 1.1 单测概念 https://medium.com/lathasreeseeni/junit-2d9857773e8 1.2 高级技巧 https://symflower.com/en/company/blog/2023/how-to-write-junit-test-cases-advanced-techniques/ assertThrows&#xff1a; 有时候&#xff0c;我们的方法&#xff0c;需要抛出…