☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 - 你在一家**网络安全公司**工作吗?想要在HackTricks中看到你的**公司广告**吗?或者你想要获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)! - 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family) - 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com) - **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。** - **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
**文章来源** [**https://medium.com/@vickieli/how-to-find-more-idors-ae2db67c9489**](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**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)! - 发现我们的独家[NFTs](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family) - 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com) - **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。** - **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。