☁️ 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来分享你的黑客技巧**。