变量覆盖练习
这次呢,讲到extract()变量覆盖,首先普及下这个函数的知识点:
该函数从数组中将变量导入到当前的符号表。
该函数使用数组键名作为变量名,使用数组键值作为变量值。针对数组中的每个元素,将在当前符号表中创建对应的一个变量。
该函数返回成功设置的变量数目。
extract($_POST)会将POST的数据中的键名和键值转换为相应的变量名和变量值,结合上面extract的特性,构造了post提交语句:key=xxx(这里值任意,只要不等于bad就好)
这里正则过滤了字母,数字,下划线,所以要绕过正则过滤,因此需要在正则开头或结尾添加字符以绕过,简单fuzz下发现%5c可以绕过。
接下来到
当看到 一个变量包含另一个变量时就想到了 creat_function()函数。\creat_functoin意思是全局调用creat_funtion函数。
?act=\create_function&arg=){}var_dump(scandir(%22./%22));//
至此,完成上述绕过。