Platform

Platform overview How it works Authorization testing Evidence & reports Private scanning Integrations

Solutions

Security agencies Product teams Regulated industries Partner programme

Learn

Blog Knowledge hub Compare

Resources

Pricing Documentation FAQ Security & data What we haven’t proved

Company

About Contact Careers Sign in to the platform Start a $199 pilot

Home / Knowledge hub / Account takeover

Knowledge hub

Account takeover

An attacker ends up signed in as one of your real users.

What it means

Account takeover means an attacker ends up signed in as one of your users. No clever exploit is required. A reused password does it. So does a reset link that never expires. So does a session that outlives a logout, or a code an attacker can request forever.

Your application sees nothing wrong. The requests carry correct credentials and come from a real account, which is exactly why nobody notices.

Why it matters

The account itself is rarely the cost. The data it reads and the actions it takes are: the refunds it issues, the exports it downloads, the colleagues it invites. One support login is worth more to an attacker than a thousand customer ones.

Warning is thin. Nothing alarms on a correct password used by the wrong person. The first signal tends to be a customer asking why their address changed. By then you are not fixing a bug, you are reconstructing what a legitimate session did.

How it shows up

Look at the edges of the login rather than the login itself. Does a reset token work twice? Does an email change ask for the current password? Does the session survive a password change? Can someone skip a second factor by replaying the step before it?

Those answers sit in the reset and session flows, not in the password policy everyone argues about.

Then check what an account can reach once somebody is inside. A support login that exports every customer is a different problem from a customer login that exports one. We test each flow as its own path and hand over the request that worked.

Questions people ask

Account takeover, answered

How would we even know an account had been taken over?

Usually you would not, at least not from the login itself. The request authenticates correctly and looks like every other one.

The signals arrive later and from elsewhere: a changed email address, an export nobody ordered, a customer asking about a payment. An audit log that records reads as well as writes turns those hints into an answer.

Why does everything fall back to email?

Because almost everyone has an inbox, and your reset flow trusts it. That quietly makes the mailbox the real credential for your product.

It is a practical choice rather than a good one. If email is your recovery route, treat a mailbox compromise as a full takeover of everything downstream.

If we have two factor authentication, does the reset flow still matter?

Yes, and reset is often where it falls down. A flow that signs the user straight in after a reset, without asking for the second factor, has made the second factor optional.

OWASP treats forgotten password as a security mechanism in its own right, with its own token rules and its own enumeration risks.

Can an attacker get past two factor authentication?

Some forms of it, yes. A code typed into a convincing fake page works for the attacker within its short life. A push prompt sent over and over at two in the morning eventually gets approved by a tired person.

OWASP still calls multi-factor authentication the best defence against most password-related attacks. Keep it, and treat it as a strong lock rather than a sealed door.

Is account takeover the same as credential stuffing?

They overlap. Credential stuffing is one route in: replaying username and password pairs leaked from somewhere else. Password spraying is another, trying one common password across many accounts.

Account takeover is the outcome. Stuffing, spraying, a weak reset flow or a stolen session are all ways of getting there.

Could someone sign in as them?

We test the flows around your login: reset, email change, sessions after logout, skipped second factors. Each finding arrives with the request that worked. A 30 day pilot on one app is $199.

Or start with a $199 pilot on one application: thirty days, success criteria agreed before day one, credited against the annual if you convert.