Difference between revisions of "Password Plaintext Storage"

From OWASP
Jump to: navigation, search
(Risk Factors)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
{{Template:Vulnerability}}
 
{{Template:Vulnerability}}
 
+
{{Template:Fortify}}
[[Category:FIXME|This is the text from the old template. This needs to be rewritten using the new template.]]
 
  
 
Last revision (mm/dd/yy): '''{{REVISIONMONTH}}/{{REVISIONDAY}}/{{REVISIONYEAR}}'''
 
Last revision (mm/dd/yy): '''{{REVISIONMONTH}}/{{REVISIONDAY}}/{{REVISIONYEAR}}'''
  
 
[[ASDR_TOC_Vulnerabilities|Vulnerabilities Table of Contents]]
 
[[ASDR_TOC_Vulnerabilities|Vulnerabilities Table of Contents]]
 
[[ASDR Table of Contents]]
 
__TOC__
 
 
  
 
==Description==
 
==Description==
Line 23: Line 18:
 
==Risk Factors==
 
==Risk Factors==
  
TBD
+
Password management issues occur when a password is stored in plaintext in an application's properties or configuration file. Storing a plaintext password in a configuration file allows anyone who can read the file access to the password-protected resource.
  
  
Line 68: Line 63:
  
 
[[Category:FIXME|add links
 
[[Category:FIXME|add links
 
 
In addition, one should classify vulnerability based on the following subcategories: Ex:<nowiki>[[Category:Error Handling Vulnerability]]</nowiki>
 
In addition, one should classify vulnerability based on the following subcategories: Ex:<nowiki>[[Category:Error Handling Vulnerability]]</nowiki>
  
 
Availability Vulnerability
 
Availability Vulnerability
 
 
Authorization Vulnerability
 
Authorization Vulnerability
 
 
Authentication Vulnerability
 
Authentication Vulnerability
 
 
Concurrency Vulnerability
 
Concurrency Vulnerability
 
 
Configuration Vulnerability
 
Configuration Vulnerability
 
 
Cryptographic Vulnerability
 
Cryptographic Vulnerability
 
 
Encoding Vulnerability
 
Encoding Vulnerability
 
 
Error Handling Vulnerability
 
Error Handling Vulnerability
 
 
Input Validation Vulnerability
 
Input Validation Vulnerability
 
 
Logging and Auditing Vulnerability
 
Logging and Auditing Vulnerability
 
 
Session Management Vulnerability]]
 
Session Management Vulnerability]]
  
 
__NOTOC__
 
__NOTOC__
 
  
 
[[Category:OWASP ASDR Project]]
 
[[Category:OWASP ASDR Project]]
Line 101: Line 84:
 
[[Category:Code Snippet]]
 
[[Category:Code Snippet]]
 
[[Category:Password Management Vulnerability]]
 
[[Category:Password Management Vulnerability]]
{{Template:Fortify}}
+
[[Category:Vulnerability]]

Latest revision as of 16:39, 19 May 2019

This is a Vulnerability. To view all vulnerabilities, please see the Vulnerability Category page.

This article includes content generously donated to OWASP by MicroFocus Logo.png

Last revision (mm/dd/yy): 05/19/2019

Vulnerabilities Table of Contents

Description

Storing a password in plaintext may result in a system compromise.

Password management issues occur when a password is stored in plaintext in an application's properties or configuration file. A programmer can attempt to remedy the password management problem by obscuring the password with an encoding function, such as base 64 encoding, but this effort does not adequately protect the password.

Storing a plaintext password in a configuration file allows anyone who can read the file access to the password-protected resource. Developers sometimes believe that they cannot defend the application from someone who has access to the configuration, but this attitude makes an attacker's job easier. Good password management guidelines require that a password never be stored in plaintext.


Risk Factors

Password management issues occur when a password is stored in plaintext in an application's properties or configuration file. Storing a plaintext password in a configuration file allows anyone who can read the file access to the password-protected resource.


Examples

The following code reads a password from a properties file and uses the password to connect to a database.

	...
	Properties prop = new Properties();
	prop.load(new FileInputStream("config.properties"));
	String password = prop.getProperty("password");
	
	DriverManager.getConnection(url, usr, password);
	...


Related Attacks


Related Vulnerabilities

Related Controls


Related Technical Impacts


References

TBD