Difference between revisions of "Testing for Account Enumeration and Guessable User Account (OTG-IDENT-004)"

From OWASP
Jump to: navigation, search
m (Andrew Muller moved page Testing for Account Enumeration and Guessable User Account (OWASP-AT-002) to Testing for Account Enumeration and Guessable User Account (OTG-IDENT-004): Align with common number and cross-product correlation initiative)
Line 1: Line 1:
 
== Summary ==
 
== 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.
+
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.  
User account names are often structured and valid account names can easily be guessed. Other times, valid account names can be searched for using internet search engines.  
+
  
 
== Test objectives ==
 
== Test objectives ==
  
Verify the structure of account names
+
Determine whether consistent account name structure renders the application vulnerable to account enumeration
Verify the application's response to valid and invalid account names
+
  
 +
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 ==
 
== 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 ===
 
=== Example ===
 +
 +
<insert some images of account enumeration>
  
 
== Tools ==
 
== Tools ==
 +
  
 
== References ==
 
== References ==
Line 20: Line 34:
  
 
== Remediation ==
 
== 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).

Revision as of 09:28, 5 November 2013

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

<insert some images of account enumeration>

Tools

References

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).