打开页面就是源码,,代码审计啊
其意思是,
1.至少设置一个get或post且key为flag
2.其value不能等于flag
3.post遍历,但是是 $$key,也就是变量覆盖
4.get遍历,不过key和value都是双$
5.输出flag
这里最关键的就是双$也就是变量覆盖了,
因为key必须为flag,对于post来说,你传的value都会赋值给$flag
但对于get来说,你传的value还必须有值。
最后输出$flag的值,如果想获取到flag,那么其值必须不能变动
这里我就是传get
且参数有2个,
payload:
?a=flag&flag=a
对get遍历那儿的意思就是
$a=$flag
$flag=$a
$a是随便写的一个变量
于是flag值依旧没有变化,成功获取flag
知识点:双$变量覆盖
学习大佬:https://www.cnblogs.com/bmjoker/p/9025351.html