越权漏洞(IDOR)笔记

 

越权漏洞 IDOR 全称为 Insecure Direct Object Reference 不安全的直接对象参考

什么是IDOR漏洞?

应用程序中可以有许多变量,例如“ id”,“ pid”,“ uid”。尽管这些值通常被视为HTTP参数,但可以在标头和cookie中找到它们。

攻击者可以通过更改值来访问,编辑或删除任何其他用户的对象。此漏洞称为IDOR。

首先,它需要了解软件开发人员开发的应用程序流程。当登录用户进入Web /移动应用程序时,需要了解所有模块功能及其子模块功能。

同样重要的是要记住,此漏洞在安全测试中与XSS,CSRF一样严重,并且是一种不容易发现的漏洞(自动测试或手动测试)。

下图显示了用户和服务器之间的IDOR漏洞。

IDOR漏洞的影响

Bugcrowd VRT中的IDOR漏洞似乎是“依赖影响的变量 ”,因为它们的影响完全取决于您提交的错误。

但是我们根据我们的经验创建了一个有关IDOR漏洞影响的列表,如下所示。

P1 –帐户接管,访问非常重要的数据(例如信用卡)

P2 –更改/删除其他用户的公共数据,访问私人/公共重要数据(例如票证,发票,付款信息)

P3 –访问/删除/更改私人数据(有限的个人信息:姓名,地址等)

P4 –访问任何不重要的数据

IDOR漏洞的影响取决于项目经理的判断力。

 

用于辅助测试越权漏洞的工具:

Burpsuite的三款插件可用于辅助寻找越权漏洞。

  • Autorize
  • Authz(水平越权测试)
  • AuthMatrix(垂直越权测试)

Authz插件可以查看其他用户的请求响应。因此,我们可以将X用户的请求发送到Authz并尝试以Y用户身份访问它的响应。

另外,我们可以为测试IDOR漏洞添加自定义标头,例如“ X-CSRF-Token”。

AuthMatrix插件允许通过注册应用程序中角色的cookie值或标头值来执行授权检查。

如果有API请求,则可以将Wsdler插件用于Burp Suite,SoapUI,Postman等。还可以尝试使用该工具尝试所有GET,POST,PUT,DELETE,PATCH请求以及成功和快速的API测试。

 

如何防止IDOR漏洞?

首先,在创建应用程序时,应该控制所有普通,ajax和API请求。例如,只读用户可以在应用程序中写入任何内容吗?还是非管理员用户可以访问并创建仅由管理员用户创建的API令牌?因此,要测试所有IDOR漏洞,您应该像黑客一样思考。

您可以为所有端点在您的应用程序上提供权限。如果您的“ privatesection”端点包括诸如“ / api / privatesection / admins”,“ / api / privatesection / console”,“ / api / privatesection / tokens”之类的API请求,则可以为非管理员用户阻止该端点。

同样,为了使攻击者的工作更加艰辛,甚至有时甚至阻止它,您可以使用哈希函数并使用哈希值代替常规数字或字符串。

 

部分内容翻译自:

https://www.bugcrowd.com/blog/how-to-find-idor-insecure-direct-object-reference-vulnerabilities-for-large-bounty-rewards/

posted @ 2020-05-19 11:12  AirCrk  阅读(2521)  评论(1编辑  收藏  举报