什么是IDOR(不安全的直接对象引用)

什么是IDOR(不安全的直接对象引用)自从2010年开始,不安全的直接对象引用(IDOR)就已经成为了OWASPTop10Web应用安全风险中影响程度排名第四的安全漏洞了。IDOR将允许一名授权用户获取其他用户的信息,意指一个已经授权的用户通过更改访问时的一个参数,从而访问到了原本其并没有得到授权的对象。Web应用往往在生成Web页面或服务时会用它的真实名字,且并不会对所有目标对象的请求访问进行用户权限检测,所以这就造成了不安…

大家好,又见面了,我是你们的朋友全栈君。

自从2010年开始,不安全的直接对象引用(IDOR)就已经成为了OWASP Top 10 Web应用安全风险中影响程度排名第四的安全漏洞了。

IDOR将允许一名授权用户获取其他用户的信息,意指一个已经授权的用户通过更改访问时的一个参数,从而访问到了原本其并没有得到授权的对象。Web应用往往在生成Web页面或服务时会用它的真实名字,且并不会对所有目标对象的请求访问进行用户权限检测,所以这就造成了不安全的对象直接引用的漏洞。换句话说,不安全的直接对象引用漏洞将允许攻击者通过页面或服务向特殊对象资源发送访问请求,如果系统不会对请求发送者的身份权限进行合理认证的话,就说明这个系统中存在不安全的直接对象引用。

OWASP定义
不安全的直接对象引用允许攻击者绕过网站的身份验证机制,并通过修改指向对象链接中的参数值来直接访问目标对象资源,这类资源可以是属于其他用户的数据库条目以及服务器系统中的隐私文件等等。导致这种情况出现的原因是,系统在接受用户输入并利用输入信息获取对象之前没有对用户身份权限进行检测。

应用程序在SQL查询语句中直接使用了未经测试的数据,而攻击者可以利用这一点来访问数据库中的其他账号数据。

漏洞利用场景
我们假设下面这种场景:Web应用允许已登录用户修改自己的秘密值。首先,这个秘密值肯定是要跟用户在数据库中的账号绑定在一起的。当前用户“bee”已经登录了Web服务器,他可以随意修改他自己的秘密值,但他并不打算这样做。因为他准备做一次恶作剧,然后修改其他用户的秘密值。

不安全的直接对象引用漏洞入门指南

在BurpSuite的帮助下,我们捕获到了浏览器发送的请求。你可以从下图中看到,登录用户为bee,秘密值为hello。接下来,我们使用其他用户来修改这个用户的信息。

SQLquery = “SELECT * FROM useraccountsWHERE account = ‘bee’;
[外链图片转存失败(img-lmsoSx8Z-1567062948873)(https://image.3001.net/images/20170706/14993334728966.png)]
不安全的直接对象引用漏洞入门指南

接下来,我们准备将该用户的用户名修改为raj。想要在应用中执行这种攻击的话,则至少需要两个用户账号。

SQLquery = “SELECT * FROM useraccountsWHERE account = ‘raj’;
在这里插入图片描述
不安全的直接对象引用漏洞入门指南

非常好!!!我们成功地修改了用户raj的秘密值。请注意,如果攻击目标是任意一个官方网站,那么攻击者的目标肯定是管理员账号。

不安全的直接对象引用漏洞入门指南

场景二
接下来我们一起看看第二种漏洞利用场景,这跟绝大多数的IDOR攻击场景非常相似。

现在我们准备通过一个电影购票网站来在线订购电影票,示例网站地址为 bookmyshow.com,这个网站中存在不安全的直接对象引用漏洞。

在这个网站中,我打算订购十张电影票,每张票的加个为十五欧元。接下来,我们确认订单,然后使用BurpSuite来捕捉浏览器请求。

不安全的直接对象引用漏洞入门指南

捕获到的请求如下图所示,高亮部分包含了需要订购的电影票数量、每张票的价格(十五欧元)以及订单类型。接下来,我们就要尝试修改订单金额,将加个修改成我们想要的价格:

不安全的直接对象引用漏洞入门指南

我将单张票价修改为了一欧元,这也就意味着我只需要花十欧元就能买十张票了。下图中显示了请求信息:

不安全的直接对象引用漏洞入门指南
[外链图片转存失败(img-laLrtyf7-1567062911849)(https://image.3001.net/images/20170706/14993335431357.png)]
没错,我们成功地用十欧元购买了十张电影票!

总结
这篇文章只是一篇不安全的直接对象引用漏洞入门指南,这种漏洞的利用方式和利用场景还远远不止本文所描述的这么简单,感兴趣的用户可以自行动手搭建一个这样的测试环境,然后亲自尝试去利用这种漏洞,毕竟实践出真知嘛。有关此漏洞的其他信息,可参考OWASP给出的内容。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131679.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 系统管理日志怎么看_19年发生了太多事日志

    系统管理日志怎么看_19年发生了太多事日志说起日志,大家都是耳熟能详的,一大堆日志插件映入眼帘,日志收集的方式也历历在目,但是,今天我们的重点不仅仅是收集日志了,今天我们主要说说怎么管理日志收集日志日志管理的第一件事,就是日志的收集。日志

    2022年8月4日
    6
  • 费马小定理和费马大定理_费马小定理推论

    费马小定理和费马大定理_费马小定理推论(1)费马小定理结论:结论是若存在整数a,p且gcd(a,p)=1,即二者互为质数,则有a(p-1)≡1(modp)。(这里的≡指的是恒等于,a(p-1)≡1(modp)是指a的p-1次幂取模与1取模恒等),再进一步就是ap≡a(modp)。继续学习:中国剩余定理、拓展欧几里得(exgcd)、求除法逆元、费马小定理(2)费马大定理结论:又被称为“费马最后的定理”,常见的表述为当整数n>2时,关于xn+yn=zn的方程没有正整数解。当n=0时,实数范围只有x=0,y

    2025年8月1日
    0
  • vmware安装苹果系统_vmware可以安装苹果系统吗

    vmware安装苹果系统_vmware可以安装苹果系统吗0202年了,虽然没有苹果机,但我有虚拟机呀。手把手教你在VMware安装苹果虚拟机,防坑避雷,亲测有效。文章目录写在前面VMareunlockios镜像创建虚拟机坑点不可恢复错误:(vcpu-0)鼠标键盘失灵联网问题安装系统

    2022年10月1日
    2
  • charles乱码怎么解决_抓包精灵ssl乱码

    charles乱码怎么解决_抓包精灵ssl乱码前言当使用Charles抓包时,发现数据都是乱码,这时需要安装证书解决办法1.点击charles窗口,点击左上角Help->SSLProxying→InstallCharles

    2022年7月29日
    7
  • innerHTML和outerHTML的区别

    innerHTML和outerHTML的区别为什么要总结innerHTML和outerHTML的区别呢,主要是在看vue.js官方文档时,看到生命周期时)]原生的方法有点忘了,所以要重拾起来。示例如下:<!DOCTYPEhtml><htmllang=”en”><head><metacharset=”UTF-8″><metaname=”viewport”content=”width=device-width,initial-scale=1.0″>

    2022年6月25日
    24
  • GridBagConstraints布局[通俗易懂]

    GridBagConstraints布局[通俗易懂]查看API文档,我们就知道GridBagConstraints有十一个属性!自我感觉API文档里面有些东西讲得不是很好理解,就象gridx与gridy这两个属性一样,有些书上说gridx表示行,gridy表示列!API文档里面更是讲了一大堆。    现在,提供本人对这些属性的理解:  1,  gridx:表示组件的左边缘与网格左部之间的距离,如果学过HTML的话,那么gridx

    2022年9月9日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号