返回介绍

6.1 变量覆盖漏洞

发布于 2024-10-11 22:07:44 字数 507 浏览 0 评论 0 收藏 0

变量覆盖指的是可以用我们自定义的参数值替换程序原有的变量值,变量覆盖漏洞通常需要结合程序的其他功能来实现完整攻击,这个漏洞想象空间非常大,比如原本一个文件上传页面,限制的文件扩展名白名单列表写在配置文件中变量中,但是在上传的过程中有一个变量覆盖漏洞可以将任意扩展名覆盖掉原来的白名单列表,那我们就可以覆盖进去一个 PHP 的扩展名,从而上传一个 PHP 的 shell。

变量覆盖漏洞大多由函数使用不当导致,经常引发变量覆盖漏洞的函数有:extract() 函数和 parse_str(),import_request_variables() 函数则是用在没有开启全局变量注册的时候,调用了这个函数则相当于开启了全局变量注册,在 PHP 5.4 之后这个函数已经被取消。另外部分应用利用$$的方式注册变量没验证已有变量导致覆盖也是国内多套程序都犯过的一个问题,这些应用在使用外部传递进来的参数时不是用类似于$_GET['key']这样原始的数组变量,而是把里面的 key 注册成了一个变量$key,注册过程中由于没有验证该变量是否已经存在就直接赋值,所以导致已有的变量值会被覆盖掉。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文