预定义超全局数组变量

预定义超全局数组变量


预定义:php已经存在的变量无需定义自接使用

超全局:超级全局变量,作用域是超全局,可以在脚本的任何地方访问和使用,包括函数内部、外部。

预定义超全局数组变量跟php版本是有关联的

三大传参方式

  • GET
    • 在url中传参
  • POST
    • 抓包软件
    • HackBar插件
  • Cookie
    • 抓包软件
    • 浏览器控制台

$_GET

能够接收get方法的数组

var_dump($_GET);

调用$_GET函数在url进行GET传参传入的数据就会存储到$_get数组中

$_POST

能够接收POST方法的数组

var_dump($_POST);

同理定义$_POST函数后发生提交事件后所传入的函数都会存储于$__POST 数组中

在这里插入图片描述

可以在抓包软件中修改请求但是在抓包请求中修改需要在请求头里加入内容类型
Content-Type: application/x-www-form-urlencoded

$GLOBALS

包含当前脚本内所有的超全局变量的应用

所有定义的变量都在globals里

$_SERVER

服务器和执行环境信息

$_FILES

可以实现文件上传功能

当我们上传文件时无法直接到达服务器的,是先到达缓冲区但是一般在/tmp文件夹下但是会被删除
在这里插入图片描述

要想不被删除通过这个move_uploaded_file函数可以实现修改文件上传的路径

move_uploaded_file(文件名字,上传路径);
在这里插入图片描述
在这里插入图片描述

$_COOKIE

COOKIE 技术

为了弥补HTTP 协议的无状态性,保持用户的会话状态,需要使用Cookie 技术。

在浏览器中查看cookie

document.cookie;

Cookie 过程:

  • 用户提交账密
  • 服务器进行身份认证
  • 下发身份证,下发Cookie。
  • 浏览器客户端用户所有的请求都会携带身份信息,携带Cookie 信息。
  • 整体流程体现为,保持了HTTP 会话的状态性。
var_dump($_COOKIE);
写入Cookie
在浏览器的开发者模式里写入cookie//console
document.cookie = "username=admin";
document.cookie = "passoword=123456";

HTTP 请求报文:

GET /php/functions/cookie.php HTTP/1.1
Cookie: username=admin; password=123456

$_SESSION

当前脚本可用 SESSION 变量的数组。更多关于如何使用的信息,参见Session 函数 文档。

$_REQUEST

同时可以接受GET,POST,Cookie参数

但是不代表它启用使用此功能

在PHP study中的php-ini配置文件中的第625行修改

在这里插入图片描述
在这里插入图片描述

$_ENV

通过环境方式传递给当前脚本的变量的数组。

案例

预定义超全局数组练习

验证$_GET

先创建一个php文件应用该参数

<?php
    var_dump($_GET);
?>

在url中使用GET方法上传参数
?user=xl&passwd=xl123

在这里插入图片描述
可以看到服务器接收并保存了

验证$_POST

先新建一个php文件初始化函数

<?php
    var_dump($_POST);
?>

用burpsuite来进行修改请求方法附带请求内容修改请求头中的请求内容类型
在这里插入图片描述
在这里插入图片描述
服务器收到并保存

验证$_COOKIE
document.cookie="user='xl'";
document.cookie="passwd='123456'";

在这里插入图片描述
可以看到服务器接收并保存了
在这里插入图片描述

验证$_REQUEST

新建一个php文件将参数初始化

<?php
    var_dump($_REQUEST);
?>

打开抓包软件对数据包进行修改将post和get请求方法一起使用
在这里插入图片描述
服务器接收并保存了
在这里插入图片描述

验证$GLOBALS

新建一个php文件初始化函数

<?php
    var_dump($GLOBALS);
?>

访问网页可以看到所有超全局变量函数的信息
在这里插入图片描述

$_FILES实现文件上传功能并连接一句话木马

新建一个html表单

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form action="FILES.php"
        method="POST"
        enctype="multipart/form-data">
        <input type="file" name="image" >
        <input type="submit" value="Upload">
    </form>
   
</body>
</html>

再新建一个php文件修改上传文件存储路径

<pre>
  <meta charset="UTF-8">
<?php
  $tmp_path=$_FILES['image']['tmp_name'];
  echo "文件上传的临时路径{$tmp_path}" 
  $target="C:\phpstudy_2016\WWW\works\upload\\".$_FILES['image']['name'];
  echo "文件上传的目标路径{$target}";
  var_dump($tmp_path);
  $a=move_uploaded_file($tmp_path,$target);
  var_dump($_FILES);
?>

写好之后上传一句话木马文件
在这里插入图片描述
可以看到上传成功了
在这里插入图片描述
在蚁剑执行一句话木马

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值