A user signs in with a passkey, changes the recovery email from an old session, and adds a new payment destination through a mobile API. Which step established that the same person was still in control of the account? If the answer is “the user was logged in,” the application may be trusting a session long after the decision that created it.

The login page is a checkpoint. The login chain is every route into an account, every way to regain access, the session created afterward, and every consequential action that session can authorize. Its weak point may be a password reset, a support-assisted recovery, an alternate SSO route, or a direct API call that skips a confirmation screen. This applies to a bank transfer, an admin role change, a patient-record export, or a SaaS billing update.

You do not need access to criminal forums to investigate that chain. You need an inventory of your own paths, explicit security rules for each transition, and tests that try to break those rules.

Why this matters now

In a July 2026 study of underground tutorials, Radware analyzed 8,870 posts from 24 forums published between December 2022 and April 2026. After removing reposts, it counted 3,034 distinct guides. In its sample, the share classified as carding and identity theft rose from 19% in 2024 to 38% in the first four months of 2026. Those are shares of guides in the sampled forums, not a measure of attack frequency or success across the internet.

The useful lesson for defenders is narrower than a prediction about what criminals will do next: an attacker can study the sequence between entry and payoff. Your team should know that sequence at least as well as the person trying to misuse it. OWASP’s workflow testing guidance specifically calls for testing whether an application accepts steps out of order, repeated requests, or direct calls to later stages.

Draw the whole chain, including the exits and side doors

Start with one account type and one high-impact outcome. For example: “Can a newly recovered customer account add a payout destination?” Trace the real production architecture, then test against an authorized staging environment or dedicated test accounts. The application owner, identity team, and owners of the affected business action should build this map together.

Enrollment -> sign-in method -> MFA or passkey check -> session issued
| | |
| | -> refresh, logout, expiry
| -> fallback or recovery -> new authenticator
-> SSO, magic link, mobile API, support-assisted route
Authenticated session -> change email/phone -> add destination -> approve action
-> grant role/token -> export data -> close account

For each arrow, record the endpoint or service, identity and session state required, server-side rule, event emitted, and team that owns the rule. Include web, mobile, API, SSO, customer support, and administrative paths that reach the same account. If a route does not exist in your product, mark it out of scope; do not assume the main web journey represents every client.

Transition to inspectQuestion the owner must answerObservable proof
Login or federation callback to sessionWhich verified identity, factor, and account does this session represent?A test login creates a session for only the intended account; failed or incomplete authentication creates none.
Recovery or authenticator changeCan this path establish access with weaker evidence than normal sign-in? What happens to existing sessions?A recovery test produces the expected notification, binding change, and session handling; old credentials or tokens behave according to the documented policy.
Session to sensitive actionIs recent authentication or independent approval required for this specific action?A stale or lower-assurance session is rejected or challenged before the server commits the action.
Confirmation to executionAre the destination, amount, role, or data scope the same values the user approved?Changing a material value invalidates the approval; the final server-side check blocks execution.
Logout, expiry, or revocationWhich cookies, refresh tokens, and downstream sessions remain usable?Requests using revoked credentials fail across every affected client and service.

The exact controls depend on the risk of the action. A news-site profile edit and a wire transfer do not need identical friction. They do need a documented answer to what the session can do, when stronger proof is required, and how the service enforces it. OWASP’s authentication guidance recommends reauthentication after risk events and for critical actions; its transaction authorization guidance explains why the user should confirm the significant details of a sensitive operation and why the server must verify the authorization at execution time.

Test the transitions an attacker would skip

Use owned test accounts with different roles and authentication methods. Record the expected result before sending each request. Test at the API or service boundary as well as through the interface: a disabled button or a polished confirmation page does not enforce a rule on its own.

  1. Skip a step. With an authenticated test account that has not completed a required step-up check, call the final action endpoint directly. The server should reject the request and create no side effect. Check the database or downstream system, not only the HTTP status.
  2. Change the order. Attempt the same action immediately after account recovery or a change to email, phone, passkey, or MFA enrollment. Confirm that the documented risk policy applies to the new state. NIST’s Digital Identity Guidelines treat account recovery as a distinct process with its own requirements and notifications; recovery is not simply another login button.
  3. Switch channels. Repeat the test through the web UI, mobile API, and any supported federated or support-assisted route. If one channel calls a different backend or uses a legacy endpoint, compare the authorization decision and audit event.
  4. Modify the approved action. In a test transaction, change the destination, amount, role, or export scope after confirmation but before execution. A previous approval must not authorize a materially different request. OWASP recommends binding authorization to significant transaction data and rechecking at the point of execution.
  5. Replay and revoke. Repeat a completed request, reuse an expired approval, and try a revoked session or refresh token. The server should enforce the intended one-time, expiry, and revocation behavior without duplicating the action.

The pass condition is stronger than “the page displayed an error.” For every negative test, verify no business side effect, the correct server-side denial, and an event that identifies the rejected transition. For positive tests, verify that legitimate users can still finish the workflow. OWASP’s authorization guidance recommends deny-by-default checks and tests for authorization logic; its API guidance makes the same broader point about understanding the business flow behind an endpoint.

Fix the broken rule at the point of decision

An application or identity owner should put authentication and authorization checks in the server path that commits the action. The check must use server-trusted state: who owns the account, what assurance the current session actually has, whether approval is recent and bound to this action, and whether the account is in a recovery or restricted state. Do not let a client-supplied verified, step_up_complete, or workflow-stage flag make that decision.

The owner of the sensitive action should define which changes require step-up authentication, a cooling-off period, an independent approver, or a transaction-specific confirmation. Those are risk decisions, not universal settings. For money movement or role grants, verify the destination or privilege being approved. For data export, verify the dataset and scope. If a route cannot yet enforce the required rule, restrict or suspend that route while implementing the server-side control and checking that legitimate access still works.

The identity and platform teams should document session expiry, refresh, revocation, and post-recovery behavior. NIST’s session guidance distinguishes overall and inactivity timeouts and requires an expired session to terminate. Whether a particular security event invalidates every session should be an explicit, tested policy. MFA or passkeys at initial sign-in reduce specific entry risks, but they do not by themselves validate a later action performed through a stolen session or a weaker recovery path.

Make the chain visible in your own logs

The application and SOC teams need enough telemetry to reconstruct a journey without recording secrets. At minimum, link a stable account identifier and a non-secret session or correlation identifier to authentication outcome, recovery, factor change, session issuance or revocation, step-up result, and the sensitive action’s request, approval, denial, and execution. Include the route or client type and the relevant object identifier. Keep tokens, passwords, recovery codes, and full session IDs out of logs.

Use those events to look for sequences the business would question: recovery followed by a new payout destination; a new device followed by an export; an approval for one amount followed by an execution for another; or repeated calls to a final endpoint without its prerequisite event. These are investigation leads, not proof of fraud. OWASP’s logging guidance explicitly includes authentication, authorization, session failures, high-risk functions, and attempts to bypass workflow order. A detection is useful only if responders can identify the owner, inspect the account’s recent chain, and hold or reverse the affected action where the business process allows it.

A one-week starting point

Choose one high-impact outcome rather than trying to diagram every feature at once. The product owner names the outcome and all supported entry routes. Identity and application engineers document the state transitions and server checks. A tester uses dedicated accounts to try skipped, reordered, modified, and replayed steps. The SOC verifies that each test can be reconstructed from events. Finish with a short list of gaps, owners, and retest dates.

If you can answer who entered, by which route, with what proof, through which session, and who authorized the final action, you know your chain. If a step has no owner, no server-side rule, or no observable result, that is the next place to investigate.

Sources