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