自从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给出的内容。

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

  1. 赏金猎人漏洞_如何获得漏洞赏金

    赏金猎人漏洞 Bug bounties are a great way to gain experience in cybersecurity and earn some extra bucks. 错 ...

  2. 越权漏洞(IDOR)测试技巧

    文章目录 一.IDOR介绍 二.常见的测试技巧 1.改变HTTP请求方法 2.路径穿越绕过 3.改变Content-type(内容类型) 4.用数字ID替换非数字 5.大小写替换绕过 6.用通配符替换 ...

  3. 不安全的直接对象引用

    目录 定义 出现的原因 场景案例 如何防范 定义 不安全的直接对象引用(IDOR)允许攻击者绕过网站的身份验证机制,并通过修改指向对象链接中的参数值来直接访问目标对象资源,这类资源可以是属于其他用户的 ...

  4. burpsuite 越权_挖洞经验 | 用BurpSuite实现越权漏洞(IDOR)的自动发现识别

    这里分享一个自动化发现IDOR(越权)漏洞的方法,那就是在BurpSuite中利用Autozie和Autorepeater插件实现IDOR漏洞的探测识别,而无需针对每个请求手动去变化参数或请求. ID ...

  5. C++ 笔记(16)— 类和对象(类定义、类实例对象定义、访问类成员、类成员函数、类 public/private/protected 成员、类对象引用和指针)

    1. 类的定义 类定义是以关键字 class 开头,后跟类的名称.并在它后面依次包含类名,一组放在 {} 内的成员属性和成员函数,以及结尾的分号. 类声明将类本身及其属性告诉编译器.类声明本身并不能改 ...

  6. java的对象是什么意思_Java中对象和对象引用的区别,引用、指向是什么意思

    Java的变量分为两大类:基本数据类型和引用数据类型. 其中基本类型变量有四类8种:byte short int long float double char boolean,除了8种基本数据类型变量 ...

  7. java 初识对象和对象引用的关系

    在接触java之前就知道了java的对象引用,但概念一直很模糊,看了<Head First in Java>后觉得书中的例子很有趣,便分享给大家. 首先要搞清对象引用是什么? 我们都知道变 ...

  8. c++中的对象引用(object reference)与对象指针的区别

    2019独角兽企业重金招聘Python工程师标准>>> ★ 相同点: 1. 都是地址的概念: 指针指向一块内存,它的内容是所指内存的地址:引用是某块内存的别名. ★ 区别: 1. 指 ...

  9. php http面向对象编程实例,PHP面向对象编程——PHP对象引用实例代码

    /* ?* WEB开发笔记 www.chhua.com 每日练习 PHP面向对象编程--PHP对象引用实例代码 ?*/ /*代码演示 ?* */ class HelloWorld {//被引用对象 ? ...

最新文章

  1. VMware ESXi客户端连接控制台时提示“VMRC控制台连接已断开...正在尝试重新连接“的解决方法
  2. 如何排查模组无法识别SIM卡?
  3. Animy.js,自己编写的功能丰富的html动画库
  4. 关于selenium+python的框架
  5. mysql历史命令_MySQL交互技巧
  6. ssh汉字乱码怎么办_[转]SSH Secure Shell Client中文乱码的解决办法
  7. java list find方法_Java 8 Stream - Find Max and Min from List - 入门小站-rumenz.com
  8. android模拟器游戏按键映射,刺激战场模拟器按键映射对比 逍遥安卓模拟器智能按键最好...
  9. wallys/IPQ8074a/2x(4×4 or 8×8) 11AX MU-MIMO DUAL CONCURRENT EMBEDDEDBOARD
  10. SCSI代码分析(5)SCSI驱动编程模式
  11. Python 爬虫逆向破解案例实战 (二):STEAM密码加密 (RSA) 逆向
  12. 安卓坐标系转换之二:旋转角(欧拉角)
  13. 设置了普通密码的excel打不开怎么办
  14. Linux 网桥代码分析 六 网桥数据转发函数分析
  15. 在Java控制台实现学生成绩管理系统
  16. Win10家庭版没有权限访问网上邻居,不能连接共享打印机的解决办法
  17. 生产者消费者模型的作用是什么
  18. 20款前端特效动画及源码
  19. win10无线投屏_Win10系统自带手机投屏功能真的能取代投屏器吗?
  20. 是德示波器软件,Keysight示波器上位机软件NS-Scope

热门文章

  1. C语言实现输入三角形两边边长以及夹角求三角形第三边边长与面积
  2. python语言程序培训
  3. 如何查看linux的分区类型,linux 下查看硬盘分区类型
  4. idea 谷歌浏览器配置 通过浏览器打开页面 open in brower
  5. 带你了解Maven,并搞定安装和配置
  6. 五大地形等高线特征_五种基本地形特征
  7. 一文读懂什么是线性系统
  8. 飞塔防火墙配置2条网络链路分流
  9. Marketing and Monetizing on YouTube YouTube上的营销和货币化 Lynda课程中文字幕
  10. 恶意软件通杀 Win、macOS、Linux 三大系统;唱片巨头起诉 Youtube-dl 的托管服务商;2022 年不是 Linux 桌面元年 | 开源日报