注意:仅用于本人学习的笔记记录,禁止进行传播分享,一旦造成严重后果与本人无关!!!
一、什么是变量覆盖
变量覆盖的危害:取决于具体的代码
前面中存在相同的变量,从而后面的变量将前面的变量造成覆盖
造成变量覆盖最主要的还是相关函数造成
二、函数解析
1、extract()
把数组变成变量,把数组中的键变成变量名,把值变成变量值
2、parse_str()
对字符串进行操作,将字符串变成变量[特定写法]
以上函数非常明确,一般情况下也有预见性。
以下情况不需要函数也可做到变量覆盖
3、$$
<?php
$a = 1;
$b = 'a';
echo $$b; //echo $($b) => echo $a => 输出结果为:1
?>
三、代码审计
common.func.php 函数库
*.func.php 基本上会被疯狂调用,基层文件,里面是网站的基础逻辑,而且前台后台通用
优先审计:
先看前台,先看这种配置通用文件*.func.php
变量覆盖:
1.如果可以造变量,我们可以造特殊变量
特殊变量:预定义变量($_GET $_POST)
$_SESSION => 特殊的变量
SESSION => 服务端会存数据,来证明你的身份
COOKIE => 自己的身份凭证,在客户端
SESSION => 他是后端语言自带的。COOKIE和SESSION有捆绑
当你拿着A.COOKIE访问网站的时候,如果开启了SESSION并且赋值的话,网站的本地会存放到一个文件,这个文件代表了COOKIE和SESSION的绑定
2.我们造的变量会在接下来的代码里面起奇效
相同代码的网站SESSION的权限身份校验是相同的