Lab 05 β Authentication, Session and Account Security Testing
Welcome to:
Lab 05 β Authentication, Session and Account Security Testing
This is the final Bug Bounty Hunter lab in this sequence.
In Lab 04, you mapped:
Users
Roles
Objects
Features
Requests
APIs
Workflow States
Security BoundariesYou now understand how NovaCloud works.
The next step is to test one of the most important boundaries in the entire application:
IdentityEvery authorization decision depends on the application correctly answering:
Who IsMaking This Request?Authentication and session security determine whether a user can safely move through:
Unauthenticated βAuthenticated βMFA Verified βAuthorized Session βLogout / RevocationYour mission is to assess this lifecycle using only:
Researcher-Controlled Accounts
Researcher-Controlled Sessions
Training Data
Minimal Necessary ValidationMission Information
Section titled βMission InformationβYour Role
Section titled βYour RoleβYou are operating as a:
Bug Bounty Hunter
Application Security Researchercontinuing the fictional:
NovaCloud Security Research Program
Your primary testing surfaces are:
app.novacloud.test
auth.labs.novacloud.test
api.novacloud.testYou will assess:
Registration
Login
Session Creation
Session Rotation
Logout
Password Change
Password Reset
Recovery
Token Lifecycle
Authentication StateMission Objective
Section titled βMission ObjectiveβBy the end of this lab, you should be able to answer:
How Does NovaCloudEstablish Identity?
How Is a Session Created?
How Long Does It Last?
What Happens After Logout?
What Happens AfterPassword Change?
How Are Reset TokensCreated and Invalidated?
Can Authentication StatesBe Skipped or Reused?Lab Objectives
Section titled βLab ObjectivesβBy completing this lab, you will learn how to:
-
map the complete authentication lifecycle.
-
identify session cookies and bearer tokens.
-
distinguish session identifiers from application data.
-
establish authentication baselines.
-
compare pre-login and post-login state.
-
validate session rotation.
-
assess logout behavior.
-
assess session invalidation.
-
test password-change effects on active sessions.
-
map password-reset workflows.
-
validate reset-token expiry.
-
validate reset-token single use.
-
assess token binding.
-
assess account recovery.
-
identify MFA state boundaries where available.
-
detect stale authentication state.
-
test concurrent sessions safely.
-
distinguish client logout from server revocation.
-
document authentication findings.
-
create reproducible evidence.
-
define and follow stop conditions.
-
produce a professional authentication assessment summary.
Prerequisites
Section titled βPrerequisitesβYou should have completed:
Lab 01 β Build Your Professional Bug Bounty Research Environment
Lab 02 β Bug Bounty Program Scope Analysis and Target Prioritization
Lab 03 β Reconnaissance and Attack Surface Mapping
Lab 04 β Web Application Mapping and Security Boundary AnalysisYou should also understand:
HTTP
Cookies
Bearer Tokens
Sessions
Authentication
Authorization
Password Reset
MFA ConceptsLab Deliverables
Section titled βLab DeliverablesβBy the end of this lab, create:
01 Authentication_Flow_Map.md
02 Authentication_Endpoints.csv
03 Session_Register.csv
04 Token_Lifecycle_Map.md
05 Authentication_State_Map.md
06 Login_Test_Matrix.csv
07 Logout_Test_Matrix.csv
08 Password_Change_Test_Matrix.csv
09 Password_Reset_Map.md
10 Password_Reset_Test_Matrix.csv
11 Session_Revocation_Matrix.csv
12 Authentication_Candidates.csv
13 Evidence_Register.csv
14 Authentication_Assessment_Summary.mdPart 1 β Prepare Controlled Accounts
Section titled βPart 1 β Prepare Controlled AccountsβUse:
Account A
Account Bfrom the previous labs.
For this lab, Account A will be the primary authentication-testing account.
Account B may be used only where a second controlled identity is useful.
Do not use:
Unknown Users
Customer Accounts
Employee AccountsPart 2 β Prepare Clean Browser Sessions
Section titled βPart 2 β Prepare Clean Browser SessionsβCreate:
Browser Session A
Browser Session BYou can use:
Separate Browser Profiles
Private Windows
Separate ContainersThe goal is to maintain:
IndependentAuthentication StatePart 3 β Create Authentication Flow Map
Section titled βPart 3 β Create Authentication Flow MapβCreate:
01 Authentication_Flow_Map.mdBegin with:
Visitor βRegistration βVerification βLogin βSession Creation βAuthenticated Application βLogoutAlso map:
Forgot Password βReset Request βReset Token βPassword Change βLoginIf MFA exists:
Password Verified βMFA Pending βMFA Verified βAuthenticated SessionPart 4 β Identify Authentication Endpoints
Section titled βPart 4 β Identify Authentication EndpointsβFrom the proxy history, identify endpoints related to:
Registration
Login
Logout
Password Change
Password Reset
Recovery
MFA
Token RefreshCreate:
02 Authentication_Endpoints.csvUse:
| Function | Method | Endpoint | Auth Required | State Change |
|---|---|---|---|---|
| Login | POST | /auth/login | No | Creates session |
| Logout | POST | /auth/logout | Yes | Ends session |
| Password Change | POST | /account/password | Yes | Changes credential |
| Reset Request | POST | /auth/reset | No | Creates reset flow |
| Reset Completion | POST | /auth/reset/confirm | Token | Changes credential |
Use actual lab endpoints if different.
Part 5 β Establish Unauthenticated Baseline
Section titled βPart 5 β Establish Unauthenticated BaselineβBefore login, capture a harmless authenticated-only request such as:
GET /api/v2/profile HTTP/1.1Host: api.novacloud.testExpected result:
401 Unauthorizedor equivalent.
Save:
baseline-unauthenticated-request.txt
baseline-unauthenticated-response.txtPart 6 β Capture Login Request
Section titled βPart 6 β Capture Login RequestβLog in normally as:
Account ACapture the request.
Document:
Username / Email Field
Password Field
Additional Parameters
CSRF Token
Device Data
HeadersDo not save the real password in your evidence package.
Part 7 β Identify Authentication Result
Section titled βPart 7 β Identify Authentication ResultβObserve whether successful login returns:
Set-Cookie
Access Token
Refresh Token
Redirect
Session IdentifierCreate:
03 Session_Register.csvwith:
| Session | Account | Mechanism | Created | Status | Notes |
|---|
Example:
| SESSION-A1 | Account A | Cookie | Login | Active | Browser A |
Part 8 β Identify Cookie Properties
Section titled βPart 8 β Identify Cookie PropertiesβIf cookies are used, record:
Secure
HttpOnly
SameSite
Domain
Path
ExpirationDo not assume a missing attribute automatically proves a bounty-worthy issue.
Record it as:
Security Observationuntil impact is understood.
Part 9 β Identify Bearer Tokens
Section titled βPart 9 β Identify Bearer TokensβIf the application uses:
Authorization:Bearer <TOKEN>record:
Where Token Is Received
Where Token Is Sent
Whether Refresh Token Exists
Token ExpirationRedact token values.
Part 10 β Create Token Lifecycle Map
Section titled βPart 10 β Create Token Lifecycle MapβCreate:
04 Token_Lifecycle_Map.mdExample:
Login βAccess Token βAuthenticated Requests βRefresh βNew Access Token βLogout βExpected RevocationPart 11 β Authentication State Map
Section titled βPart 11 β Authentication State MapβCreate:
05 Authentication_State_Map.mdPossible states:
Unauthenticated
Credentials Submitted
Authenticated
MFA Pending
Password Reset Pending
Password Changed
Logged Out
Session RevokedPart 12 β Why Authentication State Matters
Section titled βPart 12 β Why Authentication State MattersβSecurity failures can occur when the application confuses:
Partially Authenticatedwith:
Fully Authenticatedor:
Logged Outwith:
Still Server-Side ValidPart 13 β Session Rotation Test
Section titled βPart 13 β Session Rotation TestβBefore login, record the pre-authentication session identifier if one exists.
Then:
Login βCompare SessionQuestion:
Did theAuthentication SessionChange?Part 14 β Session Fixation Concept
Section titled βPart 14 β Session Fixation ConceptβA secure application generally should avoid allowing an attacker-controlled or pre-authentication session to remain unchanged across authentication in a way that creates session-fixation risk.
For the lab:
Pre-Login Session βLogin βPost-Login SessionRecord whether the identifier rotates.
Do not attempt to involve another userβs session.
Part 15 β Create Login Test Matrix
Section titled βPart 15 β Create Login Test MatrixβCreate:
06 Login_Test_Matrix.csvUse:
| Test | Expected | Observed | Result |
|---|---|---|---|
| Valid credentials | Login succeeds | ||
| Invalid password | Login denied | ||
| Missing password | Validation error | ||
| Post-login session rotation | Session changes | ||
| Authenticated profile access | Allowed |
Part 16 β Invalid Login Behavior
Section titled βPart 16 β Invalid Login BehaviorβPerform only a few controlled invalid login tests against:
Your Own AccountDo not perform:
Password Spraying
Credential Stuffing
High-Volume GuessingThe program explicitly prohibits password spraying.
Part 17 β Username Enumeration Observation
Section titled βPart 17 β Username Enumeration ObservationβCompare responses for controlled cases such as:
Known Research Email
Synthetic Nonexistent EmailLook for differences in:
Message
Status
Timing
Response StructureDo not perform bulk account enumeration.
Part 18 β Enumeration Is Contextual
Section titled βPart 18 β Enumeration Is ContextualβA response difference such as:
User Does Not Existmay create an enumeration signal.
But severity depends on:
Program Policy
Application Context
Authentication Design
Resulting Security ImpactRecord it as a candidate, not automatically as a finding.
Part 19 β Authenticated Baseline
Section titled βPart 19 β Authenticated BaselineβAfter login, repeat:
GET /api/v2/profileExpected:
200 OKThis confirms:
Session A1 βRepresents Account APart 20 β Logout Workflow
Section titled βPart 20 β Logout WorkflowβCapture the normal logout request.
Example:
Account A βPOST /auth/logout βBrowser Redirects βLogin ScreenBut the important question is:
Did the ServerActually Revokethe Session?Part 21 β Client Logout vs Server Logout
Section titled βPart 21 β Client Logout vs Server LogoutβClient-only behavior:
Delete Cookie βShow Login Pagedoes not necessarily prove:
Server-SideSession RevocationPart 22 β Save the Pre-Logout Session
Section titled βPart 22 β Save the Pre-Logout SessionβBefore logout, save a redacted copy of:
Session A1or preserve the request containing it inside your proxy history.
Then perform normal logout.
Part 23 β Reuse Session After Logout
Section titled βPart 23 β Reuse Session After LogoutβUsing the previously captured researcher-owned session, repeat a harmless request such as:
GET /api/v2/profileExpected:
UnauthorizedIf the old session still works:
PotentialSession RevocationIssueStop after one harmless controlled request.
Part 24 β Create Logout Test Matrix
Section titled βPart 24 β Create Logout Test MatrixβCreate:
07 Logout_Test_Matrix.csvUse:
| Test | Expected | Observed | Status |
|---|---|---|---|
| Normal logout | Session ends | ||
| Old session after logout | Denied | ||
| New browser request | Login required | ||
| Account data after logout | Unavailable |
Part 25 β Logout Stop Condition
Section titled βPart 25 β Logout Stop ConditionβDefine:
If the old sessionsuccessfully accessesone harmless Account Aresource after logout,
capture evidenceand stop.Do not continue accessing multiple resources.
Part 26 β Concurrent Session Setup
Section titled βPart 26 β Concurrent Session SetupβLog in as Account A in:
Browser A
Browser BYou now have:
Session A1
Session A2Record both.
Part 27 β Concurrent Session Questions
Section titled βPart 27 β Concurrent Session QuestionsβAsk:
Are Multiple Sessions Allowed?
Does Logout from A1Terminate A2?
Should It?
Does the ApplicationOffer "Log Out All Devices"?Not every application needs logout to destroy all other sessions.
Evaluate against intended behavior.
Part 28 β Password Change Baseline
Section titled βPart 28 β Password Change BaselineβWith:
Session A1
Session A2active, change the password through the legitimate account settings.
Record:
Password Change Endpoint
Current Password Requirement
Session Used
ResultPart 29 β Test Old Session After Password Change
Section titled βPart 29 β Test Old Session After Password ChangeβAfter password change, test:
Session A1
Session A2with a harmless profile request.
Document whether:
Both Remain Valid
Only Current Session Remains Valid
All Sessions Are RevokedPart 30 β Security Expectation
Section titled βPart 30 β Security ExpectationβWhether every session should terminate after password change depends on the applicationβs security design.
However, sessions remaining active can become significant when password change is intended to recover from:
Account CompromiseDocument actual behavior and business context.
Part 31 β Create Password Change Test Matrix
Section titled βPart 31 β Create Password Change Test MatrixβCreate:
08 Password_Change_Test_Matrix.csvUse:
| Test | Expected | Observed | Notes |
|---|---|---|---|
| Correct current password | Change allowed | ||
| Incorrect current password | Denied | ||
| Session A1 after change | Defined behavior | ||
| Session A2 after change | Defined behavior | ||
| Old password login | Denied | ||
| New password login | Allowed |
Part 32 β Old Password Verification
Section titled βPart 32 β Old Password VerificationβAfter password change:
Attempt Loginwith Old Passwordusing only Account A.
Expected:
DeniedThen test the new password.
Expected:
AllowedPart 33 β Password Reset Mapping
Section titled βPart 33 β Password Reset MappingβNow map the password reset workflow.
Create:
09 Password_Reset_Map.mdExample:
Reset Request βAccount Identifier βReset Token Generated βToken Delivered βToken Submitted βPassword Changed βToken InvalidatedPart 34 β Reset Request Baseline
Section titled βPart 34 β Reset Request BaselineβUsing Account A:
Request Password ResetRecord:
Request Endpoint
Response Message
Delivery Method
TimestampPart 35 β Reset Response Enumeration
Section titled βPart 35 β Reset Response EnumerationβCompare:
Account A Email
Synthetic Nonexistent Emailusing only a minimal number of requests.
Secure workflows often return similar messages such as:
If an account exists,instructions have been sent.Record observed differences.
Part 36 β Reset Token Properties
Section titled βPart 36 β Reset Token PropertiesβWhen the training environment exposes the researcher-owned reset token, document:
Length
Format
Delivery Channel
Expiration
Whether Token Is URL-Based
Whether Token Appears Single UseDo not publish the live token.
Part 37 β Reset Token Single-Use Test
Section titled βPart 37 β Reset Token Single-Use TestβUse the Account A reset token normally.
After successful password reset, attempt to reuse the same token.
Expected:
RejectedPart 38 β Reset Token Stop Condition
Section titled βPart 38 β Reset Token Stop ConditionβIf the token can be reused:
Capture OneControlled Reuseagainst Account A and stop.
Do not repeatedly change the password.
Part 39 β Reset Token Expiration
Section titled βPart 39 β Reset Token ExpirationβIf the lab provides a short test expiry, verify behavior:
Fresh Token βValid
Expired Token βRejectedDo not wait excessively in a real program solely to test this unless worthwhile and permitted.
Part 40 β Generate Two Reset Tokens
Section titled βPart 40 β Generate Two Reset TokensβUsing Account A:
Request Token R1
Request Token R2Ask:
Does Creating R2Invalidate R1?The correct behavior depends on design, but allowing many simultaneously valid reset tokens can increase attack surface.
Part 41 β Reset Token Binding
Section titled βPart 41 β Reset Token BindingβA reset token should apply to:
The IntendedAccountIn a dedicated lab, determine whether:
Token R1 for Account Acan be altered or combined with:
Account B IdentifierDo not test against unrelated accounts.
Part 42 β Create Password Reset Matrix
Section titled βPart 42 β Create Password Reset MatrixβCreate:
10 Password_Reset_Test_Matrix.csvwith:
| Test | Expected | Observed | Result |
|---|---|---|---|
| Reset known account | Flow initiated | ||
| Reset nonexistent account | Safe response | ||
| Valid token | Accepted | ||
| Used token | Rejected | ||
| Expired token | Rejected | ||
| Older token after new token issued | Defined behavior | ||
| Token/account mismatch | Rejected |
Part 43 β Password Reset and Existing Sessions
Section titled βPart 43 β Password Reset and Existing SessionsβAfter resetting the password for Account A, test previously active researcher-controlled sessions.
Ask:
Are Existing SessionsRevoked?This matters because password reset often represents:
Account RecoveryPart 44 β Create Session Revocation Matrix
Section titled βPart 44 β Create Session Revocation MatrixβCreate:
11 Session_Revocation_Matrix.csvwith:
| Event | Session A1 | Session A2 | Expected Security Goal |
|---|---|---|---|
| Logout A1 | Revoked | Depends | End selected session |
| Password Change | Test | Test | Protect changed credentials |
| Password Reset | Test | Test | Recover account |
| Account Disable | If lab supports | If lab supports | Remove access |
Part 45 β Authentication Recovery Principle
Section titled βPart 45 β Authentication Recovery PrincipleβA recovery workflow is weak if:
Attacker SessionRemains Validafter the legitimate owner performs an action intended to regain control.
This is why:
Password Reset
Password Change
Device Removal
Session Revocationshould be analyzed together.
Part 46 β MFA Mapping
Section titled βPart 46 β MFA MappingβIf NovaCloudβs training environment supports MFA, map:
Login βPassword Correct βMFA Challenge βMFA Verification βAuthenticated SessionPart 47 β MFA Pending State
Section titled βPart 47 β MFA Pending StateβIdentify whether the application creates a state such as:
MFA_PENDINGThe critical question is:
What Can ThisSession Access?Part 48 β Safe MFA Test
Section titled βPart 48 β Safe MFA TestβUsing only Account A, while the session is:
MFA Pendingattempt one harmless authenticated request such as:
GET /api/v2/profileExpected:
Deniedif MFA is required for full authentication.
Part 49 β Do Not Brute Force MFA
Section titled βPart 49 β Do Not Brute Force MFAβDo not perform:
OTP Brute Force
Large Code Enumeration
High-Rate Resendsunless a dedicated training lab specifically exists for it.
Part 50 β MFA Recovery
Section titled βPart 50 β MFA RecoveryβIf available, map:
Lost Device
Backup Code
Recovery Email
Support RecoveryAsk:
Is RecoveryWeaker ThanMFA?Again, use controlled training scenarios only.
Part 51 β Session Expiry
Section titled βPart 51 β Session ExpiryβObserve:
Cookie Expiration
Token exp Claim
Refresh Behavior
Idle TimeoutDo not assume client-side expiry guarantees server-side rejection.
Part 52 β Expired Token Validation
Section titled βPart 52 β Expired Token ValidationβIf a training token naturally expires:
Expired Token βHarmless API RequestExpected:
DeniedPart 53 β Refresh Token Flow
Section titled βPart 53 β Refresh Token FlowβIf refresh tokens exist, map:
Access Token Expires βRefresh Token βNew Access TokenRecord:
Refresh Endpoint
Authentication Requirement
Token Rotation
Revocation BehaviorPart 54 β Refresh Token Rotation
Section titled βPart 54 β Refresh Token RotationβA secure design may rotate refresh tokens.
Conceptually:
Refresh Token R1 βUsed βR2 Issued βR1 InvalidatedWhether rotation exists depends on design.
Document observed behavior.
Part 55 β Token Storage Observation
Section titled βPart 55 β Token Storage ObservationβRecord where the browser appears to keep authentication state:
HttpOnly Cookie
Memory
Local Storage
Session StorageDo not automatically report local storage use without demonstrating relevant risk.
Part 56 β Remember Client Storage Is Context
Section titled βPart 56 β Remember Client Storage Is ContextβThe question is not:
Is Tokenin Local Storage?alone.
Ask:
What Can Access It?
Which ThreatDoes This Enable?
What Other ControlsExist?Part 57 β CSRF Context
Section titled βPart 57 β CSRF ContextβIf authentication relies on automatically sent cookies, record whether state-changing requests appear to use:
CSRF Tokens
SameSite Cookies
Origin / Referer ValidationFull CSRF testing may be performed separately if included in the path.
Part 58 β Account Email Change
Section titled βPart 58 β Account Email ChangeβIf the lab supports email-address changes, map:
Current Account βRequest Email Change βVerification βNew Identity AttributeQuestions include:
Is Current Password Required?
Is Old Email Notified?
Is New Email Verified?Part 59 β Sensitive Account Changes
Section titled βPart 59 β Sensitive Account ChangesβOther security-sensitive account changes may include:
Password
Email
MFA
Recovery Information
API KeysThese deserve stronger authentication controls than cosmetic settings.
Part 60 β Reauthentication
Section titled βPart 60 β ReauthenticationβObserve whether NovaCloud requires reauthentication before:
Password Change
Email Change
MFA Disable
API Key GenerationRecord behavior.
Do not assume absence automatically means a vulnerability; evaluate impact.
Part 61 β Authentication Candidate Register
Section titled βPart 61 β Authentication Candidate RegisterβCreate:
12 Authentication_Candidates.csvUse:
| ID | Observation | Security Question | Evidence | Status |
|---|
Possible observations:
Old Session WorksAfter Logout
Reset Token Reusable
Reset Token Not Invalidated
MFA-Pending SessionAccesses Profile
Password Reset LeavesOld Sessions ActivePart 62 β Candidate vs Finding
Section titled βPart 62 β Candidate vs FindingβRemember:
Observation βCandidate βReproduce βIdentify Broken Control βAssess Impact βConfirmed FindingPart 63 β Validate Only What Is Needed
Section titled βPart 63 β Validate Only What Is NeededβSuppose:
Old SessionStill WorksAfter LogoutYou do not need to:
Download Files
Create Projects
Access SecretsOne controlled profile request is enough to demonstrate:
Session RemainsAuthenticatedPart 64 β Build Evidence Package
Section titled βPart 64 β Build Evidence PackageβFor a confirmed candidate create:
09-Evidence/βββ AUTH-001/ βββ 01-baseline-request.txt βββ 02-baseline-response.txt βββ 03-security-event.txt βββ 04-test-request.txt βββ 05-test-response.txt βββ 06-timeline.mdPart 65 β Evidence Timeline Example
Section titled βPart 65 β Evidence Timeline Exampleβ10:00Logged in as Account A.
10:02Captured Session A1.
10:05Logged out normally.
10:06Reused Session A1for GET /api/v2/profile.
10:06Server returned authenticatedAccount A profile.Part 66 β Redaction
Section titled βPart 66 β RedactionβBefore saving evidence replace:
Cookie: session=abcdef...with:
Cookie: session=<REDACTED_SESSION_A1>Do the same for:
Reset Tokens
Access Tokens
Refresh Tokens
PasswordsPart 67 β Validate the Broken Security Boundary
Section titled βPart 67 β Validate the Broken Security BoundaryβFor a session issue:
Logged Out βShould BeUnauthenticatedIf the session remains valid:
Logout BoundaryFailedPart 68 β Root Cause Thinking
Section titled βPart 68 β Root Cause ThinkingβPotential root causes include:
Client Deletes Tokenbut Server Does Not Revoke
Session StoreNot Invalidated
Reset TokenNot Marked Used
Old Credential StateRemains Trusted
MFA StateNot Enforced Server-SidePart 69 β Observed Impact
Section titled βPart 69 β Observed ImpactβExample:
A previously authenticatedsession remains authorizedafter the user logs out.Part 70 β Potential Impact
Section titled βPart 70 β Potential ImpactβPotential:
If an attacker had previouslyobtained that session, the usercould not terminate the attacker'saccess through normal logout.Do not claim account takeover unless the full attack path is established.
Part 71 β Severity Context
Section titled βPart 71 β Severity ContextβAuthentication severity depends on:
Attacker Preconditions
Session Theft Requirement
Persistence
Recovery Impact
Sensitive Function Access
User InteractionDo not assign severity based only on:
Authentication BugPart 72 β Example Candidate: Reset Token Reuse
Section titled βPart 72 β Example Candidate: Reset Token ReuseβObserved:
Account A usesReset Token R1successfully.Then:
R1 Works AgainBroken control:
Single-UseToken EnforcementPart 73 β Example Candidate: Stale Session
Section titled βPart 73 β Example Candidate: Stale SessionβObserved:
Password ResetCompletedbut:
Old Session A2Still AuthenticatedQuestion:
Does NovaCloudIntend Password Resetto Revoke Existing Sessions?Understand the intended recovery model before severity assessment.
Part 74 β Example Candidate: MFA State
Section titled βPart 74 β Example Candidate: MFA StateβObserved:
Password Accepted
MFA Not Completedbut:
Profile APIReturns 200Potential broken control:
AuthenticationState EnforcementPart 75 β Example Candidate: Enumeration
Section titled βPart 75 β Example Candidate: EnumerationβObserved:
Existing Account:"Password Incorrect"
Unknown Account:"Account Not Found"Potential capability:
Account ExistenceDiscoveryAssess according to program policy and context.
Part 76 β Authentication Test Order
Section titled βPart 76 β Authentication Test OrderβRecommended sequence:
1. Login Baseline
2. Session Identification
3. Session Rotation
4. Logout
5. Concurrent Sessions
6. Password Change
7. Password Reset
8. Session Revocation
9. MFA
10. RecoveryPart 77 β Why This Order Works
Section titled βPart 77 β Why This Order WorksβYou first understand:
How a SessionIs Createdbefore testing:
How ItShould EndThen you examine:
RecoveryandRevocationas part of one lifecycle.
Part 78 β Create Evidence Register
Section titled βPart 78 β Create Evidence RegisterβCreate:
13 Evidence_Register.csvwith:
| Evidence | Test | Account | Purpose | Redacted |
|---|
Example:
| AUTH-E01 | Logout reuse | Account A | Prove stale session | Yes |
Part 79 β Create Authentication Assessment Summary
Section titled βPart 79 β Create Authentication Assessment SummaryβCreate:
14 Authentication_Assessment_Summary.mdUse:
# Authentication Assessment Summary
## Target
NovaCloud
## Assets
- app.novacloud.test- auth.labs.novacloud.test- api.novacloud.test
## Accounts
- Account A- Account B
## Authentication Mechanism
Document observed mechanism.
## Workflows Assessed
- login- session creation- logout- password change- password reset- session revocation- MFA if available- account recovery if available
## Session Model
Document:
- session mechanism- token/cookie location- expiration- rotation- refresh behavior
## Key Security Boundaries
1. Unauthenticated β Authenticated2. MFA Pending β Fully Authenticated3. Authenticated β Logged Out4. Old Password β New Password5. Reset Pending β Recovered Account
## Confirmed Secure Behaviors
-
## Vulnerability Candidates
-
## Confirmed Findings
-
## Evidence
-
## Overall Conclusion
-Part 80 β Common Mistake: Test Unknown Users
Section titled βPart 80 β Common Mistake: Test Unknown UsersβAvoid:
Account EnumerationAcross Thousandsof AddressesUse:
Research Account
Synthetic Nonexistent Accountonly as needed.
Part 81 β Common Mistake: Treat Browser Logout as Proof
Section titled βPart 81 β Common Mistake: Treat Browser Logout as ProofβSeeing:
Login Screendoes not prove:
Session RevokedValidate server behavior.
Part 82 β Common Mistake: Ignore Multiple Sessions
Section titled βPart 82 β Common Mistake: Ignore Multiple SessionsβAuthentication is not always:
One User =One SessionModern users may have:
Laptop
Phone
Tablet
API ClientUnderstand how security events affect all sessions.
Part 83 β Common Mistake: Brute-Force Controls
Section titled βPart 83 β Common Mistake: Brute-Force ControlsβDo not turn authentication testing into:
High-VolumeCredential Attacksespecially when program rules prohibit them.
Part 84 β Common Mistake: Reset Real Users
Section titled βPart 84 β Common Mistake: Reset Real UsersβNever initiate account recovery for:
Customers
Employees
Unknown AccountsUse your own accounts.
Part 85 β Common Mistake: Reuse Live Tokens in Reports
Section titled βPart 85 β Common Mistake: Reuse Live Tokens in ReportsβEvidence should contain:
<REDACTED_TOKEN>not reusable authentication material.
Part 86 β Common Mistake: Assume Every Missing Reauth Is a Bug
Section titled βPart 86 β Common Mistake: Assume Every Missing Reauth Is a BugβReauthentication requirements depend on:
Risk of Action
Current Authentication
Session Age
Product DesignAssess impact.
Part 87 β Common Mistake: Ignore Intended Behavior
Section titled βPart 87 β Common Mistake: Ignore Intended BehaviorβFor example:
Password ChangeDoes Not KillOther Devicesmay be intentional.
But:
Password ResetDoes Not TerminateKnown Compromised Sessionsmay have different security implications.
Context matters.
Part 88 β Common Mistake: Overstate Account Takeover
Section titled βPart 88 β Common Mistake: Overstate Account TakeoverβIf you prove:
Username Enumerationdo not claim:
Full Account Takeoverwithout an actual connected attack path.
Part 89 β Authentication Quality Checklist
Section titled βPart 89 β Authentication Quality ChecklistβBefore completing the lab confirm:
Authentication Flow Mapped
Endpoints Identified
Session Mechanism Identified
Pre/Post Login Compared
Session Rotation Reviewed
Logout Tested
Old Session Tested
Concurrent Sessions Reviewed
Password Change Tested
Password Reset Mapped
Reset Token Reuse Tested
Reset Token Binding Reviewed
Existing Sessions Reviewed
MFA State Reviewed if Available
Evidence Redacted
Candidates Recorded
Stop Conditions FollowedPart 90 β Lab Success Criteria
Section titled βPart 90 β Lab Success CriteriaβYou have successfully completed this lab when you can explain:
How NovaCloudEstablishes Identity
How SessionsAre Created
How They Rotate
How They End
How PasswordChanges Affect Them
How Password ResetChanges Account State
How RecoveryRevokes Access
and
Which AuthenticationSecurity BoundariesAre EnforcedPortfolio Deliverables
Section titled βPortfolio DeliverablesβKeep:
01 Authentication_Flow_Map.md
02 Authentication_Endpoints.csv
03 Session_Register.csv
04 Token_Lifecycle_Map.md
05 Authentication_State_Map.md
06 Login_Test_Matrix.csv
07 Logout_Test_Matrix.csv
08 Password_Change_Test_Matrix.csv
09 Password_Reset_Map.md
10 Password_Reset_Test_Matrix.csv
11 Session_Revocation_Matrix.csv
12 Authentication_Candidates.csv
13 Evidence_Register.csv
14 Authentication_Assessment_Summary.mdPortfolio Structure
Section titled βPortfolio StructureβLab 05 β Authentication, Session and Account Security Testingββββ Authentication Flowβββ Endpoint Inventoryβββ Session Registerβββ Token Lifecycleβββ Authentication Statesβββ Login Testingβββ Logout Testingβββ Password Change Testingβββ Password Reset Testingβββ Session Revocationβββ Vulnerability Candidatesβββ Evidenceβββ Assessment SummaryKnowledge Check
Section titled βKnowledge Checkβ-
What is authentication?
-
How is authentication different from authorization?
-
What is an authentication lifecycle?
-
What is a session?
-
What is a session identifier?
-
What cookie attributes are security-relevant?
-
What is an access token?
-
What is a refresh token?
-
Why should tokens be redacted?
-
What is authentication state?
-
Why can MFA-pending state be security-sensitive?
-
What is session rotation?
-
What is session fixation conceptually?
-
Why should pre-login and post-login sessions be compared?
-
Why should login baselines be preserved?
-
What is username enumeration?
-
Why should enumeration testing be minimal?
-
Why is client-side logout not proof of session revocation?
-
How can logout revocation be validated safely?
-
What is a logout stop condition?
-
Why are concurrent sessions important?
-
What should be tested after password change?
-
Why should old-password login be checked?
-
What is a password-reset token?
-
Why should reset tokens expire?
-
Why should reset tokens generally be single use?
-
What does token binding mean?
-
Why might generating a new reset token invalidate an older one?
-
Why should password reset be considered part of account recovery?
-
Why should active sessions be considered after password reset?
-
What is session revocation?
-
What is an MFA authentication boundary?
-
Why should OTP brute forcing be avoided?
-
What is authentication recovery?
-
Why can recovery be weaker than primary authentication?
-
What is token expiration?
-
What is refresh-token rotation?
-
Why is token storage context-sensitive?
-
Why can cookie-based authentication introduce CSRF considerations?
-
Why are sensitive account changes important?
-
What is reauthentication?
-
What is an authentication candidate?
-
When does a candidate become a confirmed finding?
-
What is minimal necessary validation?
-
Why must authentication evidence be redacted?
-
What is observed impact?
-
What is potential impact?
-
Why should account takeover not be overstated?
-
What should an authentication assessment summary contain?
-
What defines successful authentication security testing?
Key Takeaways
Section titled βKey TakeawaysβAuthentication testing is not simply:
Try Wrong PasswordIt is understanding:
Identity βAuthentication State βSession βCredential Change βRecovery βRevocationRemember:
Login Success β Secure SessionLogin Screen β Session RevokedPassword Changed β Old Sessions RevokedReset Completed β Recovery CompleteToken Exists β Token VulnerabilityDifferent Error β Account TakeoverThe professional methodology is:
Map βBaseline βAuthenticate βIdentify Session βTest State Changes βTest Revocation βValidate Recovery βMeasure Impact βCollect Evidence βStopThe core question is:
After EverySecurity Event,
Does the ApplicationStill Trust Onlythe Identities andSessions It Should?Career Connection
Section titled βCareer ConnectionβAuthentication and session testing skills are important for:
Bug Bounty Hunters
Application Security Engineers
Web Penetration Testers
Product Security Engineers
Security Researchers
Red TeamersDuring an interview, you should be able to explain:
I assess authenticationas a lifecycle ratherthan only testing login.
I first map registration,login, MFA, password reset,recovery and session creation.
I establish authenticatedand unauthenticated baselines,identify the application'ssession or token mechanismand document its lifecycle.
I then use researcher-ownedsessions to validate securityevents such as logout,password change and passwordreset.
For each event, I determinewhether previously issuedauthentication state remainsvalid and whether that behaviormatches the intended securitymodel.
Where a weakness is identified,I perform only the minimumcontrolled request requiredto prove the failed boundary,redact authentication materialand document the resultingsecurity impact.Labs Complete
Section titled βLabs CompleteβYou have now completed the planned:
Bug Bounty Hunter Labs
Section titled βBug Bounty Hunter LabsβThe sequence is:
Lab 01Professional Bug BountyResearch Environment
β
Lab 02Program Scope Analysisand Target Prioritization
β
Lab 03Reconnaissance andAttack Surface Mapping
β
Lab 04Web Application Mappingand Security Boundary Analysis
β
Lab 05Authentication, Sessionand Account Security TestingThese five labs establish the complete practical foundation:
Environment βScope βRecon βApplication Understanding βControlled Security TestingWhatβs Next?
Section titled βWhatβs Next?ββ‘οΈ Next: Bug Bounty Hunter Runbooks
The runbooks will now convert the full learning path and labs into reusable operational procedures.
Recommended runbook sequence:
Runbook 01 β Bug Bounty Program Intake and Scope Validation
Runbook 02 β Reconnaissance and Attack Surface Discovery
Runbook 03 β Web Application Security Assessment
Runbook 04 β Authentication and Session Security Assessment
Runbook 05 β Authorization and Access Control Assessment
Runbook 06 β API Security Assessment
Runbook 07 β Business Logic Security Assessment
Runbook 08 β Mobile Application Security Assessment
Runbook 09 β Cloud Bug Bounty Assessment
Runbook 10 β Vulnerability Validation and Evidence Collection
Runbook 11 β Vulnerability Reporting and Triage Communication
Runbook 12 β End-to-End Bug Bounty Research EngagementThe progression will therefore become:
Learning Modules βHands-On Labs βOperational Runbooks βPortfolio Projects βIndependent Bug Bounty Researchβ‘οΈ Next: Runbook 01 β Bug Bounty Program Intake and Scope Validation