漏洞定义
不安全的直接对象引用,也被称IDOR。IDOR允许攻击者绕过网站的身份验证机制,并通过修改指向对象链接中的参数值来直接访问目标对象资源,这类资源可以是属于其他用户的数据库条目以及服务器系统中的隐私文件等等。导致这种情况出现的原因是,系统在接受用户输入并利用输入信息获取对象之前没有对用户身份权限进行检测。
漏洞利用场景
以BTS PenTesting Lab中的实验为例,如图:
先创建两个账号,账号名分别为“abc”和“123”,并设置好相应邮箱
然后登陆“abc”账号,执行修改邮箱操作
把邮箱改成abcd@163.com时,用Brupsuite代理拦截数据
把用户标识“id=5”修改成“id=4”后释放,显示邮箱修改成功~
最后登陆“123”的账号,发现邮箱已被修改!
个人小结
不安全的直接对象引用漏洞跟业务逻辑漏洞有共同点,常规的越权操作、篡改订单应该都属于此范畴。防护策略可以从安全框架(封装、加密)和加强上下文关联(后台判断、token)考虑。
关于IDOR的相关介绍:http://www.freebuf.com/news/139375.html
关于IDOR的案例参考:https://blog.csdn.net/sakaison/article/details/52586669