Testing for Account Enumeration and Guessable User Account (OTG-IDENT-004)

Summary
Most systems are provisioning with default and test accounts to aid the installation, configuration and testing of applications. These accounts are often overlooked when the system enters production. User account names are often highly structured (e.g. Joe Bloggs account name is jbloggs and Fred Nurks account name is fnurks) and valid account names can easily be guessed. Other times, valid account names can be searched for using internet search engines.

Test objectives
Determine whether consistent account name structure renders the application vulnerable to account enumeration

Determine whether application's error messages permit account enumeration

Determine whether default system accounts or test accounts are present on production system

How to test
Determine the structure of account names

Evaluate the application's response to valid and invalid account names

Use different responses to valid and invalid account names to enumerate valid account names

Use account name dictionaries to enumerate valid account names

Research application infrastructure to build list of default system account names

Example


Remediation
Ensure the application returns consistent generic error messages in response to invalid account name, password or other user credentials entered during the login process.

Ensure default system accounts and test accounts are deleted prior to releasing the system into production (or exposing it to an untrusted network).