单引号不会解析,所以写的是$a那么就是$a
双引号会解析,所以输出 b
这些斜杠的的意思就是,让后面的变量失去意义。那么写的是什么就是什么。
extract函数就是把数组中的变量,覆盖掉原来的变量,
这里我们可以理解为本来变量a应该输出Original,但是因为extract函数,所以把原来的a给覆盖了
去掉斜杠之后就会变得有意义,让变量生效。
extract函数就是把数组中的变量,覆盖掉原来的变量,
这里我们可以理解为本来变量a应该输出Original,但是因为extract函数,所以把原来的a给覆盖了
现在我们来看一个例子
变量test我们不知道是什么,extract函数就是把数组中的变量,覆盖掉原来的变量,
简单的说就是,$_GET获取到的值,通过extract函数的作用,把原来变量test的值给覆盖了,
然后isset函数是检查是否存在
最后如果gift和content的值相等的话,就输出flag
上面的是正常执行,写的什么就执行什么。
那么下面,GET获取到的信息,把原来的给覆盖了,所以就输出了phpinfo的内容。
变量覆盖漏洞 =》特定属于白盒代码审计的
白盒和黑盒的区别:是否有源代码。
假如说我们遇到一个地方存在注入,但是我们始终是注入失败,我们又拿到了源码,通过代码审计,
我们了解到是一个正则匹配来判断是否恶意注入,
通过了解这个正则匹配的特性,我们可以通过这些特性来闭合
前面相关的正匹配。
从而实现我们的注入。
这里的asdasd – xxxxxxxxxxxxxx就是闭合前面的,然后xxxxxxx就是我们的注入代码。
防止sql注入
用全局搜索,我们可以在整个文件夹里把你想要的关键字搜出来。
还有自动审计功能。
还有mysql监控功能
输入mysql的账号密码,点击更新,就可以看到执行的sql语句。
。。。。。。。。。。。。。中间省略很多东西。。。。
这里说的是cookie和sesion是一体的,cookie确认用户,sesion确定权限。而sesion的权限一般是由数字来决定,
一般来说1位admin,2为普通用户,3为不允许。
去访问这个。就实现了,变量覆盖。
sesion一覆盖,就马上得到权限。