PHP特性 web98
源码如下
include("flag.php");
$_GET?$_GET=&$_POST:'flag';
$_GET['flag']=='flag'?$_GET=&$_COOKIE:'flag';
$_GET['flag']=='flag'?$_GET=&$_SERVER:'flag';
highlight_file($_GET['HTTP_FLAG']=='flag'?$flag:__FILE__);
第一行:若$_GET存在,将$_GET
设为$_POST
的引用(&
符号表示引用)
传入/?a=1令条件成立
第二行:此时$_GET
已指向$_POST
,故实际检查$_POST['flag']
是否为'flag'
POST传入 flag=flag
第三层:$_GET指向
$_COOKIE,则检查
$_COOKIE['flag']是否为
'flag',若满足,将
$_GET改为
$_SERVER`的引用
通过cookie传入flag=flag
最后检查$_GET['HTTP_FLAG']
的值是否为'flag'
满足返回flag
此时$_GET
指向$_SERVER
,因此$_GET['HTTP_FLAG']
对应$_SERVER['HTTP_FLAG']
。
$SERVER['HTTP*']存储请求头信息,需在请求头中添加
Flag: flag`。
POST /?a=1 HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Cookie: flag=flag
FLAG: flag
flag=flag
PHP特性 web98的更多相关文章
- Fis3的前端工程化之路[三大特性篇之声明依赖]
Fis3版本:v3.4.22 Fis3的三大特性 资源定位:获取任何开发中所使用资源的线上路径 内容嵌入:把一个文件的内容(文本)或者base64编码(图片)嵌入到另一个文件中 依赖声明:在一个文本文 ...
- Fis3的前端工程化之路[三大特性篇之资源定位]
Fis3版本:v3.4.22 Fis3的三大特性 资源定位:获取任何开发中所使用资源的线上路径 内容嵌入:把一个文件的内容(文本)或者base64编码(图片)嵌入到另一个文件中 依赖声明:在一个文本文 ...
- Fis3的前端工程化之路[三大特性篇之内容嵌入]
Fis3版本:v3.4.22 Fis3的三大特性 资源定位:获取任何开发中所使用资源的线上路径 内容嵌入:把一个文件的内容(文本)或者base64编码(图片)嵌入到另一个文件中 依赖声明:在一个文本文 ...
- .NET 4.6.2正式发布带来众多特性
虽然大多数人的注意力都集中在.NET Core上,但与原来的.NET Framework相关的工作还在继续..NET Framework 4.6.2正式版已于近日发布,其重点是安全和WinForms/ ...
- SQL Server 2014 新特性——内存数据库
SQL Server 2014 新特性——内存数据库 目录 SQL Server 2014 新特性——内存数据库 简介: 设计目的和原因: 专业名词 In-Memory OLTP不同之处 内存优化表 ...
- 探索ASP.NET MVC5系列之~~~4.模型篇---包含模型常用特性和过度提交防御
其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...
- InnoDB关键特性学习笔记
插入缓存 Insert Buffer Insert Buffer是InnoDB存储引擎关键特性中最令人激动与兴奋的一个功能.不过这个名字可能会让人认为插入缓冲是缓冲池中的一个组成部分.其实不然,Inn ...
- ElasticSearch 5学习(10)——结构化查询(包括新特性)
之前我们所有的查询都属于命令行查询,但是不利于复杂的查询,而且一般在项目开发中不使用命令行查询方式,只有在调试测试时使用简单命令行查询,但是,如果想要善用搜索,我们必须使用请求体查询(request ...
- HTML5新特性有哪些,你都知道吗
一.画布(Canvas) 画布是网页中的一块区域,可所以用JavaScript在上面绘图.下面我们来创建一个画布并在上面绘制一个坦克(后面将用HTML5做一个坦克大战游戏),代码如下: <!DO ...
- C++11特性——变量部分(using类型别名、constexpr常量表达式、auto类型推断、nullptr空指针等)
#include <iostream> using namespace std; int main() { using cullptr = const unsigned long long ...
随机推荐
- css3 position定位—— sticky 定位
一.概念sticky 定位sticky 英文字面意思是粘,粘贴,所以可以把它称之为粘性定位. position: sticky; 基于用户的滚动位置来定位. 粘性定位的元素是依赖于用户的滚动,在 po ...
- jq回调函数、jq一个函数执行完毕后再执行另一个函数
jq回调函数.jq一个函数执行完毕后再执行另一个函数 - small-match - 博客园 (cnblogs.com) jq回调函数第一版 复制代码 <!DOCTYPE html> &l ...
- rustdesk自建服务器
前言 rustdesk是一款免费开源的 远程控制软件. 它内置服务器 开箱即用. 不过提供的免费服务器在国外,白嫖起来 有点卡顿 建议自建服务器 . 下边是教程 安装docker和docker com ...
- Windows下python环境安装与管理
Python功能强大,适合多种应用场景.安装合适的python环境是开发的第一步.下面是Windows环境下Python环境的安装与管理实战方法. 一.在线环境安装 如果需要安装的环境可以连接互联网, ...
- 打造蓝牙音箱 OPENWRT && BLUETOOH && RTL8723.bs
初步 文件准备 1.rtl8723.bs官方guide , 由于这个文件是别的公司的不知道保密性是怎么样的. 实在想要私信我 算了有空再上传吧. 2. RTL8761A_FineTune_Baudra ...
- # opengl 学习 之 07 lesson
opengl 学习 之 07 lesson 简介 OBJ的使用 link http://www.opengl-tutorial.org/uncategorized/2017/06/07/website ...
- ICEE-SPI-debug最好用 SPI 和 JTAG 或更优的(高达104MHz的)SPI通信保障飞速的debug响应;不再像UART的115200 BaudRate ~
S25FL032P : 32-Mbit CMOS 3.0 Volt Flash Memory with 104-MHz SPI (Serial Peripheral Interface) Multi ...
- SciTech-EECS-电路设计- PCB设计-PCB设计流程 + 元器件封装设计 + PCB设计规则 +PCB布局/布线/覆铜等设计
PCB(印刷电路板)设计, 是以"电路原理图"为根据实现电路设计者所需要的功能. "PCB设计"主要指"版图设计", 需要考虑: " ...
- #include <cstring>
在void和int后面的都叫函数吗 2024/3/6 00:10:34 在C++中,void和int等关键字用来表示函数的返回类型,而不是函数本身的名称.函数名称位于返回类型之前.下面是一个简单的函数 ...
- 企业AI知识库的文件解析痛点-Word格式解析优化(准确率95%)-100%开源
一.前言 在大模型和RAG(检索增强生成)技术飞速发展的今天,企业AI知识库建设已成为AI落地的核心战场.而文件解析是所有参与做企业AI知识库开发者所避免不了的难题. 本文将结合我在开发TorchV ...