1.打开环境,发现就是php套娃。
$_REQUEST:PHP的内置变量,是一个数组,保存传递的参数,它的特性是如果get,post一起传参,则会优先post传参,可以由此进行变量覆盖。
$_SERVER:PHP的内置变量,是一个数组,其中QUERT_STRING是指问号之后的所有字符串,其不会对参数进行url解码,可以采用url编码绕过。
本地测试:
结果:
第三层:substr在原有参数长度不足时返回false,md5在处理数组时也会返回false.
第四层:从尾部匹配字符串且不等于该字符串。
第五层:data://伪协议写入数据绕过。
payload:
/?%79%75%6c%69%67%65[]=1&%6e%63%74%66=%61%6e%63%74%66%69%73%66%75%6e&%66%6c%61%67=data://text/plain,ccc_liubi
post:flag=1&ntcf=1&yulige=1