2022年04月08日
之前在某厂的某次项目开发中,项目组同学设计和实现了一个“引以为傲”,额,有点扩张,不过自认为还说得过去的 feature,结果临上线前被啪啪打脸,因为实现过程中因为一行代码(没有标题党,真的是一行代码)带来的安全漏洞让我们丢失了整个服务器控制权(测试环境)。多亏了上线之前有公司安全团队的人会对代码进行扫描,才让这个漏洞被扼杀在摇篮里。
下面我们就一起来看看这个事故,啊,不对,是故事。
背景说明
我们的项目是一个面向全球用户的 Web 项目,用 SpringBoot 开发
2022年04月08日
变量覆盖常常被恶意攻击者用来跳过正常的业务逻辑,越过权限限制,恶意攻击系统,严重时将造成系统瘫痪。
1、全局变量覆盖
当register_globals全局变量设置开启时,传递过来的值会被直接注册为全局变量而直接使用,这会造成全局变量覆盖。
如果通过$GLOBALS从浏览器动态获取变量,也会发生变量覆盖的情况。为了方便理解,引用全局变量配置的例子进行介绍。
<formname="login"action="LoginUrl"method="