题目链接:
题解:
打开题目
得到一段PHP代码
该代码中相关函数知识点链接如下:extract函数:isset函数:file_get_contents函数:
代码白话翻译: 一个名叫flag的变量等于‘xxx’ 将通过GET传过来的数组转为一个名为数组名,值为数组值的变量(如果新的变量和已有变量重名,会将已有变量替换) 如果存在一个名叫shiyan的字符串 将flag变量的值赋给名为content变量 如果变量shiyan和变量content的值相同, 就输出flag的值 否则就输出Oh,no 因为extract()会把符号表中已存在的变量名的值替换掉,所以制造Payload :?shiyan=&flag= 也就是利用新传入的值为空的flag替换原有的flag的值。构造空等于空,成功输出flag的值
即flag为:flag{bugku-dmsj-p2sm3N}