变量覆盖练习

这次呢,讲到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));//

 

 至此,完成上述绕过。

posted @ 2020-02-04 00:53  MTcx  阅读(146)  评论(0编辑  收藏  举报