变量覆盖
变量覆盖,是指变量未初始化,我们定义的参数值,可以替换程序原有的变量值。
危害
通常结合程序其他的漏洞实现完整的攻击。比如文件上传,覆盖掉原来白名单的列表,导致任意文件上传;用户注册界面控制没有覆盖的变量,导致SQL注入
挖掘思路
主要还是以下几个函数
- extract()
- import_request_variables()
- parse_str()
- $$
$$变量覆盖
这是一道CTF原题:
<?php
include("flag.php");
$_403 = "Access Denied";
$_200 = "Welcome Admin";
if ($_SERVER["REQUEST_METHOD"] != "POST")
{
#var_dump($_SERVER);
die("Oh no...");
}
if ( !isset($_POST["flag"]) )
{
die($_403);
}
foreach (