文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
6.1 变量覆盖漏洞
变量覆盖指的是可以用我们自定义的参数值替换程序原有的变量值,变量覆盖漏洞通常需要结合程序的其他功能来实现完整攻击,这个漏洞想象空间非常大,比如原本一个文件上传页面,限制的文件扩展名白名单列表写在配置文件中变量中,但是在上传的过程中有一个变量覆盖漏洞可以将任意扩展名覆盖掉原来的白名单列表,那我们就可以覆盖进去一个 PHP 的扩展名,从而上传一个 PHP 的 shell。
变量覆盖漏洞大多由函数使用不当导致,经常引发变量覆盖漏洞的函数有:extract() 函数和 parse_str(),import_request_variables() 函数则是用在没有开启全局变量注册的时候,调用了这个函数则相当于开启了全局变量注册,在 PHP 5.4 之后这个函数已经被取消。另外部分应用利用$$的方式注册变量没验证已有变量导致覆盖也是国内多套程序都犯过的一个问题,这些应用在使用外部传递进来的参数时不是用类似于$_GET['key']这样原始的数组变量,而是把里面的 key 注册成了一个变量$key,注册过程中由于没有验证该变量是否已经存在就直接赋值,所以导致已有的变量值会被覆盖掉。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论