什么是Web/移动应用程序的授权?
Web/移动应用程序的会话管理对终端用户非常重要。会话管理包括两个重要部分,即认证和授权。认证部分是“我是谁?”问题的答案,授权部分是“我能做什么?”问题的答案。
简而言之,我们会观察Linux操作系统中write,read和文件权限的授权阶段。如果用户想要编写文件,则必须授予用户“w”权限,若使用不当,则存在一些隐私侵权行为。
什么是IDOR漏洞?
应用程序中可能有许多变量,例如“id”,“pid”,“uid”。虽然这些值通常被视为HTTP参数,但它们可以在和中被找到。攻击者可以通过更改这些变量的值来访问,编辑或删除任何其他用户的对象。此漏洞称为IDOR(不安全的直接对象引用)。
首先,它需要了解软件开发人员开发的应用程序流程。当已登录的用户进入Web/移动应用程序时,需要了解所有模块功能及其子模块功能。同样重要的是要记住,此漏洞与安全测试中的XSS,CSRF一样严重,并且是一种通过自动化测试或手动测试检测不易发现的漏洞。
下图说明了存在于用户和服务器之间的IDOR漏洞。
在本文中,将讨论以下主题:
有效且快速的IDOR漏洞测试
您可以使用浏览器的秘密选项快速地实验测试IDOR漏洞。因此,当您将常规选项用作普通用户时,可以将秘密选项用作攻击者,这将确保您不会注销。
您可以使用Burp Suite的HTTP历史记录选项检查所有请求。HTTP历史记录功能显示设备(浏览器,电话,平板电脑)和应用程序服务器之间的所有流量。此外,您可以使用Burp Suite的范围功能进行快速测试。因为范围功能对于创建目标列表非常有用,并且范围功能允许仅显示测试范围的相关数据。
例如, 我们测试的公司“”,在范围页面上范围仅以“”的形式给出。在这种情况下,您可以通过右键单击请求来添加相关范围。
您可以根据给定的范围编辑此添加的范围值,如下所示。
最后,您应该通过选择“仅显示范围内项目”在HTTP历史记录选项中执行以下过滤。
这些将帮助您更好地理解应用程序中的,,super等角色。
捕获所有请求
当IDOR漏洞测试时,基本上,你需要执行Web/移动应用程序应创建的所有请求。因为如果你在应用程序中更改了某些内容,则可以使用此案例创建其他请求。如果你有应用程序的所有API请求,如WSDL文件,页面等,并且它定期工作,那么你很幸运,你可以使用它,它将为你提供IDOR测试的便利。
在私有程序中遇到一个例子。在移动应用程序中购买时会添加信用卡。在测试请求之后,可以认为没有任何漏洞。但是,当进行第二次购买时,会看到信用卡选择屏幕,此时IDOR漏洞就出现了。当你在此处选择信用卡时,应用程序将在请求中将信用卡ID发送到服务器,并且该请求提供通路访问其他用户的信用卡数据来更改该信用卡ID。
在另一个私有程序中,Web应用程序包括一个应用内消息传递系统。用户可以向其他用户发送消息并将其他用户添加到自己的消息中。当用户尝试访问自己的消息之一时,请求转到“//5955”并且自己的消息ID似乎是“5955”。同样,当通过向“//5955”发出请求来尝试访问另一个用户的消息时,将不会访问该消息。当用户想要将另一个用户添加到自己的消息时,会出现如下所示的请求。
POST /messages/5955/invite HTTP/1.1Host: example.comUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0Accept: */*X-Requested-With: XMLHttpRequestCookie: my_cookiesConnection: closeuser=testaccount2
当检查此请求时,用户可以将自己添加到其他用户的消息并访问其所有消息。
此外,必须充分了解应用程序中的角色,以便识别IDOR漏洞。如果你知道角色应该做什么或不应该做什么,那么在弱点检测阶段它将非常有用。所以首先,你应该深入了解应用程序!
如何找到注射点
如前所述,您可以使用应用程序的所有功能找到许多IDOR漏洞测试请求。在IDOR漏洞测试中未提供API端点时,.html源代码或.js文件会很有用。这些文件通常包含有趣的东西和ajax请求,你可以使用这些文件中提出的请求执行IDOR漏洞测试。这可以是应用程序早先提出的请求,也可能是将来可能的请求。
如果幸运的话,你只能看到授权的管理员用户在文件中看到的请求。因此赚钱软件漏洞,源代码,特别是文件应该好好地进行分析。
此外赚钱软件漏洞,你可以在“”上搜索Web应用程序的旧版本,或许可以在旧的文件中找到有用的请求,或者你也可以使用dorks搜索搜索引擎中的请求。
在某些情况下,id值不是唯一的,如1,2,3,100,1000等,这些id值可以是编码或散列值。如果你面对编码值,则可以通过解码编码值来测试IDOR漏洞。如果你面对散列值,则应测试散列值是可访问值还是可预测值。在另一种情况下,您可以在“”标头中访问散列值,因此这些脚本是被可以复制的。
例如,你无法访问其他用户的对象,但你可以在对象页面的源代码中找到对象的散列ID值,你可以在受害者用户的应用消息中找到对象的散列id值(这将减少bug的影响)。因此,您可以创建2个测试帐户作为X和Y,然后在Burp历史记录中的Y请求中尝试X的散列id值。
如果我们触及另一个主题,某些应用程序的请求可能会吓到你。例如,包含多个参数的请求似乎过于复杂。
如果你想在此请求中找到注入点,可以使用Burp Suite的比较工具。你需要右键单击该请求,选择“发送到”选项。然后,你可以创建使用另一个对象的相同请求并发送到比较工具。
当你访问比较工具并单击“单词”按钮时,你将看到一个窗口,其中包含更改点。
————————— END —————————
限 时 特 惠: 本站每日更新海量各大内部创业教程,一年会员只需168元,全站资源免费下载 点击查看详情
站 长 微 信: 402999666
1、本站资源针对会员完全免费,站点中所有资源大部分为投稿作者付费教程,切勿轻易添加教程上除本站信息外的任何联系方式,谨防被割,如有疑问请随时联系客服。
2、本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。