我这给出的是涉及到的陌生的知识点,结合链接文章中详细的源码和答案
https://blog.youkuaiyun.com/xiaorouji/article/details/82292233
extract变量覆盖
构造?flag=1&content=1
strcmp比较字符串
题目已经对strcmp函数有了解释:
if (strcmp($_GET[‘a’], $flag) == 0) //如果 str1 小于 str2 返回 < 0;
如果
str1大于 str2返回 > 0;如果两者相等,返回 0。 //比较两个字符串(区分大小写)
这里利用strcmp函数不能比较函数 传入参数 ?a[]=0. flag出来
urldecode二次编码绕过
文章写的详细了,传入后url编码进行解码,decode再解码一次
直接传入url编码绕过检测,解码后符合if条件,得出flag。
比如构造%2528
%25在第一次解码后为%,构成了%61,再次解码得到a。
?id=