文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
7.1 什么是二次漏洞
需要先构造好利用代码写入网站保存,在第二次或多次请求后调用攻击代码触发或者修改配置触发的漏洞叫做二次漏洞,举一个简单的 SQL 注入例子,攻击者 A 在网站评论的地方发表了带有注入语句的评论,这时候注入语句已经被完整地保存到数据库中,但是评论引用功能存在一个 SQL 注入漏洞,于是攻击者在评论处引用刚提交的带有注入语句的评论,提交后 server 端从数据库中取出第一次的评论,由于第一次评论中带有单引号可闭合第二次的语句,从而触发了注入漏洞,这是一个非常经典的而又真实的案例,它就是在 2013 年 5 月初被公布的 dedecms 评论二次注入漏洞,不过当时还有一个非常精彩的 60 个字符长度限制突破,稍后我们在案例里面分析这个漏洞的来龙去脉。
二次漏洞的出现归根结底是开发者在可信数据的逻辑上考虑不全面,开发者认为这个数据来源或者这个配置是不会存在问题的,而没有想到另外一个漏洞能够修改这些“可信”数据,整个漏洞产生的流程图如图 7-1 所示。
图 7-1
这样的漏洞没有很大的逻辑关联,所以在发现和修补上面都比一般的直接利用的漏洞相对复杂一点。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论