zl程序教程

您现在的位置是:首页 >  其他

当前栏目

PHP变量覆盖漏洞---零零一

2023-04-18 15:57:04 时间

PHP是最好的语言!!! ① $$引发的覆盖漏洞

此时输出的信息是"人畜无害"的,但是如果在$a前面再加上一个$的话,那输出的内容就不一样了,如图所示:

考察的题目一般都是考察全局变量,像这样子的:

如果在题目源码中有看到两个$的话,先传入一个GLOBALS,惊喜接种而来 ② extract引发的变量覆盖漏洞 extract将数组中的变量作为值,在extract中使用已有值的名字,并且内容变化的话,就会覆盖原有的值

本来a是等于123,b是等于456的,但是使用数组给已有值名(a和b)赋不一样值,并且使用extract输出了值,因此这就成为了一个变量覆盖漏洞 使用extract输出一个数组,数组的键名就是变量名,值名就是变量名的值 题目考察一般考察用if语句判断用户输入的值和已有的某个值是否相等,相等则输出flag,反之啥也没 比如这样子的:

传入两个参数(flag和get),可以置空(/?get=&flag=)或者传入两个相同的值(/?get=1&flag=1) ③ parse_str使用不当导致覆盖漏洞

parse_str会将一个变量重新注册,parse_str里面的值,将会覆盖掉原有的值,就像上面那样,原本a是abcde,经过parse_str注册后,变成了12345 题目考察也是传入一个"传新"的变量,和比较值相等就好了

传入:/?a=flag=123;(123可以是任意值) 审计题目代码的时候,多关注一些危险函数,通过危险函数快速定位考察的内容 然后对症下药,一下子把题目给收了 注:部分图片源自于网络,如有侵权,请联系删除!!!谢谢