第一层翻译一下就是GET传入syc参数,从开头到结尾都必须是Welcome to GEEK 2023!满足正则匹配,但值不能等于Welcome to GEEK 2023!
考点是通过 PHP正则换行符 %0a 绕过
第二层需要一个数满足,intval(数)<2023 && intval(数+1)>2024
考点是 intval识别数字会将纯数字后面的字符去除,比如 1e4 就只会识别成 1
而PHP中的 + 会将左右两边 科学计数法的数字 转换成常见形式进行计算 比如 1e4 + 1 = 10001
还有一个小细节是,x64系统的最大数字是 9223372036854775807,此时超过这个数,比如 + 1后,会变成 -9223372036854775808
第三四层需要POST两个值,且两个值转哈希后要相等才能绕过去,POST两个相同的值就是了
第五层需要传入SYC_GEEK.2023,PHP8以下的版本会将第一个识别到的非法字符比如 [ 转成 _
所以需要POST SYC[GEEK.2023 把[转成_,来保护后边的.赋值语句的返回值会被识别为True,所以只需要POST就好了