【代码审计】变量覆盖漏洞

前言

变量覆盖漏洞

发生的位置

1
2
3
4
5
6
7
8
9
<?php
$name="1";

foreach($_GET as $key=>$val) {
$$key=$val;
}

var_dump($name);
?>
  • 此时8行的变量$name将因为请求的参数变为2

原理

  • foreach($_GET as $key=>$val){}会将请求的参数键值对变为变量$key$val,当使用$$key语句,会将键作为PHP的变量名,如果这个变量名与其他PHP代码中的变量名重名,将会发生变量覆盖

  • 如果可以覆盖变量,就可以覆盖配置

完成

参考文献

哔哩哔哩——千锋教育网络安全学院