password-reset-methodology

Tests password reset flows for verification code flaws and unauthorized account modification.

1.7k|238|Updated Dec 7, 2019
One-click install
npx skills add https://github.com/wgpsec/AboutSecurity --skill password-reset-methodology
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: password-reset-methodology
Source: https://github.com/wgpsec/AboutSecurity/tree/main/skills/exploit/auth/password-reset-methodology
Command: npx skills add https://github.com/wgpsec/AboutSecurity --skill password-reset-methodology

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

During authorized penetration tests, password reset, registration, and profile-modification endpoints often contain logic flaws such as verification code leakage, brute-forceable codes, and missing authorization checks. This Skill provides a structured methodology to systematically identify and validate these weaknesses.

Core Features & Use Cases

  • Reset Flow Analysis: Maps the forgot-password chain step by step, capturing requests and responses to locate where codes are generated, returned, and validated.
  • Verification Code Testing: Detects code echo in responses, brute-forceable short codes without rate limits, validation bypass via parameter removal or replay, and unrestricted SMS sending endpoints.
  • Arbitrary User Modification & Privileged Registration: Tests replacing target phone numbers or user IDs in reset requests, and abusing unauthenticated interfaces such as registersysuser, goedituser, or login_tologin.do to modify other users' passwords or register admin accounts.
  • Use Case: While assessing a ThinkPHP-based shopping site, use this methodology to test the login, registration, and password recovery SMS code logic separately, confirming whether a code issued to account A can reset account B.

Quick Start

Analyze the target application's forgot-password flow using this methodology and check whether the verification code can be leaked, brute-forced, or reused to reset another user's password.

Frequently Asked Questions about password-reset-methodology

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I test a password reset flow for vulnerabilities?

Capture every request and response in the forgot-password chain, from identity submission through code verification to password change. Then check whether the code is echoed in responses, short enough to brute force, replayable, or removable from the validation request.

How to test SMS verification code security in web apps?

Check whether the SMS code appears in response bodies, whether the sending endpoint lacks rate limits enabling SMS bombing, and whether the code can be bypassed by emptying the parameter or replayed concurrently. Test login, registration, and recovery flows separately.

What is an arbitrary user password reset vulnerability?

It occurs when the reset endpoint accepts a target phone number or user ID without verifying ownership, letting an attacker pair their own valid code with a victim's identifier. Confirm it by using account A's code to reset account B, then stop once the flaw is proven.

Can ThinkPHP applications have verification code flaws?

Yes. ThinkPHP-based mall systems commonly store codes in session, allowing concurrent replay, or leak codes in response packets. Each of the login, registration, and password recovery code paths should be tested independently.

What are the authorization limits when testing password reset flaws?

Testing is restricted to authorized penetration tests only. Do not bulk-reset other users' accounts; stop and document once unauthorized modification is confirmed. Related techniques like 401/403 bypass and CAPTCHA bypass are covered by separate methodologies.