8 KiB
☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
你在一家网络安全公司工作吗?想要在HackTricks中看到你的公司广告吗?或者你想要获得PEASS的最新版本或下载PDF格式的HackTricks吗?请查看订阅计划!
-
发现我们的独家NFTs收藏品——The PEASS Family
-
加入 💬 Discord群组 或 Telegram群组,或者关注我在Twitter上的🐦@carlospolopm。
-
通过向hacktricks repo和hacktricks-cloud repo提交PR来分享你的黑客技巧。
文章来源 https://medium.com/@vickieli/how-to-find-more-idors-ae2db67c9489
寻找IDOR的意想不到的地方
不要忽视编码和哈希ID
当面对编码的ID时,可以尝试使用常见的编码方案对编码的ID进行解码。
如果应用程序使用了哈希/随机ID,请查看ID是否可预测。有时应用程序使用产生不足熵的算法,因此在仔细分析后,实际上可以预测ID。在这种情况下,尝试创建一些帐户以分析这些ID是如何创建的。您可能能够找到一个模式,从而可以预测属于其他用户的ID。
此外,可能可以通过另一个API端点、应用程序中的其他公共页面(其他用户的个人资料页面等)或通过引用者的URL泄漏随机或哈希ID。
例如,我曾经发现一个API端点,允许用户通过哈希对话ID检索详细的直接消息。请求看起来有点像这样:
GET /api_v1/messages?conversation_id=SOME_RANDOM_ID
这乍一看似乎没问题,因为_conversation_id_是一个长的、随机的、包含字母和数字的序列。但后来我发现,实际上只要知道用户的用户ID,就可以找到他们的每个对话的列表!
GET /api_v1/messages?user_id=ANOTHER_USERS_ID
这将返回属于该用户的_conversation_ids_列表。而_user_id_在每个用户的个人资料页面上是公开可见的。因此,您可以通过首先在其个人资料页面上获取他们的user_id,然后检索属于该用户的conversation_ids列表,最后通过API端点/api_v1/messages加载消息来阅读任何用户的消息!
如果你猜不到,试着创建它
如果对象引用ID似乎不可预测,请尝试查看是否有办法来操纵这些对象ID的创建或链接过程。
即使应用程序没有要求,也要提供一个ID
如果应用程序生成的请求中没有使用ID,请尝试将其添加到请求中。尝试添加_id、user_id、message_id或其他对象引用参数,并查看它是否对应用程序的行为产生影响。
例如,如果此请求显示您的所有直接消息:
GET /api_v1/messages
这个呢?它会显示其他用户的消息吗?
GET /api_v1/messages?user_id=ANOTHER_USERS_ID
HPP(HTTP参数污染)
HPP漏洞(为同一参数提供多个值)也可能导致IDOR。应用程序可能不会预料到用户会提交同一参数的多个值,通过这样做,您可能能够绕过在端点上设置的访问控制。
虽然这似乎很少见,我以前从未见过这种情况发生,但从理论上讲,它会像这样。如果此请求失败:
GET /api_v1/messages?user_id=ANOTHER_USERS_ID
以下是关于黑客技术的一本书中的内容。以下内容来自文件/hive/hacktricks/pentesting-web/idor.md。将相关的英文文本翻译成中文,并保持完全相同的markdown和html语法。不要翻译代码、黑客技术名称、黑客术语、云/SaaS平台名称(如Workspace、aws、gcp...)、泄漏一词、渗透测试和markdown标签。此外,请不要添加任何额外的内容,只需提供翻译和markdown语法即可。
GET /api_v1/messages?user_id=YOUR_USER_ID&user_id=ANOTHER_USERS_ID
或者这样:
GET /api_v1/messages?user_id=ANOTHER_USERS_ID&user_id=YOUR_USER_ID
或者将参数提供为列表:
GET /api_v1/messages?user_ids[]=YOUR_USER_ID&user_ids[]=ANOTHER_USERS_ID
盲目IDORs
有时,容易受到IDOR攻击的端点不会直接回应泄露的信息。它们可能会导致应用程序在其他地方泄露信息:在导出文件、电子邮件甚至文本提醒中。
更改请求方法
如果一个请求方法不起作用,还有很多其他方法可以尝试:GET、POST、PUT、DELETE、PATCH...
一个常见的技巧是将POST替换为PUT或反之亦然:相同的访问控制可能没有被实施!
更改请求的文件类型
有时,切换请求文件的文件类型可能会导致服务器以不同的方式处理授权。例如,尝试在请求URL的末尾添加.json并观察发生了什么。
如何增加IDOR的影响力
首先处理关键IDOR
首先在关键功能中寻找IDOR。基于写入和读取的IDOR都可能具有很高的影响力。
在改变状态(写入)的IDOR方面,密码重置、密码更改、帐户恢复IDOR通常具有最高的业务影响力。(例如,与“更改电子邮件订阅设置”IDOR相比。)
至于非状态更改(读取)的IDOR,寻找处理应用程序中敏感信息的功能。例如,寻找处理直接消息、敏感用户信息和私人内容的功能。考虑应用程序中使用此信息的功能,并相应地寻找IDOR。
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
你在一家网络安全公司工作吗?想要在HackTricks中看到你的公司广告吗?或者想要获得PEASS的最新版本或下载PDF格式的HackTricks吗?请查看订阅计划!
-
发现我们的独家NFTs收藏品The PEASS Family
-
加入💬 Discord群组或电报群组,或在Twitter上关注我🐦@carlospolopm。
-
通过向hacktricks repo和hacktricks-cloud repo提交PR来分享你的黑客技巧。