PHP很多语法特性会让攻击者有机可乘,例如PHP会检测双引号中的变量。
执行如下代码:
1 function test() 2 { 3 echo "abc"; 4 } 5 echo "${@test()}"; 6 7 //或者 8 echo "${@phpinfo()}";
原理如下:
1 $a = 'b'; 2 $b = 'a'; 3 4 echo $$a; //a
以上就利用了PHP可变变量,双引号{}可解析双引号内的变量内容特性制造出来的小麻烦。
PHP很多语法特性会让攻击者有机可乘,例如PHP会检测双引号中的变量。
执行如下代码:
1 function test() 2 { 3 echo "abc"; 4 } 5 echo "${@test()}"; 6 7 //或者 8 echo "${@phpinfo()}";
原理如下:
1 $a = 'b'; 2 $b = 'a'; 3 4 echo $$a; //a
以上就利用了PHP可变变量,双引号{}可解析双引号内的变量内容特性制造出来的小麻烦。