定义
不安全的直接对象引用(IDOR)允许攻击者绕过网站的身份验证机制,并通过修改指向对象链接中的参数值来直接访问目标对象资源,这类资源可以是属于其他用户的数据库条目以及服务器系统中的隐私文件等等。
应用程序在SQL查询语句中直接使用了未经测试的数据,而攻击者可以利用这一点来访问数据库中的其他账号数据。
出现的原因
- Web应用往往在生成Web页面时会用它的真实名字,且并不会对所有的目标对象访问时来检查用户权限,所以这就造成了不安全的对象直接引用的漏洞。
- 服务器上的具体文件名、路径或数据库关键字等内部资源被暴露在URL或网页中,攻击者可以尝试直接访问其他资源。
场景案例
篡改他人邮箱
以BTS PenTesting Lab中的实验为例,分别创建123,abc两个账号和相应的邮箱。
登陆abc的账号,在执行邮箱修改操作时,用brupsuite抓包
将其用户标识id=5改为123用户的标识id=4,然后发包
随后登录123的账号,发现邮箱被篡改
这只是一个简单的演示,关于此漏洞的利用还有很多比如可以抓包改支付金额啊,改用户密码啊,将提升自己权限等。有兴趣朋友可以深入了解一下。
如何防范
1.使用基于用户或会话的间接对象访问,这样可防止攻击者直接攻击未授权资源
2.访问检查:对任何来自不受信源所使用的所有对象进行访问控制检查
3.避免在url或网页中直接引用内部文件名或数据库关键字
4.验证用户输入和url请求,拒绝包含./ …/的请求
今天的文章不安全的直接对象引用分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/11966.html