Account Takeover via IDOR: From UserID to Full Access
好的,我现在需要帮用户总结一篇文章的内容,控制在100字以内。用户的要求是直接写文章描述,不需要以“文章内容总结”或“这篇文章”开头。 首先,我得通读整篇文章,理解其主要内容。文章讲的是发现了一个未认证的API端点,泄露了敏感用户数据。然后作者进一步发现了另一个漏洞:通过在匿名会话中填写假信息并修改请求,可以劫持其他用户的账户。 接下来,我需要提炼关键点:未认证端点、敏感数据泄露、匿名会话填写假信息、修改请求参数、劫持账户、利用密码重置功能确认漏洞。 现在要把这些点浓缩成一句话,不超过100字。要注意逻辑连贯,涵盖主要发现和影响。 可能的结构是:先讲发现未认证端点导致数据泄露,然后描述如何通过修改请求劫持账户,并提到利用密码重置确认漏洞。 最后检查字数,确保在限制内,并且语言简洁明了。 </think> 作者发现一个未认证API端点导致敏感用户数据泄露后,在匿名会话中填写假信息并修改请求参数成功劫持其他用户账户,并通过密码重置功能确认漏洞存在。 2025-11-9 09:19:13 Author: infosecwriteups.com(查看原文) 阅读量:40 收藏

0xP0L73R63157

Press enter or click to view image in full size

After discovering an unauthenticated endpoint leaking sensitive user data in the same application (see my previous writeup here), I had a feeling there was more waiting beneath the surface. The app was behaving oddly, and I was still navigating it through an anonymous session.

While browsing the profile settings page, I noticed the input fields were blank. This was probably because no real user was associated with the session. Still, I decided to fill them out and observe what happened behind the scenes.

When I submitted the form and captured the request, something in the structure caught my attention. It was subtle but interesting enough to take a closer look.

1. The PII leak that started it all

Earlier in this same application, I discovered an unauthenticated endpoint that exposed detailed user information. By manipulating a factoryId parameter, I was able to enumerate users across different tenants and retrieve sensitive fields like names, email addresses, phone numbers, and admin flags; all without authentication:

Press enter or click to view image in full size

That vulnerability had already raised concerns, but the user data I found there ended up playing a key role in this second discovery.

2. Finding the entry point

After revisiting the data I had uncovered earlier, I decided to go back into the application and interact with as many features as I could. I clicked through every visible option, trying to understand what kind of functionality was available inside the anonymous session.

That’s when I found the profile settings page.

At first, the page looked empty. All of the input fields were blank, with no user data filled in. Still, I was curious. I filled in every field with dummy values and submitted the form while intercepting the request. What came through in Burp caught my attention.

Note: This screenshot was captured in a local testing environment that replicates the original application’s behavior. The vulnerability demonstrated here behaves the same way as it did on the actual target.

3. Exploitation

After submitting the form and intercepting the request in Burp Suite, I took a closer look:

Press enter or click to view image in full size

I replaced the default user ID in both the query parameter (id) and the request body (User.Id) with the ID of a real user I had previously identified during the PII enumeration.

I left everything else the same and changed only one field: the email address.

When I forwarded the request, the server responded with a 302 Found status and redirected me to /users/u001:

Press enter or click to view image in full size

That path itself redirected again back to the blank profile settings page, just like before. Nothing in the UI indicated whether the update had worked.

4. Proving the vulnerability

After submitting the modified request, I wanted to confirm whether the change had any real impact beyond the user interface. Specifically, I was interested in seeing if the updated email address was being used by the application in account-related workflows.

I found a password reset feature on the login page and entered the new email address I had used during testing: [email protected]. Shortly after, I received a password reset email containing a working reset link.

This confirmed that the application had successfully updated the user’s email and was relying on that field for account recovery. In a real-world scenario, this would have allowed a malicious actor to take full control of another user’s account by triggering a password reset.

To avoid any disruption, I immediately used the same request format to revert the email address back to its original value. No further actions were taken.

This was enough to fully confirm the vulnerability and demonstrate its severity without causing any lasting impact.

5. Reporting

After verifying the impact and restoring the affected data, I submitted a detailed report to the program. I included full reproduction steps, the modified request, and the confirmation via the password reset flow.

The response was quick and professional. The issue was acknowledged, reproduced, and triaged shortly after submission.

The vulnerability was assessed as critical due to its potential to allow full account takeover without authentication.

It only takes one forgotten check to open the door completely.


文章来源: https://infosecwriteups.com/account-takeover-via-idor-from-userid-to-full-access-ade4f980cfb4?source=rss----7b722bfd1b8d---4
如有侵权请联系:admin#unsafe.sh