<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.owasp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mr+fusion</id>
		<title>OWASP - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.owasp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mr+fusion"/>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php/Special:Contributions/Mr_fusion"/>
		<updated>2026-04-22T14:19:08Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.2</generator>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Testing_for_DOM-based_Cross_site_scripting_(OTG-CLIENT-001)&amp;diff=45510</id>
		<title>Testing for DOM-based Cross site scripting (OTG-CLIENT-001)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Testing_for_DOM-based_Cross_site_scripting_(OTG-CLIENT-001)&amp;diff=45510"/>
				<updated>2008-11-02T16:56:38Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Black and Gray Box testing and example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
DOM-based Cross-Site Scripting is the de-facto name for XSS bugs which are the result of active content on a page, typically JavaScript, obtaining user input and then doing something unsafe with it to lead to execution of injected code. This document will only discuss JavaScript bugs which lead to XSS.&lt;br /&gt;
&lt;br /&gt;
The DOM, or Document Object Model is the structural format that may be used to represent documents in the browser. The DOM enables dynamic scripts such as Javascript to reference components of the document such as a form field or a session cookie. The DOM is also used by the browser for security - for example to limit scripts on different domains obtaining session cookies for other domains. A DOM-based cross site scripting vulnerability may occur when active content, such as a javascript function, is modified by a specially crafted request such that a DOM element that can be controlled by an attacker.&lt;br /&gt;
&lt;br /&gt;
There have been very few papers published on this topic and, as such, very little standardization of its meaning and formalized testing exists.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not all XSS bugs require the attacker to control the content returned from the server, but can rather abuse poor JavaScript coding practices to achieve the same results. The results are the same as a typical XSS bug, only the means of delivery is different.&lt;br /&gt;
&lt;br /&gt;
In comparison to other cross site scripting vulnerabilities (reflected and stored XSS), where an unsanitized parameter is passed by the server, returned to the user and executed in the context of the users browser, a DOM based cross site scripting vulnerability controls the flow of the code by using elements of the Document Object Model (DOM) along with code crafted by the attacker to change the flow. &lt;br /&gt;
 &lt;br /&gt;
Due to their nature, DOM based XSS vulnerabilities can be executed in many instances without the server being able to determine what is actually being executed. This may result in many of the general XSS filtering and detection rules impotent against such attacks.&lt;br /&gt;
 &lt;br /&gt;
The first hypothetical example uses the following client side code:&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;script&amp;gt;&lt;br /&gt;
 document.write(&amp;quot;Site is at: &amp;quot; + document.location.href + &amp;quot;.&amp;quot;);&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
An attacker may append #&amp;lt;script&amp;gt;alert('xss')&amp;lt;/script&amp;gt; to the affect page URL which would, when executed display the alert box. In this instance, the appended code would not be sent to the server as everything after the # character is not treated as part of the query by the browser but as a fragment.  In this example the code is immediately executed and an alert of &amp;quot;xss&amp;quot; is displayed in the page.  Unlike the more common types of cross site scripting (persistent and non-persistent) which the code is sent to the server and redisplayed to the user, this is executed directly in the users browser without server contact. &lt;br /&gt;
 &lt;br /&gt;
The outcome of DOM based cross site scripting flaws are as wide ranging as those seen in more well known forms of XSS, including cookie retrieval, further malicious script injection etc and should therefore be treated with the same severity as such.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Black and Gray Box testing and example ==&lt;br /&gt;
Blackbox testing for DOM-Based XSS is not usually performed since access to the source code is always available as it needs to be sent to the client to be executed.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gray Box testing and example == &lt;br /&gt;
'''Testing for DOM Based XSS vulnerabilities:'''&amp;lt;br&amp;gt;&lt;br /&gt;
JavaScript applications differ significantly from other types of applications because they are often dynamically generated by the server, and to understand what code is being executed, the website being tested needs to be crawled to determine all the instances of JavaScript being executed and where user input is accepted. Many websites rely on large libraries of functions, which often stretch into the hundreds of thousands of lines of code and have not been developed in-house. In these cases, top-down testing often becomes the only really viable option, since many bottom level functions are never used, and analyzing them to determine which are sinks will use up more time than is often availiable. The same can also be said for top-down testing if the inputs or lack thereof is not identified to begin with.&lt;br /&gt;
&lt;br /&gt;
User input comes in two main forms:&lt;br /&gt;
&lt;br /&gt;
    * Input written to the page by the server in a way that does not allow direct XSS&lt;br /&gt;
    * Input obtained from client-side JavaScript objects&lt;br /&gt;
&lt;br /&gt;
Here are two examples of how the server may insert data into JavaScript:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var data = &amp;quot;&amp;lt;escaped data from the server&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
var result = someFunction(&amp;quot;&amp;lt;escaped data from the server&amp;gt;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
And here are two examples of input from client-side JavaScript objects:&lt;br /&gt;
&lt;br /&gt;
var data = window.location;&lt;br /&gt;
&lt;br /&gt;
var result = someFunction(window.referer);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
While there is little difference to the JavaScript code in how they are retrieved, it is important to note that when input is received via the server, the server can apply any permutations to the data that it desires, whereas the permutations performed by JavaScript objects is fairly well understood and documented, and so if someFunction in the above example were a sink, then the exploitability of the former would depend on the filtering done by the server, whereas the latter would depend on the encoding done by the browser on the window.referer object.&lt;br /&gt;
&lt;br /&gt;
Additionally, JavaScript is very often executed outside of &amp;lt;script&amp;gt; blocks, as evidenced by the many vectors which have led to XSS filter bypasses in the past, and so, when crawling the application, it is important to note the use of script in places such as event handlers and CSS blocks with expression attributes. Also, note that any off-site CSS or script objects will need to be assessed to determine what code is being executed.&lt;br /&gt;
&lt;br /&gt;
Automated testing has only very limited success at identifying and validating DOM based XSS as they usually identify XSS by sending a specific payload and attempt to observe it in the server response. This may work fine for the simple example provided below, where the message parameter is reflected back to the user:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
var pos=document.URL.indexOf(&amp;quot;message=&amp;quot;)+5;&lt;br /&gt;
document.write(document.URL.substring(pos,document.URL.length));&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
but may not be detected in the following contrived case:&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
var navAgt = navigator.userAgent;&lt;br /&gt;
 &lt;br /&gt;
if (navAgt.indexOf(&amp;quot;MSIE&amp;quot;)!=-1) {&lt;br /&gt;
     document.write(&amp;quot;You are using IE as a browser and visiting site: &amp;quot; + document.location.href + &amp;quot;.&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
    document.write(&amp;quot;You are using an unknown browser.&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
For this reason, automated testing will not detect areas that may be susceptible to DOM based XSS unless the testing tool can perform addition analysis of the client side code.&lt;br /&gt;
 &lt;br /&gt;
Manual testing should therefore be undertaken and can be done by examining areas in the code where parameters are referred to that may be useful to an attacker. &lt;br /&gt;
Examples of such areas include places where code is dynamically written to the page and elsewhere where the DOM is modified or even where scripts are directly executed. Further examples &lt;br /&gt;
are described in the excellent DOM XSS article by Amit Klein, referenced at the end of this section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Document Object Model (DOM) - http://en.wikipedia.org/wiki/Document_Object_Model&lt;br /&gt;
* DOM Based Cross Site Scripting or XSS of the Third Kind - Amit Klein http://www.webappsec.org/projects/articles/071105.shtml&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Testing_for_DOM-based_Cross_site_scripting_(OTG-CLIENT-001)&amp;diff=45509</id>
		<title>Testing for DOM-based Cross site scripting (OTG-CLIENT-001)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Testing_for_DOM-based_Cross_site_scripting_(OTG-CLIENT-001)&amp;diff=45509"/>
				<updated>2008-11-02T16:56:16Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Description of the Issue */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
DOM-based Cross-Site Scripting is the de-facto name for XSS bugs which are the result of active content on a page, typically JavaScript, obtaining user input and then doing something unsafe with it to lead to execution of injected code. This document will only discuss JavaScript bugs which lead to XSS.&lt;br /&gt;
&lt;br /&gt;
The DOM, or Document Object Model is the structural format that may be used to represent documents in the browser. The DOM enables dynamic scripts such as Javascript to reference components of the document such as a form field or a session cookie. The DOM is also used by the browser for security - for example to limit scripts on different domains obtaining session cookies for other domains. A DOM-based cross site scripting vulnerability may occur when active content, such as a javascript function, is modified by a specially crafted request such that a DOM element that can be controlled by an attacker.&lt;br /&gt;
&lt;br /&gt;
There have been very few papers published on this topic and, as such, very little standardization of its meaning and formalized testing exists.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not all XSS bugs require the attacker to control the content returned from the server, but can rather abuse poor JavaScript coding practices to achieve the same results. The results are the same as a typical XSS bug, only the means of delivery is different.&lt;br /&gt;
&lt;br /&gt;
In comparison to other cross site scripting vulnerabilities (reflected and stored XSS), where an unsanitized parameter is passed by the server, returned to the user and executed in the context of the users browser, a DOM based cross site scripting vulnerability controls the flow of the code by using elements of the Document Object Model (DOM) along with code crafted by the attacker to change the flow. &lt;br /&gt;
 &lt;br /&gt;
Due to their nature, DOM based XSS vulnerabilities can be executed in many instances without the server being able to determine what is actually being executed. This may result in many of the general XSS filtering and detection rules impotent against such attacks.&lt;br /&gt;
 &lt;br /&gt;
The first hypothetical example uses the following client side code:&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;script&amp;gt;&lt;br /&gt;
 document.write(&amp;quot;Site is at: &amp;quot; + document.location.href + &amp;quot;.&amp;quot;);&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
An attacker may append #&amp;lt;script&amp;gt;alert('xss')&amp;lt;/script&amp;gt; to the affect page URL which would, when executed display the alert box. In this instance, the appended code would not be sent to the server as everything after the # character is not treated as part of the query by the browser but as a fragment.  In this example the code is immediately executed and an alert of &amp;quot;xss&amp;quot; is displayed in the page.  Unlike the more common types of cross site scripting (persistent and non-persistent) which the code is sent to the server and redisplayed to the user, this is executed directly in the users browser without server contact. &lt;br /&gt;
 &lt;br /&gt;
The outcome of DOM based cross site scripting flaws are as wide ranging as those seen in more well known forms of XSS, including cookie retrieval, further malicious script injection etc and should therefore be treated with the same severity as such.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Black and Gray Box testing and example ==&lt;br /&gt;
Blackbox testing for DOM-Based XSS is not usually performed since access to the source code is always available as it needs to be sent to the client to be executed.&lt;br /&gt;
...&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Gray Box testing and example == &lt;br /&gt;
'''Testing for DOM Based XSS vulnerabilities:'''&amp;lt;br&amp;gt;&lt;br /&gt;
JavaScript applications differ significantly from other types of applications because they are often dynamically generated by the server, and to understand what code is being executed, the website being tested needs to be crawled to determine all the instances of JavaScript being executed and where user input is accepted. Many websites rely on large libraries of functions, which often stretch into the hundreds of thousands of lines of code and have not been developed in-house. In these cases, top-down testing often becomes the only really viable option, since many bottom level functions are never used, and analyzing them to determine which are sinks will use up more time than is often availiable. The same can also be said for top-down testing if the inputs or lack thereof is not identified to begin with.&lt;br /&gt;
&lt;br /&gt;
User input comes in two main forms:&lt;br /&gt;
&lt;br /&gt;
    * Input written to the page by the server in a way that does not allow direct XSS&lt;br /&gt;
    * Input obtained from client-side JavaScript objects&lt;br /&gt;
&lt;br /&gt;
Here are two examples of how the server may insert data into JavaScript:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var data = &amp;quot;&amp;lt;escaped data from the server&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
var result = someFunction(&amp;quot;&amp;lt;escaped data from the server&amp;gt;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
And here are two examples of input from client-side JavaScript objects:&lt;br /&gt;
&lt;br /&gt;
var data = window.location;&lt;br /&gt;
&lt;br /&gt;
var result = someFunction(window.referer);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
While there is little difference to the JavaScript code in how they are retrieved, it is important to note that when input is received via the server, the server can apply any permutations to the data that it desires, whereas the permutations performed by JavaScript objects is fairly well understood and documented, and so if someFunction in the above example were a sink, then the exploitability of the former would depend on the filtering done by the server, whereas the latter would depend on the encoding done by the browser on the window.referer object.&lt;br /&gt;
&lt;br /&gt;
Additionally, JavaScript is very often executed outside of &amp;lt;script&amp;gt; blocks, as evidenced by the many vectors which have led to XSS filter bypasses in the past, and so, when crawling the application, it is important to note the use of script in places such as event handlers and CSS blocks with expression attributes. Also, note that any off-site CSS or script objects will need to be assessed to determine what code is being executed.&lt;br /&gt;
&lt;br /&gt;
Automated testing has only very limited success at identifying and validating DOM based XSS as they usually identify XSS by sending a specific payload and attempt to observe it in the server response. This may work fine for the simple example provided below, where the message parameter is reflected back to the user:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
var pos=document.URL.indexOf(&amp;quot;message=&amp;quot;)+5;&lt;br /&gt;
document.write(document.URL.substring(pos,document.URL.length));&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
but may not be detected in the following contrived case:&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
var navAgt = navigator.userAgent;&lt;br /&gt;
 &lt;br /&gt;
if (navAgt.indexOf(&amp;quot;MSIE&amp;quot;)!=-1) {&lt;br /&gt;
     document.write(&amp;quot;You are using IE as a browser and visiting site: &amp;quot; + document.location.href + &amp;quot;.&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
    document.write(&amp;quot;You are using an unknown browser.&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
For this reason, automated testing will not detect areas that may be susceptible to DOM based XSS unless the testing tool can perform addition analysis of the client side code.&lt;br /&gt;
 &lt;br /&gt;
Manual testing should therefore be undertaken and can be done by examining areas in the code where parameters are referred to that may be useful to an attacker. &lt;br /&gt;
Examples of such areas include places where code is dynamically written to the page and elsewhere where the DOM is modified or even where scripts are directly executed. Further examples &lt;br /&gt;
are described in the excellent DOM XSS article by Amit Klein, referenced at the end of this section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Document Object Model (DOM) - http://en.wikipedia.org/wiki/Document_Object_Model&lt;br /&gt;
* DOM Based Cross Site Scripting or XSS of the Third Kind - Amit Klein http://www.webappsec.org/projects/articles/071105.shtml&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Testing_for_DOM-based_Cross_site_scripting_(OTG-CLIENT-001)&amp;diff=45508</id>
		<title>Testing for DOM-based Cross site scripting (OTG-CLIENT-001)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Testing_for_DOM-based_Cross_site_scripting_(OTG-CLIENT-001)&amp;diff=45508"/>
				<updated>2008-11-02T16:38:39Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Brief Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
DOM-based Cross-Site Scripting is the de-facto name for XSS bugs which are the result of active content on a page, typically JavaScript, obtaining user input and then doing something unsafe with it to lead to execution of injected code. This document will only discuss JavaScript bugs which lead to XSS.&lt;br /&gt;
&lt;br /&gt;
The DOM, or Document Object Model is the structural format that may be used to represent documents in the browser. The DOM enables dynamic scripts such as Javascript to reference components of the document such as a form field or a session cookie. The DOM is also used by the browser for security - for example to limit scripts on different domains obtaining session cookies for other domains. A DOM-based cross site scripting vulnerability may occur when active content, such as a javascript function, is modified by a specially crafted request such that a DOM element that can be controlled by an attacker.&lt;br /&gt;
&lt;br /&gt;
There have been very few papers published on this topic and, as such, very little standardization of its meaning and formalized testing exists.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Not all XSS bugs require the attacker to control the content returned from the server, but can rather abuse poor JavaScript coding practices to achieve the same results. The results are the same as a typical XSS bug, only the means of delivery is different.&lt;br /&gt;
&lt;br /&gt;
In comparison to other cross site scripting vulnerabilities (reflected and stored XSS), where an unsanitized parameter is passed by the server, returned to the user and executed in the contect of the users browser, a DOM based cross site scripting vulnerability controls the flow of the code by using elements of the Document Object Model (DOM) along with code crafted by the attacker to change the flow. &lt;br /&gt;
 &lt;br /&gt;
Due to their nature, DOM based XSS vulnerabilities can be executed in many instances without the server being able to determine what is actually being executed. This may result in many of the general XSS filtering and detection rules impotent against such attacks.&lt;br /&gt;
 &lt;br /&gt;
The first hypothetical example uses the following client side code:&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;script&amp;gt;&lt;br /&gt;
 document.write(&amp;quot;Site is at: &amp;quot; + document.location.href + &amp;quot;.&amp;quot;);&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
An attacker may append #&amp;lt;script&amp;gt;alert('xss')&amp;lt;/script&amp;gt; to the affect page URL which would, when executed display the alert box. In this instance, the appended code would not be sent to the server&lt;br /&gt;
as everything after the # character is not treated as part of the query by the browser but yet as a fragment.  In this example the code is immediately executed and an alert of &amp;quot;xss&amp;quot; is displayed in the page.  Unlike the more common types of cross site scripting (persistent and non-persistent) which the code is sent to the server and redisplayed to the user, this is immediately executed in the users browser. &lt;br /&gt;
 &lt;br /&gt;
The outcome of DOM based cross site scripting flaws are as wide ranging as those seen in more well known forms of XSS, including cookie retrieval, further malicious script injection etc and should therefore be treated with the same severity as such.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Black and Gray Box testing and example ==&lt;br /&gt;
Blackbox testing for DOM-Based XSS is not usually performed since access to the source code is always available as it needs to be sent to the client to be executed.&lt;br /&gt;
...&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Gray Box testing and example == &lt;br /&gt;
'''Testing for DOM Based XSS vulnerabilities:'''&amp;lt;br&amp;gt;&lt;br /&gt;
JavaScript applications differ significantly from other types of applications because they are often dynamically generated by the server, and to understand what code is being executed, the website being tested needs to be crawled to determine all the instances of JavaScript being executed and where user input is accepted. Many websites rely on large libraries of functions, which often stretch into the hundreds of thousands of lines of code and have not been developed in-house. In these cases, top-down testing often becomes the only really viable option, since many bottom level functions are never used, and analyzing them to determine which are sinks will use up more time than is often availiable. The same can also be said for top-down testing if the inputs or lack thereof is not identified to begin with.&lt;br /&gt;
&lt;br /&gt;
User input comes in two main forms:&lt;br /&gt;
&lt;br /&gt;
    * Input written to the page by the server in a way that does not allow direct XSS&lt;br /&gt;
    * Input obtained from client-side JavaScript objects&lt;br /&gt;
&lt;br /&gt;
Here are two examples of how the server may insert data into JavaScript:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var data = &amp;quot;&amp;lt;escaped data from the server&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
var result = someFunction(&amp;quot;&amp;lt;escaped data from the server&amp;gt;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
And here are two examples of input from client-side JavaScript objects:&lt;br /&gt;
&lt;br /&gt;
var data = window.location;&lt;br /&gt;
&lt;br /&gt;
var result = someFunction(window.referer);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
While there is little difference to the JavaScript code in how they are retrieved, it is important to note that when input is received via the server, the server can apply any permutations to the data that it desires, whereas the permutations performed by JavaScript objects is fairly well understood and documented, and so if someFunction in the above example were a sink, then the exploitability of the former would depend on the filtering done by the server, whereas the latter would depend on the encoding done by the browser on the window.referer object.&lt;br /&gt;
&lt;br /&gt;
Additionally, JavaScript is very often executed outside of &amp;lt;script&amp;gt; blocks, as evidenced by the many vectors which have led to XSS filter bypasses in the past, and so, when crawling the application, it is important to note the use of script in places such as event handlers and CSS blocks with expression attributes. Also, note that any off-site CSS or script objects will need to be assessed to determine what code is being executed.&lt;br /&gt;
&lt;br /&gt;
Automated testing has only very limited success at identifying and validating DOM based XSS as they usually identify XSS by sending a specific payload and attempt to observe it in the server response. This may work fine for the simple example provided below, where the message parameter is reflected back to the user:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
var pos=document.URL.indexOf(&amp;quot;message=&amp;quot;)+5;&lt;br /&gt;
document.write(document.URL.substring(pos,document.URL.length));&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
but may not be detected in the following contrived case:&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
var navAgt = navigator.userAgent;&lt;br /&gt;
 &lt;br /&gt;
if (navAgt.indexOf(&amp;quot;MSIE&amp;quot;)!=-1) {&lt;br /&gt;
     document.write(&amp;quot;You are using IE as a browser and visiting site: &amp;quot; + document.location.href + &amp;quot;.&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
    document.write(&amp;quot;You are using an unknown browser.&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
For this reason, automated testing will not detect areas that may be susceptible to DOM based XSS unless the testing tool can perform addition analysis of the client side code.&lt;br /&gt;
 &lt;br /&gt;
Manual testing should therefore be undertaken and can be done by examining areas in the code where parameters are referred to that may be useful to an attacker. &lt;br /&gt;
Examples of such areas include places where code is dynamically written to the page and elsewhere where the DOM is modified or even where scripts are directly executed. Further examples &lt;br /&gt;
are described in the excellent DOM XSS article by Amit Klein, referenced at the end of this section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Document Object Model (DOM) - http://en.wikipedia.org/wiki/Document_Object_Model&lt;br /&gt;
* DOM Based Cross Site Scripting or XSS of the Third Kind - Amit Klein http://www.webappsec.org/projects/articles/071105.shtml&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Testing_Guide_Frontispiece&amp;diff=42054</id>
		<title>Testing Guide Frontispiece</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Testing_Guide_Frontispiece&amp;diff=42054"/>
				<updated>2008-10-05T17:03:39Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* v3 Authors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
==Welcome to the OWASP Testing Guide 3.0==&lt;br /&gt;
“Open and collaborative knowledge: that’s the OWASP way.”&amp;lt;br&amp;gt;&lt;br /&gt;
-- [[User:Mmeucci|Matteo Meucci]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OWASP thanks the many authors, reviewers, and editors for their hard work in bringing this guide to where it is today. If you have any comments or suggestions on the Testing Guide, please e-mail the Testing Guide mail list:&lt;br /&gt;
&lt;br /&gt;
 http://lists.owasp.org/mailman/listinfo/owasp-testing&lt;br /&gt;
&lt;br /&gt;
Or drop a mail to the project leader: [mailto:matteo.meucci@gmail.com Matteo Meucci]&lt;br /&gt;
&lt;br /&gt;
==Version 3.0==&lt;br /&gt;
&lt;br /&gt;
The OWASP Testing Guide Version 3 wants to improve version 2 and create new sections and controls. This new version has added: &amp;lt;br&amp;gt;&lt;br /&gt;
•	Configuration Management and Authorization Testing sections and Encoded Injection Appendix;&amp;lt;br&amp;gt;&lt;br /&gt;
•	36 new articles (1 taken from the BSP);&amp;lt;br&amp;gt;&lt;br /&gt;
Version 3 improved 9 articles, for a total of 10 Testing categories and 66 controls.&lt;br /&gt;
&lt;br /&gt;
==Copyright and License==&lt;br /&gt;
&lt;br /&gt;
Copyright (c) 2008 The OWASP Foundation.&lt;br /&gt;
&lt;br /&gt;
This document is released under the [http://creativecommons.org/licenses/by-sa/2.5/ Creative Commons 2.5 License]. Please read and understand the license and copyright conditions.&lt;br /&gt;
&lt;br /&gt;
==Revision History ==&lt;br /&gt;
&lt;br /&gt;
The Testing Guide v3 comes in September 2008. The Testing guide originated in 2003 with Dan Cuthbert as one of the original editors. It was handed over to Eoin Keary in 2005 and transformed into a wiki. Matteo Meucci has decided to take on the Testing guide and is now the lead of the OWASP Testing Guide Project.&lt;br /&gt;
&lt;br /&gt;
; 15th September, 2008&lt;br /&gt;
: &amp;quot;OWASP Testing Guide&amp;quot;, Version 3.0&lt;br /&gt;
&lt;br /&gt;
; December 25, 2006&lt;br /&gt;
: &amp;quot;OWASP Testing Guide&amp;quot;, Version 2.0&lt;br /&gt;
&lt;br /&gt;
; July 14, 2004&lt;br /&gt;
: &amp;quot;OWASP Web Application Penetration Checklist&amp;quot;, Version 1.1&lt;br /&gt;
&lt;br /&gt;
; December 2004&lt;br /&gt;
: &amp;quot;The OWASP Testing Guide&amp;quot;, Version 1.0&lt;br /&gt;
&lt;br /&gt;
== Editors ==&lt;br /&gt;
'''Matteo Meucci''': OWASP Testing Guide Lead from 2007. &amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Eoin Keary''': OWASP Testing Guide 2005-2007 Lead.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Daniel Cuthbert''': OWASP Testing Guide 2003-2005 Lead.&lt;br /&gt;
&lt;br /&gt;
== v3 Authors ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; &lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* Anurag Agarwwal&lt;br /&gt;
* Daniele Bellucci&lt;br /&gt;
* Arian Coronel&lt;br /&gt;
* Stefano Di Paola&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* Giorgio Fedon&lt;br /&gt;
* Adam Goodman&lt;br /&gt;
* Christian Heinrich&lt;br /&gt;
* Kevin Horvath&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* Ginarico Ingrosso&lt;br /&gt;
* Roberto Suggi Liverani&lt;br /&gt;
* Kuza55&lt;br /&gt;
* Pavol Luptak&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* Ferruh Mavituna&lt;br /&gt;
* Marco Mella&lt;br /&gt;
* Matteo Meucci&lt;br /&gt;
* Marco Morana&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* Antonio Parata&lt;br /&gt;
* Cecil Su&lt;br /&gt;
* Harish Skanda Sureddy&lt;br /&gt;
* Mark Roxberry&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* Andrew Van der Stock&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== v3 Reviewers ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; &lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* Marco Cova&lt;br /&gt;
* Kevin Fuller&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* Matteo Meucci&lt;br /&gt;
* Nam Nguyen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== v2 Authors ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; &lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* Vicente Aguilera&lt;br /&gt;
* Mauro Bregolin&lt;br /&gt;
* Tom Brennan&lt;br /&gt;
* Gary	Burns&lt;br /&gt;
* Luca Carettoni&lt;br /&gt;
* Dan Cornell&lt;br /&gt;
* Mark Curphey&lt;br /&gt;
* Daniel Cuthbert&lt;br /&gt;
* Sebastien Deleersnyder&lt;br /&gt;
* Stephen DeVries&lt;br /&gt;
* Stefano Di Paola&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* David	Endler&lt;br /&gt;
* Giorgio Fedon&lt;br /&gt;
* Javier Fernández-Sanguino&lt;br /&gt;
* Glyn Geoghegan&lt;br /&gt;
* Stan Guzik &lt;br /&gt;
* Madhura Halasgikar&lt;br /&gt;
* Eoin Keary&lt;br /&gt;
* David Litchfield&lt;br /&gt;
* Andrea Lombardini&lt;br /&gt;
* Ralph M. Los&lt;br /&gt;
* Claudio Merloni&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* Matteo Meucci&lt;br /&gt;
* Marco	Morana&lt;br /&gt;
* Laura Nunez&lt;br /&gt;
* Gunter Ollmann&lt;br /&gt;
* Antonio Parata&lt;br /&gt;
* Yiannis Pavlosoglou&lt;br /&gt;
* Carlo Pelliccioni&lt;br /&gt;
* Harinath Pudipeddi&lt;br /&gt;
* Alberto Revelli&lt;br /&gt;
* Mark Roxberry&lt;br /&gt;
* Tom Ryan&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* Anush Shetty&lt;br /&gt;
* Larry Shields&lt;br /&gt;
* Dafydd Studdard&lt;br /&gt;
* Andrew van der Stock&lt;br /&gt;
* Ariel	Waissbein&lt;br /&gt;
* Jeff Williams&lt;br /&gt;
* Tushar Vartak&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== v2 Reviewers ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; &lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* Vicente Aguilera&lt;br /&gt;
* Marco Belotti&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* Mauro Bregolin&lt;br /&gt;
* Marco Cova&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* Daniel Cuthbert&lt;br /&gt;
* Paul Davies&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* Stefano Di Paola&lt;br /&gt;
* Matteo G.P. Flora&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* Simona Forti&lt;br /&gt;
* Darrell Groundy&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* Eoin Keary&lt;br /&gt;
* James Kist&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* Katie McDowell&lt;br /&gt;
* Marco Mella &lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* Matteo Meucci&lt;br /&gt;
* Syed Mohamed A.&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* Antonio Parata&lt;br /&gt;
* Alberto Revelli&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* Mark Roxberry&lt;br /&gt;
* Dave Wichers&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Trademarks==&lt;br /&gt;
&lt;br /&gt;
* Java, Java Web Server, and JSP are registered trademarks of Sun Microsystems, Inc.&lt;br /&gt;
* Merriam-Webster is a trademark of Merriam-Webster, Inc.&lt;br /&gt;
* Microsoft is a registered trademark of Microsoft Corporation.&lt;br /&gt;
* Octave is a service mark of Carnegie Mellon University.&lt;br /&gt;
* VeriSign and Thawte are registered trademarks of VeriSign, Inc.&lt;br /&gt;
* Visa is a registered trademark of VISA USA.&lt;br /&gt;
* OWASP is a registered trademark of the OWASP Foundation&lt;br /&gt;
&lt;br /&gt;
All other products and company names may be trademarks of their respective owners. Use of a term in this document should not be regarded as affecting the validity of any trademark or service mark.&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Testing_Guide_v3_Table_of_Contents&amp;diff=37138</id>
		<title>OWASP Testing Guide v3 Table of Contents</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Testing_Guide_v3_Table_of_Contents&amp;diff=37138"/>
				<updated>2008-08-25T01:16:22Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* 4. (M.Meucci) Web Application Penetration Testing  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
This is the draft of table of content of the New Testing Guide.&lt;br /&gt;
You can download the stable version [http://www.owasp.org/index.php/Image:OWASP_Testing_Guide_v2_pdf.zip here] &lt;br /&gt;
&lt;br /&gt;
Back to the OWASP Testing Guide Project:&lt;br /&gt;
http://www.owasp.org/index.php/OWASP_Testing_Project&lt;br /&gt;
&lt;br /&gt;
 Testing Guide v3 (draft)&lt;br /&gt;
 Updated: 24th August 2008&lt;br /&gt;
 (new)--&amp;gt; new articles, (toimp)--&amp;gt; needs to improve or to review, (xxx%) --&amp;gt; current state of the article&lt;br /&gt;
&lt;br /&gt;
'''T A B L E    o f    C O N T E N T S'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==[[Testing Guide Foreword|(toimp)Foreword by OWASP Chair]]==&lt;br /&gt;
&lt;br /&gt;
==[[Testing Guide Frontispiece |(toimp: M.Meucci)1. Frontispiece]]==&lt;br /&gt;
&lt;br /&gt;
'''[[Testing Guide Frontispiece|(toimp: M.Meucci)1.1 About the OWASP Testing Guide Project]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[About The Open Web Application Security Project|1.2 About The Open Web Application Security Project]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[Testing Guide Introduction|2. Introduction]]==&lt;br /&gt;
&lt;br /&gt;
'''2.1 The OWASP Testing Project'''&lt;br /&gt;
&lt;br /&gt;
'''2.2 Principles of Testing'''&lt;br /&gt;
&lt;br /&gt;
'''2.3 Testing Techniques Explained''' &lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 90%) 2.4 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Security_Requirements_Test_Derivation Security requirements test derivation],[https://www.owasp.org/index.php/Testing_Guide_Introduction#Functional_and_Non_Functional_Test_Requirements functional and non functional test requirements], and [https://www.owasp.org/index.php/Testing_Guide_Introduction#Test_Cases_Through_Use_and_Misuse_Cases test cases through use and misuse cases]&lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 100%) 2.4.1 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Security_Tests_Integrated_in_Developers_and_Testers_Workflow Security tests integrated in developers and testers workflows]&lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 100%) 2.4.2 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Developers.27_Security_Tests Developers' security tests: unit tests and component level tests]&lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 90%) 2.4.3 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Functional_Testers.27_Security_Tests Functional testers' security tests: integrated system tests, tests in UAT, and production environment]&lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 100%) 2.5 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Security_Test_Data_Analysis_and_Reporting Security test data analysis and reporting: root cause identification and business/role case test data reporting]&lt;br /&gt;
&lt;br /&gt;
==[[The OWASP Testing Framework|3. The OWASP Testing Framework]]==&lt;br /&gt;
&lt;br /&gt;
'''3.1. Overview'''&lt;br /&gt;
&lt;br /&gt;
'''3.2. Phase 1: Before Development Begins '''&lt;br /&gt;
&lt;br /&gt;
'''3.3. Phase 2: During Definition and Design'''&lt;br /&gt;
&lt;br /&gt;
'''3.4. Phase 3: During Development'''&lt;br /&gt;
&lt;br /&gt;
'''3.5. Phase 4: During Deployment'''&lt;br /&gt;
&lt;br /&gt;
'''3.6. Phase 5: Maintenance and Operations'''&lt;br /&gt;
&lt;br /&gt;
'''3.7. A Typical SDLC Testing Workflow '''&lt;br /&gt;
&lt;br /&gt;
==[[Web Application Penetration Testing |4. (M.Meucci) Web Application Penetration Testing ]]==&lt;br /&gt;
&lt;br /&gt;
[[Testing: Introduction and objectives|'''4.1 Introduction and Objectives''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing Checklist| (new: M.Meucci - 100% ) 4.1.1 Testing Checklist]]&lt;br /&gt;
&lt;br /&gt;
[[Testing: Information Gathering|'''4.2 Information Gathering''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing: Spiders Robots and Crawlers|(new:C.Heinrich - 0%)4.2.1 Spiders, Robots and Crawlers]]&lt;br /&gt;
&lt;br /&gt;
[[Testing: Search engine discovery|(new:C.Heinrich - 0%)4.2.2 Search Engine Discovery/Reconnaissance]]&lt;br /&gt;
&lt;br /&gt;
[[Testing: Identify application entry points| (new: K.Horvath - 100%) 4.2.3 Identify application entry points]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Web Application Fingerprint|4.2.4 Testing for Web Application Fingerprint]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Application Discovery|4.2.5 Application Discovery]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Error Code|4.2.6 Analysis of Error Codes]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for configuration management|''' (new) 4.3 Configuration Management Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SSL-TLS| 4.3.1 SSL/TLS Testing (SSL Version, Algorithms, Key length, Digital Cert. Validity]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Testing for DB Listener|4.3.2 DB Listener Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for infrastructure configuration management| (new) 4.3.3 Infrastructure Configuration Management Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for application configuration management|4.3.4 Application Configuration Management Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for file extensions handling|4.3.5 Testing for File Extensions Handling]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for old_file|4.3.6 Old, Backup and Unreferenced Files]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Admin Interfaces|(imp: A. Goodman - 100%) 4.3.7 Infrastructure and Application Admin Interfaces]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for HTTP Methods and XST| (imp: A. van der Stock - 100%)4.3.8 Testing for HTTP Methods and XST]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for business logic|'''(K.Horvath - 100%) 4.4 Business Logic Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for authentication|'''(M.Meucci - 100%) 4.5 Authentication Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for credentials transport|(new: G.Ingrosso - 100%) 4.5.1 Credentials transport over an encrypted channel]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for user enumeration|(new: M.Meucci, M.Mella - 90%) 4.5.2 Testing for user enumeration]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Default or Guessable User Account|(K.Horvath - 100% - adam updated) 4.5.3 Testing for Guessable (Dictionary) User Account]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Brute Force|4.5.4 Brute Force Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Bypassing Authentication Schema|4.5.5 Testing for bypassing authentication schema]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Vulnerable Remember Password and Pwd Reset|4.5.6 Testing for vulnerable remember &lt;br /&gt;
password and pwd reset]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Logout and Browser Cache Management|4.5.7 Testing for Logout and Browser Cache Management Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Captcha|(new: P.Luptak - 100% ) 4.5.8 Testing for CAPTCHA]]&lt;br /&gt;
&lt;br /&gt;
[[Testing Multiple Factors Authentication| (new: G.Fedon) 4.5.9 Testing Multiple Factors Authentication]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Race Conditions| (new: A. Goodman - 100%) 4.5.10 Testing for Race Conditions]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Authorization|'''(new: M.Meucci - 100%) 4.6 Authorization testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Path Traversal|(new) 4.6.1 Testing for path traversal]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Bypassing Authorization Schema|(new: M.Meucci - 100%)4.6.2 Testing for bypassing authorization schema]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Privilege escalation|(new: Cecil Su, M.Meucci - 100%)4.6.3 Testing for Privilege Escalation]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Session Management|'''4.7 Session Management Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Session_Management_Schema|(new: M.Meucci - 100%) 4.7.1 Testing for Session Management Schema]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for cookies attributes| (new: K.Horvath - 100%) 4.7.2 Testing for Cookies attributes]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Session Fixation| (M.Meucci - 100% (updated by adam)) 4.7.3 Testing for Session Fixation]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Exposed Session Variables|4.7.4 Testing for Exposed Session Variables ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for CSRF|4.7.5 Testing for CSRF]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for HTTP Exploit|4.7.6 Testing for HTTP Exploit ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Data Validation|'''4.8 Data Validation Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Reflected Cross site scripting|(new: A. Coronel -100%)4.8.1 Testing for Reflected Cross Site Scripting]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Stored Cross site scripting|(new: R. Suggi Liverani - 100%)4.8.2 Testing for Stored Cross Site Scripting]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for DOM-based Cross site scripting|(new: A.Agarwwal, Kuza55 - 80%) 4.8.3 Testing for DOM based Cross Site Scripting]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Cross site flashing|(new: A.Agarwwal, S.Di Paola - 0%)4.8.4 Testing for Cross Site Flashing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SQL Injection| 4.8.5 Testing for SQL Injection ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Oracle|4.8.5.1 Oracle Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for MySQL|4.8.5.2 MySQL Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SQL Server|4.8.5.3 SQL Server Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for MS Access|(new:A.Parata - 90%) 4.8.5.4 MS Access Testing]]&lt;br /&gt;
&lt;br /&gt;
[[OWASP_Backend_Security_Project_Testing_PostgreSQL|4.8.5.5 (new: D.Bellucci 100% from OWASP BSP) Testing PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for LDAP Injection|4.8.6 Testing for LDAP Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for ORM Injection|4.8.7 Testing for ORM Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for XML Injection|4.8.8 Testing for XML Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SSI Injection|4.8.9 Testing for SSI Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for XPath Injection|4.8.10 Testing for XPath Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for IMAP/SMTP Injection|4.8.11 IMAP/SMTP Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Code Injection|4.8.12 Testing for Code Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Command Injection|4.8.13 Testing for Command Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Buffer Overflow|4.8.14 Testing for Buffer overflow]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Heap Overflow|4.8.14.1 Testing for Heap overflow]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Stack Overflow|4.8.14.2 Testing for Stack overflow]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Format String|4.8.14.3 Testing for Format string]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Incubated Vulnerability|4.8.15 Testing for incubated vulnerabilities]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Denial of Service|'''4.9 Testing for Denial of Service''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SQL Wildcard Attacks|(new: F.Mavituna - 100%) 4.9.1 Testing for SQL Wildcard Attacks]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for DoS Locking Customer Accounts|4.9.2 Testing for DoS Locking Customer Accounts]]	&lt;br /&gt;
&lt;br /&gt;
[[Testing for DoS Buffer Overflows|4.9.3 Testing for DoS Buffer Overflows]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for DoS User Specified Object Allocation|4.9.4 Testing for DoS User Specified Object Allocation]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for User Input as a Loop Counter|4.9.5 Testing for User Input as a Loop Counter]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Writing User Provided Data to Disk|4.9.6 Testing for Writing User Provided Data to Disk]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for DoS Failure to Release Resources|4.9.7 Testing for DoS Failure to Release Resources]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Storing too Much Data in Session|4.9.8 Testing for Storing too Much Data in Session]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Web Services|(toimp: M.Meucci -100%) '''4.10 Web Services Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing: WS Information Gathering|(new: M.Meucci -100%) 4.10.1 WS Information Gathering]]&lt;br /&gt;
&lt;br /&gt;
[[Testing WSDL|(new: M.Meucci -100%) 4.10.2 Testing WSDL]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for XML Structural|(toimp: M.Meucci -100%)4.10.3 XML Structural Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for XML Content-Level|4.10.4 XML Content-level Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for WS HTTP GET parameters/REST attacks|4.10.5 HTTP GET parameters/REST Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Naughty SOAP Attachments|4.10.6 Naughty SOAP attachments ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for WS Replay|4.10.7 Replay Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing_for_AJAX:_introduction|'''4.11 AJAX Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for AJAX Vulnerabilities|4.11.1 AJAX Vulnerabilities]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for AJAX|4.11.2 How to test AJAX]]&lt;br /&gt;
&lt;br /&gt;
==[[Writing Reports: value the real risk |(toimp: Mat)5. Writing Reports: value the real risk ]]==&lt;br /&gt;
&lt;br /&gt;
[[How to value the real risk |5.1 How to value the real risk]]&lt;br /&gt;
&lt;br /&gt;
[[How to write the report of the testing |5.2 How to write the report of the testing]]&lt;br /&gt;
&lt;br /&gt;
==[[Appendix A: Testing Tools |Appendix A: Testing Tools ]]==&lt;br /&gt;
&lt;br /&gt;
* Black Box Testing Tools&lt;br /&gt;
* Source Code Analyzers&lt;br /&gt;
* Other Tools&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[OWASP Testing Guide Appendix B: Suggested Reading | Appendix B: Suggested Reading]]==&lt;br /&gt;
* Whitepapers&lt;br /&gt;
* Books&lt;br /&gt;
* Useful Websites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[OWASP Testing Guide Appendix C: Fuzz Vectors | Appendix C: Fuzz Vectors]]==&lt;br /&gt;
&lt;br /&gt;
* Fuzz Categories&lt;br /&gt;
** Recursive fuzzing&lt;br /&gt;
** Replasive fuzzing&lt;br /&gt;
* Cross Site Scripting (XSS)&lt;br /&gt;
* Buffer Overflows and Format String Errors&lt;br /&gt;
** Buffer Overflows (BFO)&lt;br /&gt;
** Format String Errors (FSE)&lt;br /&gt;
** Integer Overflows (INT)&lt;br /&gt;
* SQL Injection&lt;br /&gt;
** Passive SQL Injection (SQP)&lt;br /&gt;
** Active SQL Injection (SQI)&lt;br /&gt;
* LDAP Injection&lt;br /&gt;
* XPATH Injection&lt;br /&gt;
&lt;br /&gt;
==[[OWASP Testing Guide Appendix D: Encoded Injection | (new: Harish S.)Appendix D: Encoded Injection]]==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Testing Project]]&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Enumerate_Infrastructure_and_Application_Admin_Interfaces_(OTG-CONFIG-005)&amp;diff=37137</id>
		<title>Enumerate Infrastructure and Application Admin Interfaces (OTG-CONFIG-005)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Enumerate_Infrastructure_and_Application_Admin_Interfaces_(OTG-CONFIG-005)&amp;diff=37137"/>
				<updated>2008-08-25T01:14:56Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Gray Box testing and example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Administrator interfaces may be present in the application or on the application server to allow certain users to undertake privileged activities on the site. Tests should be undertaken to reveal if and how this privileged functionality can be accessed by an unauthorized or standard user.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
An application may require an administrator interface to enable a privileged user to access functionality that may make changes to how the site functions. Such changes may include:&lt;br /&gt;
&lt;br /&gt;
- user account provisioning&amp;lt;br&amp;gt;&lt;br /&gt;
- Site design and layout&amp;lt;br&amp;gt;&lt;br /&gt;
- data manipultion&amp;lt;br&amp;gt;&lt;br /&gt;
- configuration changes&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In many instances, such interfaces are usually implemented with little thought of how to separate them from the normal users of the site. Testing is aimed at discovering these administrator interfaces and accessing functionality intended for the privileged users. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
The following describes vectors that may be used to test for the presence of administrative interfaces. These techniques may also be used for testing for related issues including privilege escalation and are described elsewhere in this guide in greater detail:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Directory and file Enumeration - An administrative interface may be present but not visibly available to the tester. Attempting to guess the path of the administrative interface may be as simple as requesting: &lt;br /&gt;
/admin or /administrator etc..&amp;lt;br&amp;gt;&lt;br /&gt;
A tester may have to also identify the filename of the administration page. Forcible browsing to the identified page may provide access to the interface.&lt;br /&gt;
&lt;br /&gt;
* Comments and links in Source - Many sites use common code that is loaded for all site users. By examining all source sent to the client, links to administrator functionality may be discovered and should be investigated. &lt;br /&gt;
&lt;br /&gt;
* Reviewing Server and Application Documentation - If the application server or application is deployed in its default configuration it may be possible to access the administration interface using information described in configuration or help documentation. Default password lists should be consulted if an administrative interface is found and credentials are required.&lt;br /&gt;
&lt;br /&gt;
* Alternative Server Port - Administration interfaces may be seen on a different port on the host than the main application. For example, Apache Tomcat's Administration interface can often be seen on port 8080.&lt;br /&gt;
&lt;br /&gt;
* Parameter Tampering - A GET or POST parameter or a cookie variable may be required to enable the administrator functionality. Clues to this&lt;br /&gt;
include the presence of hidden fields such as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;admin&amp;quot; value=&amp;quot;no&amp;quot;&amp;gt; or in a cookie:   Cookie: session_cookie; useradmin=0&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Once an administrative interface has been discovered, a combination of the above techniques may be used to attempt to bypass authentication. If this fails, the&lt;br /&gt;
tester may wish to attempt a brute force attack. In such an instance the tester should be aware of the potential for administrative account lockout if such functionality is present.&lt;br /&gt;
&lt;br /&gt;
== Gray Box testing and example == &lt;br /&gt;
A more detailed examination of the server and application components should be undertaken to ensure hardening (i.e. administrator pages are not accessible to everyone through the use of IP filtering or other controls), and where applicable, verification that all components do not use default credentials or configurations.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Source code should be reviewed to ensure that the authorization and authentication model ensures clear separation of duties between normal users and site administrators. User interface functions shared between normal and administrator users should be reviewed to ensure clear separation between the drawing of such components and information leakage from such shared functionality.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Default Password list: http://www.governmentsecurity.org/articles/DefaultLoginsandPasswordsforNetworkedDevices.php&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Testing_Guide_v3_Table_of_Contents&amp;diff=37136</id>
		<title>OWASP Testing Guide v3 Table of Contents</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Testing_Guide_v3_Table_of_Contents&amp;diff=37136"/>
				<updated>2008-08-25T01:10:03Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* 4. (M.Meucci) Web Application Penetration Testing  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
This is the draft of table of content of the New Testing Guide.&lt;br /&gt;
You can download the stable version [http://www.owasp.org/index.php/Image:OWASP_Testing_Guide_v2_pdf.zip here] &lt;br /&gt;
&lt;br /&gt;
Back to the OWASP Testing Guide Project:&lt;br /&gt;
http://www.owasp.org/index.php/OWASP_Testing_Project&lt;br /&gt;
&lt;br /&gt;
 Testing Guide v3 (draft)&lt;br /&gt;
 Updated: 24th August 2008&lt;br /&gt;
 (new)--&amp;gt; new articles, (toimp)--&amp;gt; needs to improve or to review, (xxx%) --&amp;gt; current state of the article&lt;br /&gt;
&lt;br /&gt;
'''T A B L E    o f    C O N T E N T S'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==[[Testing Guide Foreword|(toimp)Foreword by OWASP Chair]]==&lt;br /&gt;
&lt;br /&gt;
==[[Testing Guide Frontispiece |(toimp: M.Meucci)1. Frontispiece]]==&lt;br /&gt;
&lt;br /&gt;
'''[[Testing Guide Frontispiece|(toimp: M.Meucci)1.1 About the OWASP Testing Guide Project]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[About The Open Web Application Security Project|1.2 About The Open Web Application Security Project]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[Testing Guide Introduction|2. Introduction]]==&lt;br /&gt;
&lt;br /&gt;
'''2.1 The OWASP Testing Project'''&lt;br /&gt;
&lt;br /&gt;
'''2.2 Principles of Testing'''&lt;br /&gt;
&lt;br /&gt;
'''2.3 Testing Techniques Explained''' &lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 90%) 2.4 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Security_Requirements_Test_Derivation Security requirements test derivation],[https://www.owasp.org/index.php/Testing_Guide_Introduction#Functional_and_Non_Functional_Test_Requirements functional and non functional test requirements], and [https://www.owasp.org/index.php/Testing_Guide_Introduction#Test_Cases_Through_Use_and_Misuse_Cases test cases through use and misuse cases]&lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 100%) 2.4.1 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Security_Tests_Integrated_in_Developers_and_Testers_Workflow Security tests integrated in developers and testers workflows]&lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 100%) 2.4.2 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Developers.27_Security_Tests Developers' security tests: unit tests and component level tests]&lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 90%) 2.4.3 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Functional_Testers.27_Security_Tests Functional testers' security tests: integrated system tests, tests in UAT, and production environment]&lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 100%) 2.5 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Security_Test_Data_Analysis_and_Reporting Security test data analysis and reporting: root cause identification and business/role case test data reporting]&lt;br /&gt;
&lt;br /&gt;
==[[The OWASP Testing Framework|3. The OWASP Testing Framework]]==&lt;br /&gt;
&lt;br /&gt;
'''3.1. Overview'''&lt;br /&gt;
&lt;br /&gt;
'''3.2. Phase 1: Before Development Begins '''&lt;br /&gt;
&lt;br /&gt;
'''3.3. Phase 2: During Definition and Design'''&lt;br /&gt;
&lt;br /&gt;
'''3.4. Phase 3: During Development'''&lt;br /&gt;
&lt;br /&gt;
'''3.5. Phase 4: During Deployment'''&lt;br /&gt;
&lt;br /&gt;
'''3.6. Phase 5: Maintenance and Operations'''&lt;br /&gt;
&lt;br /&gt;
'''3.7. A Typical SDLC Testing Workflow '''&lt;br /&gt;
&lt;br /&gt;
==[[Web Application Penetration Testing |4. (M.Meucci) Web Application Penetration Testing ]]==&lt;br /&gt;
&lt;br /&gt;
[[Testing: Introduction and objectives|'''4.1 Introduction and Objectives''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing Checklist| (new: M.Meucci - 100% ) 4.1.1 Testing Checklist]]&lt;br /&gt;
&lt;br /&gt;
[[Testing: Information Gathering|'''4.2 Information Gathering''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing: Spiders Robots and Crawlers|(new:C.Heinrich - 0%)4.2.1 Spiders, Robots and Crawlers]]&lt;br /&gt;
&lt;br /&gt;
[[Testing: Search engine discovery|(new:C.Heinrich - 0%)4.2.2 Search Engine Discovery/Reconnaissance]]&lt;br /&gt;
&lt;br /&gt;
[[Testing: Identify application entry points| (new: K.Horvath - 100%) 4.2.3 Identify application entry points]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Web Application Fingerprint|4.2.4 Testing for Web Application Fingerprint]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Application Discovery|4.2.5 Application Discovery]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Error Code|4.2.6 Analysis of Error Codes]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for configuration management|''' (new) 4.3 Configuration Management Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SSL-TLS| 4.3.1 SSL/TLS Testing (SSL Version, Algorithms, Key length, Digital Cert. Validity]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Testing for DB Listener|4.3.2 DB Listener Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for infrastructure configuration management| (new) 4.3.3 Infrastructure Configuration Management Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for application configuration management|4.3.4 Application Configuration Management Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for file extensions handling|4.3.5 Testing for File Extensions Handling]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for old_file|4.3.6 Old, Backup and Unreferenced Files]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Admin Interfaces|(A. Goodman - 90%) 4.3.7 Infrastructure and Application Admin Interfaces]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for HTTP Methods and XST| (imp: A. van der Stock - 100%)4.3.8 Testing for HTTP Methods and XST]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for business logic|'''(K.Horvath - 100%) 4.4 Business Logic Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for authentication|'''(M.Meucci - 100%) 4.5 Authentication Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for credentials transport|(new: G.Ingrosso - 100%) 4.5.1 Credentials transport over an encrypted channel]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for user enumeration|(new: M.Meucci, M.Mella - 90%) 4.5.2 Testing for user enumeration]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Default or Guessable User Account|(K.Horvath - 100% - adam updated) 4.5.3 Testing for Guessable (Dictionary) User Account]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Brute Force|4.5.4 Brute Force Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Bypassing Authentication Schema|4.5.5 Testing for bypassing authentication schema]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Vulnerable Remember Password and Pwd Reset|4.5.6 Testing for vulnerable remember &lt;br /&gt;
password and pwd reset]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Logout and Browser Cache Management|4.5.7 Testing for Logout and Browser Cache Management Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Captcha|(new: P.Luptak - 100% ) 4.5.8 Testing for CAPTCHA]]&lt;br /&gt;
&lt;br /&gt;
[[Testing Multiple Factors Authentication| (new: G.Fedon) 4.5.9 Testing Multiple Factors Authentication]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Race Conditions| (new: A. Goodman - 100%) 4.5.10 Testing for Race Conditions]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Authorization|'''(new: M.Meucci - 100%) 4.6 Authorization testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Path Traversal|(new) 4.6.1 Testing for path traversal]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Bypassing Authorization Schema|(new: M.Meucci - 100%)4.6.2 Testing for bypassing authorization schema]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Privilege escalation|(new: Cecil Su, M.Meucci - 100%)4.6.3 Testing for Privilege Escalation]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Session Management|'''4.7 Session Management Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Session_Management_Schema|(new: M.Meucci - 100%) 4.7.1 Testing for Session Management Schema]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for cookies attributes| (new: K.Horvath - 100%) 4.7.2 Testing for Cookies attributes]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Session Fixation| (M.Meucci - 100% (updated by adam)) 4.7.3 Testing for Session Fixation]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Exposed Session Variables|4.7.4 Testing for Exposed Session Variables ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for CSRF|4.7.5 Testing for CSRF]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for HTTP Exploit|4.7.6 Testing for HTTP Exploit ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Data Validation|'''4.8 Data Validation Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Reflected Cross site scripting|(new: A. Coronel -100%)4.8.1 Testing for Reflected Cross Site Scripting]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Stored Cross site scripting|(new: R. Suggi Liverani - 100%)4.8.2 Testing for Stored Cross Site Scripting]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for DOM-based Cross site scripting|(new: A.Agarwwal, Kuza55 - 80%) 4.8.3 Testing for DOM based Cross Site Scripting]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Cross site flashing|(new: A.Agarwwal, S.Di Paola - 0%)4.8.4 Testing for Cross Site Flashing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SQL Injection| 4.8.5 Testing for SQL Injection ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Oracle|4.8.5.1 Oracle Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for MySQL|4.8.5.2 MySQL Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SQL Server|4.8.5.3 SQL Server Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for MS Access|(new:A.Parata - 90%) 4.8.5.4 MS Access Testing]]&lt;br /&gt;
&lt;br /&gt;
[[OWASP_Backend_Security_Project_Testing_PostgreSQL|4.8.5.5 (new: D.Bellucci 100% from OWASP BSP) Testing PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for LDAP Injection|4.8.6 Testing for LDAP Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for ORM Injection|4.8.7 Testing for ORM Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for XML Injection|4.8.8 Testing for XML Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SSI Injection|4.8.9 Testing for SSI Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for XPath Injection|4.8.10 Testing for XPath Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for IMAP/SMTP Injection|4.8.11 IMAP/SMTP Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Code Injection|4.8.12 Testing for Code Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Command Injection|4.8.13 Testing for Command Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Buffer Overflow|4.8.14 Testing for Buffer overflow]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Heap Overflow|4.8.14.1 Testing for Heap overflow]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Stack Overflow|4.8.14.2 Testing for Stack overflow]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Format String|4.8.14.3 Testing for Format string]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Incubated Vulnerability|4.8.15 Testing for incubated vulnerabilities]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Denial of Service|'''4.9 Testing for Denial of Service''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SQL Wildcard Attacks|(new: F.Mavituna - 100%) 4.9.1 Testing for SQL Wildcard Attacks]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for DoS Locking Customer Accounts|4.9.2 Testing for DoS Locking Customer Accounts]]	&lt;br /&gt;
&lt;br /&gt;
[[Testing for DoS Buffer Overflows|4.9.3 Testing for DoS Buffer Overflows]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for DoS User Specified Object Allocation|4.9.4 Testing for DoS User Specified Object Allocation]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for User Input as a Loop Counter|4.9.5 Testing for User Input as a Loop Counter]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Writing User Provided Data to Disk|4.9.6 Testing for Writing User Provided Data to Disk]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for DoS Failure to Release Resources|4.9.7 Testing for DoS Failure to Release Resources]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Storing too Much Data in Session|4.9.8 Testing for Storing too Much Data in Session]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Web Services|(toimp: M.Meucci -100%) '''4.10 Web Services Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing: WS Information Gathering|(new: M.Meucci -100%) 4.10.1 WS Information Gathering]]&lt;br /&gt;
&lt;br /&gt;
[[Testing WSDL|(new: M.Meucci -100%) 4.10.2 Testing WSDL]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for XML Structural|(toimp: M.Meucci -100%)4.10.3 XML Structural Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for XML Content-Level|4.10.4 XML Content-level Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for WS HTTP GET parameters/REST attacks|4.10.5 HTTP GET parameters/REST Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Naughty SOAP Attachments|4.10.6 Naughty SOAP attachments ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for WS Replay|4.10.7 Replay Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing_for_AJAX:_introduction|'''4.11 AJAX Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for AJAX Vulnerabilities|4.11.1 AJAX Vulnerabilities]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for AJAX|4.11.2 How to test AJAX]]&lt;br /&gt;
&lt;br /&gt;
==[[Writing Reports: value the real risk |(toimp: Mat)5. Writing Reports: value the real risk ]]==&lt;br /&gt;
&lt;br /&gt;
[[How to value the real risk |5.1 How to value the real risk]]&lt;br /&gt;
&lt;br /&gt;
[[How to write the report of the testing |5.2 How to write the report of the testing]]&lt;br /&gt;
&lt;br /&gt;
==[[Appendix A: Testing Tools |Appendix A: Testing Tools ]]==&lt;br /&gt;
&lt;br /&gt;
* Black Box Testing Tools&lt;br /&gt;
* Source Code Analyzers&lt;br /&gt;
* Other Tools&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[OWASP Testing Guide Appendix B: Suggested Reading | Appendix B: Suggested Reading]]==&lt;br /&gt;
* Whitepapers&lt;br /&gt;
* Books&lt;br /&gt;
* Useful Websites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[OWASP Testing Guide Appendix C: Fuzz Vectors | Appendix C: Fuzz Vectors]]==&lt;br /&gt;
&lt;br /&gt;
* Fuzz Categories&lt;br /&gt;
** Recursive fuzzing&lt;br /&gt;
** Replasive fuzzing&lt;br /&gt;
* Cross Site Scripting (XSS)&lt;br /&gt;
* Buffer Overflows and Format String Errors&lt;br /&gt;
** Buffer Overflows (BFO)&lt;br /&gt;
** Format String Errors (FSE)&lt;br /&gt;
** Integer Overflows (INT)&lt;br /&gt;
* SQL Injection&lt;br /&gt;
** Passive SQL Injection (SQP)&lt;br /&gt;
** Active SQL Injection (SQI)&lt;br /&gt;
* LDAP Injection&lt;br /&gt;
* XPATH Injection&lt;br /&gt;
&lt;br /&gt;
==[[OWASP Testing Guide Appendix D: Encoded Injection | (new: Harish S.)Appendix D: Encoded Injection]]==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Testing Project]]&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Testing_for_Session_Fixation_(OTG-SESS-003)&amp;diff=37135</id>
		<title>Testing for Session Fixation (OTG-SESS-003)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Testing_for_Session_Fixation_(OTG-SESS-003)&amp;diff=37135"/>
				<updated>2008-08-25T01:09:19Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Black Box testing and example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
When an application does not renew the cookie after a successful user authentication, it could be possible to find a session fixation vulnerability and force a user to utilize a cookie known by the attacker. In that case an attacker could steal the user session (session hijacking).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Session fixation vulnerabilities occur when:&amp;lt;br&amp;gt;&lt;br /&gt;
* A web application authenticates a user without first invalidating the existing session ID, thereby continuing to use the session ID already associated with the user.&lt;br /&gt;
* An attacker is able to force a known session ID on a user so that, once the user authenticates, the attacker has access to the authenticated session. &lt;br /&gt;
In the generic exploit of session fixation vulnerabilities, an attacker creates a new session on a web application and records the associated session identifier. The attacker then causes the victim to authenticate against the server using the same session identifier, giving the attacker access to the user's account through the active session.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Furthermore, the issue described above is problematic for sites which issue a session identifier over HTTP and then redirect the user to a HTTPS login form. If the session identifier is not reissued upon authentication, the identifier may be eavesdropped and may be used by an attacker to hijack the session. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
'''Testing for Session Fixation vulnerabilities:''' &amp;lt;br&amp;gt;&lt;br /&gt;
The first step is to make a request to the site to be tested (example www.example.com). If we request the following:&lt;br /&gt;
 GET www.example.com&lt;br /&gt;
We will obtain the following answer:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Date: Wed, 14 Aug 2008 08:45:11 GMT&lt;br /&gt;
Server: IBM_HTTP_Server&lt;br /&gt;
Set-Cookie: JSESSIONID=0000d8eyYq3L0z2fgq10m4v-rt4:-1; Path=/; secure&lt;br /&gt;
Cache-Control: no-cache=&amp;quot;set-cookie,set-cookie2&amp;quot;&lt;br /&gt;
Expires: Thu, 01 Dec 1994 16:00:00 GMT&lt;br /&gt;
Keep-Alive: timeout=5, max=100&lt;br /&gt;
Connection: Keep-Alive&lt;br /&gt;
Content-Type: text/html;charset=Cp1254&lt;br /&gt;
Content-Language: en-US&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
We observe that the application sets a new session identifier JSESSIONID=0000d8eyYq3L0z2fgq10m4v-rt4:-1 for the client.&amp;lt;br&amp;gt;&lt;br /&gt;
Next, if we successfully authenticate to the application with the following POST HTTPS:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
POST https://www.example.com/authentication.php HTTP/1.1&lt;br /&gt;
Host: www.example.com&lt;br /&gt;
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.16) Gecko/20080702 Firefox/2.0.0.16&lt;br /&gt;
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5&lt;br /&gt;
Accept-Language: it-it,it;q=0.8,en-us;q=0.5,en;q=0.3&lt;br /&gt;
Accept-Encoding: gzip,deflate&lt;br /&gt;
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7&lt;br /&gt;
Keep-Alive: 300&lt;br /&gt;
Connection: keep-alive&lt;br /&gt;
Referer: http://www.example.com&lt;br /&gt;
Cookie: JSESSIONID=0000d8eyYq3L0z2fgq10m4v-rt4:-1&lt;br /&gt;
Content-Type: application/x-www-form-urlencoded&lt;br /&gt;
Content-length: 57&lt;br /&gt;
&lt;br /&gt;
Name=Meucci&amp;amp;wpPassword=secret!&amp;amp;wpLoginattempt=Log+in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
We observe the following response from the server:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Date: Thu, 14 Aug 2008 14:52:58 GMT&lt;br /&gt;
Server: Apache/2.2.2 (Fedora)&lt;br /&gt;
X-Powered-By: PHP/5.1.6&lt;br /&gt;
Content-language: en&lt;br /&gt;
Cache-Control: private, must-revalidate, max-age=0&lt;br /&gt;
X-Content-Encoding: gzip&lt;br /&gt;
Content-length: 4090&lt;br /&gt;
Connection: close&lt;br /&gt;
Content-Type: text/html; charset=UTF-8&lt;br /&gt;
...&lt;br /&gt;
HTML data&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
As no new cookie has been issued upon a successful authentication we know that it is possible to perform session hijacking.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
We can send a valid session identifier to a user (possibly using a social engineering trick), wait for them to authenticate, and subsequently verify that privileges have been assigned to this cookie.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gray Box testing and example == &lt;br /&gt;
Talk with developers and understand if they have implemented a session token renew after a user successful authentication.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
The application should always first invalidating the existing session ID before authenticating a user and if the authentication is successful, provide another sessionID.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
* http://www.owasp.org/index.php/Session_Fixation&lt;br /&gt;
* Chris Shiflett: http://shiflett.org/articles/session-fixation&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
* OWASP WebScarab: [[OWASP_WebScarab_Project]]&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Testing_for_Session_Fixation_(OTG-SESS-003)&amp;diff=37134</id>
		<title>Testing for Session Fixation (OTG-SESS-003)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Testing_for_Session_Fixation_(OTG-SESS-003)&amp;diff=37134"/>
				<updated>2008-08-25T00:58:07Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Description of the Issue */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
When an application does not renew the cookie after a successful user authentication, it could be possible to find a session fixation vulnerability and force a user to utilize a cookie known by the attacker. In that case an attacker could steal the user session (session hijacking).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Session fixation vulnerabilities occur when:&amp;lt;br&amp;gt;&lt;br /&gt;
* A web application authenticates a user without first invalidating the existing session ID, thereby continuing to use the session ID already associated with the user.&lt;br /&gt;
* An attacker is able to force a known session ID on a user so that, once the user authenticates, the attacker has access to the authenticated session. &lt;br /&gt;
In the generic exploit of session fixation vulnerabilities, an attacker creates a new session on a web application and records the associated session identifier. The attacker then causes the victim to authenticate against the server using the same session identifier, giving the attacker access to the user's account through the active session.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Furthermore, the issue described above is problematic for sites which issue a session identifier over HTTP and then redirect the user to a HTTPS login form. If the session identifier is not reissued upon authentication, the identifier may be eavesdropped and may be used by an attacker to hijack the session. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
'''Testing for Session Fixation vulnerabilities:''' &amp;lt;br&amp;gt;&lt;br /&gt;
The first step is to access to the domain to test, for example www.example.com. If we request the following:&lt;br /&gt;
 GET www.example.com&lt;br /&gt;
We will obtain the following answer:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Date: Wed, 14 Aug 2008 08:45:11 GMT&lt;br /&gt;
Server: IBM_HTTP_Server&lt;br /&gt;
Set-Cookie: JSESSIONID=0000d8eyYq3L0z2fgq10m4v-rt4:-1; Path=/; secure&lt;br /&gt;
Cache-Control: no-cache=&amp;quot;set-cookie,set-cookie2&amp;quot;&lt;br /&gt;
Expires: Thu, 01 Dec 1994 16:00:00 GMT&lt;br /&gt;
Keep-Alive: timeout=5, max=100&lt;br /&gt;
Connection: Keep-Alive&lt;br /&gt;
Content-Type: text/html;charset=Cp1254&lt;br /&gt;
Content-Language: en-US&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
We can notice that the application will set a new JSESSIONID=0000d8eyYq3L0z2fgq10m4v-rt4:-1 on the client browser.&amp;lt;br&amp;gt;&lt;br /&gt;
Now, if we authenticate on the application, for example sending the following POST HTTPS:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
POST https://www.example.com/authentication.php HTTP/1.1&lt;br /&gt;
Host: www.example.com&lt;br /&gt;
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.16) Gecko/20080702 Firefox/2.0.0.16&lt;br /&gt;
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5&lt;br /&gt;
Accept-Language: it-it,it;q=0.8,en-us;q=0.5,en;q=0.3&lt;br /&gt;
Accept-Encoding: gzip,deflate&lt;br /&gt;
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7&lt;br /&gt;
Keep-Alive: 300&lt;br /&gt;
Connection: keep-alive&lt;br /&gt;
Referer: http://www.example.com&lt;br /&gt;
Cookie: JSESSIONID=0000d8eyYq3L0z2fgq10m4v-rt4:-1&lt;br /&gt;
Content-Type: application/x-www-form-urlencoded&lt;br /&gt;
Content-length: 57&lt;br /&gt;
&lt;br /&gt;
Name=Meucci&amp;amp;wpPassword=secret!&amp;amp;wpLoginattempt=Log+in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
if we obtain an answer as the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Date: Thu, 14 Aug 2008 14:52:58 GMT&lt;br /&gt;
Server: Apache/2.2.2 (Fedora)&lt;br /&gt;
X-Powered-By: PHP/5.1.6&lt;br /&gt;
Content-language: en&lt;br /&gt;
Cache-Control: private, must-revalidate, max-age=0&lt;br /&gt;
X-Content-Encoding: gzip&lt;br /&gt;
Content-length: 4090&lt;br /&gt;
Connection: close&lt;br /&gt;
Content-Type: text/html; charset=UTF-8&lt;br /&gt;
...&lt;br /&gt;
HTML data&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
we can understand that the application does not renew the user cookie after a successful authentication.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Now we can try to inject a valid cookie to a user (using a social engineering trick) and verify that it is possible to hijack the user session.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Gray Box testing and example == &lt;br /&gt;
Talk with developers and understand if they have implemented a session token renew after a user successful authentication.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
The application should always first invalidating the existing session ID before authenticating a user and if the authentication is successful, provide another sessionID.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
* http://www.owasp.org/index.php/Session_Fixation&lt;br /&gt;
* Chris Shiflett: http://shiflett.org/articles/session-fixation&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
* OWASP WebScarab: [[OWASP_WebScarab_Project]]&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Testing_Guide_v3_Table_of_Contents&amp;diff=37133</id>
		<title>OWASP Testing Guide v3 Table of Contents</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Testing_Guide_v3_Table_of_Contents&amp;diff=37133"/>
				<updated>2008-08-24T23:21:16Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* 4. (M.Meucci) Web Application Penetration Testing  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
This is the draft of table of content of the New Testing Guide.&lt;br /&gt;
You can download the stable version [http://www.owasp.org/index.php/Image:OWASP_Testing_Guide_v2_pdf.zip here] &lt;br /&gt;
&lt;br /&gt;
Back to the OWASP Testing Guide Project:&lt;br /&gt;
http://www.owasp.org/index.php/OWASP_Testing_Project&lt;br /&gt;
&lt;br /&gt;
 Testing Guide v3 (draft)&lt;br /&gt;
 Updated: 24th August 2008&lt;br /&gt;
 (new)--&amp;gt; new articles, (toimp)--&amp;gt; needs to improve or to review, (xxx%) --&amp;gt; current state of the article&lt;br /&gt;
&lt;br /&gt;
'''T A B L E    o f    C O N T E N T S'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==[[Testing Guide Foreword|(toimp)Foreword by OWASP Chair]]==&lt;br /&gt;
&lt;br /&gt;
==[[Testing Guide Frontispiece |(toimp: M.Meucci)1. Frontispiece]]==&lt;br /&gt;
&lt;br /&gt;
'''[[Testing Guide Frontispiece|(toimp: M.Meucci)1.1 About the OWASP Testing Guide Project]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[About The Open Web Application Security Project|1.2 About The Open Web Application Security Project]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[Testing Guide Introduction|2. Introduction]]==&lt;br /&gt;
&lt;br /&gt;
'''2.1 The OWASP Testing Project'''&lt;br /&gt;
&lt;br /&gt;
'''2.2 Principles of Testing'''&lt;br /&gt;
&lt;br /&gt;
'''2.3 Testing Techniques Explained''' &lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 90%) 2.4 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Security_Requirements_Test_Derivation Security requirements test derivation],[https://www.owasp.org/index.php/Testing_Guide_Introduction#Functional_and_Non_Functional_Test_Requirements functional and non functional test requirements], and [https://www.owasp.org/index.php/Testing_Guide_Introduction#Test_Cases_Through_Use_and_Misuse_Cases test cases through use and misuse cases]&lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 100%) 2.4.1 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Security_Tests_Integrated_in_Developers_and_Testers_Workflow Security tests integrated in developers and testers workflows]&lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 100%) 2.4.2 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Developers.27_Security_Tests Developers' security tests: unit tests and component level tests]&lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 90%) 2.4.3 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Functional_Testers.27_Security_Tests Functional testers' security tests: integrated system tests, tests in UAT, and production environment]&lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 100%) 2.5 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Security_Test_Data_Analysis_and_Reporting Security test data analysis and reporting: root cause identification and business/role case test data reporting]&lt;br /&gt;
&lt;br /&gt;
==[[The OWASP Testing Framework|3. The OWASP Testing Framework]]==&lt;br /&gt;
&lt;br /&gt;
'''3.1. Overview'''&lt;br /&gt;
&lt;br /&gt;
'''3.2. Phase 1: Before Development Begins '''&lt;br /&gt;
&lt;br /&gt;
'''3.3. Phase 2: During Definition and Design'''&lt;br /&gt;
&lt;br /&gt;
'''3.4. Phase 3: During Development'''&lt;br /&gt;
&lt;br /&gt;
'''3.5. Phase 4: During Deployment'''&lt;br /&gt;
&lt;br /&gt;
'''3.6. Phase 5: Maintenance and Operations'''&lt;br /&gt;
&lt;br /&gt;
'''3.7. A Typical SDLC Testing Workflow '''&lt;br /&gt;
&lt;br /&gt;
==[[Web Application Penetration Testing |4. (M.Meucci) Web Application Penetration Testing ]]==&lt;br /&gt;
&lt;br /&gt;
[[Testing: Introduction and objectives|'''4.1 Introduction and Objectives''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing Checklist| (new: M.Meucci - 100% ) 4.1.1 Testing Checklist]]&lt;br /&gt;
&lt;br /&gt;
[[Testing: Information Gathering|'''4.2 Information Gathering''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing: Spiders Robots and Crawlers|(new:C.Heinrich - 0%)4.2.1 Spiders, Robots and Crawlers]]&lt;br /&gt;
&lt;br /&gt;
[[Testing: Search engine discovery|(new:C.Heinrich - 0%)4.2.2 Search Engine Discovery/Reconnaissance]]&lt;br /&gt;
&lt;br /&gt;
[[Testing: Identify application entry points| (new: K.Horvath - 100%) 4.2.3 Identify application entry points]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Web Application Fingerprint|4.2.4 Testing for Web Application Fingerprint]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Application Discovery|4.2.5 Application Discovery]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Error Code|4.2.6 Analysis of Error Codes]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for configuration management|''' (new) 4.3 Configuration Management Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SSL-TLS| 4.3.1 SSL/TLS Testing (SSL Version, Algorithms, Key length, Digital Cert. Validity]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Testing for DB Listener|4.3.2 DB Listener Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for infrastructure configuration management| (new) 4.3.3 Infrastructure Configuration Management Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for application configuration management|4.3.4 Application Configuration Management Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for file extensions handling|4.3.5 Testing for File Extensions Handling]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for old_file|4.3.6 Old, Backup and Unreferenced Files]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Admin Interfaces|(A. Goodman - 90%) 4.3.7 Infrastructure and Application Admin Interfaces]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for HTTP Methods and XST| (imp: A. van der Stock - 100%)4.3.8 Testing for HTTP Methods and XST]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for business logic|'''(K.Horvath - 100%) 4.4 Business Logic Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for authentication|'''(M.Meucci - 100%) 4.5 Authentication Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for credentials transport|(new: G.Ingrosso - 100%) 4.5.1 Credentials transport over an encrypted channel]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for user enumeration|(new: M.Meucci, M.Mella - 90%) 4.5.2 Testing for user enumeration]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Default or Guessable User Account|(K.Horvath - 100% - adam updated) 4.5.3 Testing for Guessable (Dictionary) User Account]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Brute Force|4.5.4 Brute Force Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Bypassing Authentication Schema|4.5.5 Testing for bypassing authentication schema]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Vulnerable Remember Password and Pwd Reset|4.5.6 Testing for vulnerable remember &lt;br /&gt;
password and pwd reset]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Logout and Browser Cache Management|4.5.7 Testing for Logout and Browser Cache Management Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Captcha|(new: P.Luptak - 100% ) 4.5.8 Testing for CAPTCHA]]&lt;br /&gt;
&lt;br /&gt;
[[Testing Multiple Factors Authentication| (new: G.Fedon) 4.5.9 Testing Multiple Factors Authentication]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Race Conditions| (new: A. Goodman - 100%) 4.5.10 Testing for Race Conditions]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Authorization|'''(new: M.Meucci - 100%) 4.6 Authorization testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Path Traversal|(new) 4.6.1 Testing for path traversal]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Bypassing Authorization Schema|(new: M.Meucci - 100%)4.6.2 Testing for bypassing authorization schema]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Privilege escalation|(new: Cecil Su, M.Meucci - 100%)4.6.3 Testing for Privilege Escalation]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Session Management|'''4.7 Session Management Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Session_Management_Schema|(new: M.Meucci - 100%) 4.7.1 Testing for Session Management Schema]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for cookies attributes| (new: K.Horvath - 100%) 4.7.2 Testing for Cookies attributes]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Session Fixation| (new: M.Meucci - 100%) 4.7.3 Testing for Session Fixation]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Exposed Session Variables|4.7.4 Testing for Exposed Session Variables ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for CSRF|4.7.5 Testing for CSRF]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for HTTP Exploit|4.7.6 Testing for HTTP Exploit ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Data Validation|'''4.8 Data Validation Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Reflected Cross site scripting|(new: A. Coronel -100%)4.8.1 Testing for Reflected Cross Site Scripting]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Stored Cross site scripting|(new: R. Suggi Liverani - 100%)4.8.2 Testing for Stored Cross Site Scripting]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for DOM-based Cross site scripting|(new: A.Agarwwal, Kuza55 - 80%) 4.8.3 Testing for DOM based Cross Site Scripting]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Cross site flashing|(new: A.Agarwwal, S.Di Paola - 0%)4.8.4 Testing for Cross Site Flashing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SQL Injection| 4.8.5 Testing for SQL Injection ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Oracle|4.8.5.1 Oracle Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for MySQL|4.8.5.2 MySQL Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SQL Server|4.8.5.3 SQL Server Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for MS Access|(new:A.Parata - 90%) 4.8.5.4 MS Access Testing]]&lt;br /&gt;
&lt;br /&gt;
[[OWASP_Backend_Security_Project_Testing_PostgreSQL|4.8.5.5 (new: D.Bellucci 100% from OWASP BSP) Testing PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for LDAP Injection|4.8.6 Testing for LDAP Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for ORM Injection|4.8.7 Testing for ORM Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for XML Injection|4.8.8 Testing for XML Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SSI Injection|4.8.9 Testing for SSI Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for XPath Injection|4.8.10 Testing for XPath Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for IMAP/SMTP Injection|4.8.11 IMAP/SMTP Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Code Injection|4.8.12 Testing for Code Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Command Injection|4.8.13 Testing for Command Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Buffer Overflow|4.8.14 Testing for Buffer overflow]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Heap Overflow|4.8.14.1 Testing for Heap overflow]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Stack Overflow|4.8.14.2 Testing for Stack overflow]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Format String|4.8.14.3 Testing for Format string]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Incubated Vulnerability|4.8.15 Testing for incubated vulnerabilities]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Denial of Service|'''4.9 Testing for Denial of Service''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SQL Wildcard Attacks|(new: F.Mavituna - 100%) 4.9.1 Testing for SQL Wildcard Attacks]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for DoS Locking Customer Accounts|4.9.2 Testing for DoS Locking Customer Accounts]]	&lt;br /&gt;
&lt;br /&gt;
[[Testing for DoS Buffer Overflows|4.9.3 Testing for DoS Buffer Overflows]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for DoS User Specified Object Allocation|4.9.4 Testing for DoS User Specified Object Allocation]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for User Input as a Loop Counter|4.9.5 Testing for User Input as a Loop Counter]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Writing User Provided Data to Disk|4.9.6 Testing for Writing User Provided Data to Disk]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for DoS Failure to Release Resources|4.9.7 Testing for DoS Failure to Release Resources]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Storing too Much Data in Session|4.9.8 Testing for Storing too Much Data in Session]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Web Services|(toimp: M.Meucci -100%) '''4.10 Web Services Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing: WS Information Gathering|(new: M.Meucci -100%) 4.10.1 WS Information Gathering]]&lt;br /&gt;
&lt;br /&gt;
[[Testing WSDL|(new: M.Meucci -100%) 4.10.2 Testing WSDL]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for XML Structural|(toimp: M.Meucci -100%)4.10.3 XML Structural Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for XML Content-Level|4.10.4 XML Content-level Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for WS HTTP GET parameters/REST attacks|4.10.5 HTTP GET parameters/REST Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Naughty SOAP Attachments|4.10.6 Naughty SOAP attachments ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for WS Replay|4.10.7 Replay Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing_for_AJAX:_introduction|'''4.11 AJAX Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for AJAX Vulnerabilities|4.11.1 AJAX Vulnerabilities]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for AJAX|4.11.2 How to test AJAX]]&lt;br /&gt;
&lt;br /&gt;
==[[Writing Reports: value the real risk |(toimp: Mat)5. Writing Reports: value the real risk ]]==&lt;br /&gt;
&lt;br /&gt;
[[How to value the real risk |5.1 How to value the real risk]]&lt;br /&gt;
&lt;br /&gt;
[[How to write the report of the testing |5.2 How to write the report of the testing]]&lt;br /&gt;
&lt;br /&gt;
==[[Appendix A: Testing Tools |Appendix A: Testing Tools ]]==&lt;br /&gt;
&lt;br /&gt;
* Black Box Testing Tools&lt;br /&gt;
* Source Code Analyzers&lt;br /&gt;
* Other Tools&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[OWASP Testing Guide Appendix B: Suggested Reading | Appendix B: Suggested Reading]]==&lt;br /&gt;
* Whitepapers&lt;br /&gt;
* Books&lt;br /&gt;
* Useful Websites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[OWASP Testing Guide Appendix C: Fuzz Vectors | Appendix C: Fuzz Vectors]]==&lt;br /&gt;
&lt;br /&gt;
* Fuzz Categories&lt;br /&gt;
** Recursive fuzzing&lt;br /&gt;
** Replasive fuzzing&lt;br /&gt;
* Cross Site Scripting (XSS)&lt;br /&gt;
* Buffer Overflows and Format String Errors&lt;br /&gt;
** Buffer Overflows (BFO)&lt;br /&gt;
** Format String Errors (FSE)&lt;br /&gt;
** Integer Overflows (INT)&lt;br /&gt;
* SQL Injection&lt;br /&gt;
** Passive SQL Injection (SQP)&lt;br /&gt;
** Active SQL Injection (SQI)&lt;br /&gt;
* LDAP Injection&lt;br /&gt;
* XPATH Injection&lt;br /&gt;
&lt;br /&gt;
==[[OWASP Testing Guide Appendix D: Encoded Injection | (new: Harish S.)Appendix D: Encoded Injection]]==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Testing Project]]&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Testing_for_Race_Conditions_(OWASP-AT-010)&amp;diff=37132</id>
		<title>Testing for Race Conditions (OWASP-AT-010)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Testing_for_Race_Conditions_(OWASP-AT-010)&amp;diff=37132"/>
				<updated>2008-08-24T23:20:35Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Black Box testing and example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
A race condition is a flaw that produces an unexpected result when timing of actions impact other actions. An example may be seen on a multithreaded application where actions are being performed on the same data. Race conditions, by their very nature, are difficult to test for.&lt;br /&gt;
&lt;br /&gt;
==Description of the Issue==&lt;br /&gt;
Race conditions may occur when a process is critically or unexpectedly dependent on the sequence or timings of other events. &lt;br /&gt;
In a web application environment, where multiple requests can be processed at a given time, developers may leave concurrency to be handled&lt;br /&gt;
by the framework, server or programming language.&lt;br /&gt;
The following simplified example illustrates a potential concurrency problem in a transactional web application and relates to a joint savings account in which both users (threads) are logged into the same account and attempting a transfer.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Account A has 100 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 100 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Both User 1 and User 2 want to transfer 10 credits from Account A to Account B. If the transaction was correct the outcome should be:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Account A has 80 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 120 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
However, due to concurrency issues, the following result could be obtained:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
User 1 checks the value of Account A (=100 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 2 checks the value of Account A (=100 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 2 takes 10 credits from Account A (=90 credits) and put it in Account B (=110 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 1 takes 10 credits from Account A (Still believed to contain 100 credits) (=90 credits) and puts it into Account B (=120 credits).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Result:&lt;br /&gt;
Account A has 90 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 120 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another example can be seen in OWASP's WebGoat project under the Thread Safety lesson and shows how a shopping cart can be manipulated to purchase items for less than their advertised price. This, as with the example above, is due to the data changing between the time of check and its time of use.&lt;br /&gt;
&lt;br /&gt;
==Black Box testing and example==&lt;br /&gt;
Testing for race conditions is problematic due to their nature, and external influences on testing including server load, network latency etc will all play a part in the presence and detection of the condition.&amp;lt;br&amp;gt;&lt;br /&gt;
However, testing can be focused at specific transactional areas of the application, where time of read to time of use of specific data variables could be adversely affected by concurrency issues.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Black Box testing attempts to force a race condition may include the ability to make multiple simultaneous requests while observing the outcome for unexpected behavior.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Examples of such areas are illustrated in the paper &amp;quot;On Race Vulnerabilities in Web Applications&amp;quot;, cited in the further reading section. The authors suggest that it may be possible in certain circumstances to:&lt;br /&gt;
&lt;br /&gt;
* Create multiple user accounts with the same username.&lt;br /&gt;
* Bypass account lockouts against brute forcing.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Testers should be aware of the security implications of race conditions and their factors surrounding their difficulty of testing.&lt;br /&gt;
&lt;br /&gt;
==Gray Box testing and example==&lt;br /&gt;
&lt;br /&gt;
Code review may reveal likely areas of concern for concurrency issues. More information on reviewing code for concurrency issues can be seen at:&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.owasp.org/index.php/Reviewing_Code_for_Race_Conditions&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
iSec Partners - Concurrency attacks in Web Applications http://isecpartners.com/files/iSEC%20Partners%20-%20Concurrency%20Attacks%20in%20Web%20Applications.pdf&amp;lt;br&amp;gt;&lt;br /&gt;
B. Sullivan and B. Hoffman - Premature Ajax-ulation and You https://www.blackhat.com/presentations/bh-usa-07/Sullivan_and_Hoffman/Whitepaper/bh-usa-07-sullivan_and_hoffman-WP.pdf&amp;lt;br&amp;gt;&lt;br /&gt;
Thread Safety Challenge in WebGoat - http://www.owasp.org/index.php/OWASP_WebGoat_Project&amp;lt;br&amp;gt;&lt;br /&gt;
R. Paleari, D. Marrone, D. Bruschi, M. Monga - On Race Vulnerabilities in Web Applications http://security.dico.unimi.it/~roberto/pubs/dimva08-web.pdf&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Testing_for_Race_Conditions_(OWASP-AT-010)&amp;diff=37131</id>
		<title>Testing for Race Conditions (OWASP-AT-010)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Testing_for_Race_Conditions_(OWASP-AT-010)&amp;diff=37131"/>
				<updated>2008-08-24T23:10:45Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
A race condition is a flaw that produces an unexpected result when timing of actions impact other actions. An example may be seen on a multithreaded application where actions are being performed on the same data. Race conditions, by their very nature, are difficult to test for.&lt;br /&gt;
&lt;br /&gt;
==Description of the Issue==&lt;br /&gt;
Race conditions may occur when a process is critically or unexpectedly dependent on the sequence or timings of other events. &lt;br /&gt;
In a web application environment, where multiple requests can be processed at a given time, developers may leave concurrency to be handled&lt;br /&gt;
by the framework, server or programming language.&lt;br /&gt;
The following simplified example illustrates a potential concurrency problem in a transactional web application and relates to a joint savings account in which both users (threads) are logged into the same account and attempting a transfer.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Account A has 100 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 100 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Both User 1 and User 2 want to transfer 10 credits from Account A to Account B. If the transaction was correct the outcome should be:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Account A has 80 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 120 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
However, due to concurrency issues, the following result could be obtained:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
User 1 checks the value of Account A (=100 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 2 checks the value of Account A (=100 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 2 takes 10 credits from Account A (=90 credits) and put it in Account B (=110 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 1 takes 10 credits from Account A (Still believed to contain 100 credits) (=90 credits) and puts it into Account B (=120 credits).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Result:&lt;br /&gt;
Account A has 90 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 120 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another example can be seen in OWASP's WebGoat project under the Thread Safety lesson and shows how a shopping cart can be manipulated to purchase items for less than their advertised price. This, as with the example above, is due to the data changing between the time of check and its time of use.&lt;br /&gt;
&lt;br /&gt;
==Black Box testing and example==&lt;br /&gt;
Testing for race conditions is problematic due to their nature, and external influences on testing including server load, network latency etc will all play a part in the presence and detection of the condition.&amp;lt;br&amp;gt;&lt;br /&gt;
However, testing can be focused at specific transactional areas of the application, where time of read to time of use of specific data variables could be adversely affected by concurrency issues.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Black Box testing attempts to force a race condition may include the ability to make multiple simultaneous requests while observing the outcome for unexpected behavior.&lt;br /&gt;
&lt;br /&gt;
==Gray Box testing and example==&lt;br /&gt;
&lt;br /&gt;
Code review may reveal likely areas of concern for concurrency issues. More information on reviewing code for concurrency issues can be seen at:&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.owasp.org/index.php/Reviewing_Code_for_Race_Conditions&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
iSec Partners - Concurrency attacks in Web Applications http://isecpartners.com/files/iSEC%20Partners%20-%20Concurrency%20Attacks%20in%20Web%20Applications.pdf&amp;lt;br&amp;gt;&lt;br /&gt;
B. Sullivan and B. Hoffman - Premature Ajax-ulation and You https://www.blackhat.com/presentations/bh-usa-07/Sullivan_and_Hoffman/Whitepaper/bh-usa-07-sullivan_and_hoffman-WP.pdf&amp;lt;br&amp;gt;&lt;br /&gt;
Thread Safety Challenge in WebGoat - http://www.owasp.org/index.php/OWASP_WebGoat_Project&amp;lt;br&amp;gt;&lt;br /&gt;
R. Paleari, D. Marrone, D. Bruschi, M. Monga - On Race Vulnerabilities in Web Applications http://security.dico.unimi.it/~roberto/pubs/dimva08-web.pdf&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Testing_for_Race_Conditions_(OWASP-AT-010)&amp;diff=37130</id>
		<title>Testing for Race Conditions (OWASP-AT-010)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Testing_for_Race_Conditions_(OWASP-AT-010)&amp;diff=37130"/>
				<updated>2008-08-24T23:10:35Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
A race condition is a flaw that produces an unexpected result when timing of actions impact other actions. An example may be seen on a multithreaded application where actions are being performed on the same data. Race conditions, by their very nature, are difficult to test for.&lt;br /&gt;
&lt;br /&gt;
==Description of the Issue==&lt;br /&gt;
Race conditions may occur when a process is critically or unexpectedly dependent on the sequence or timings of other events. &lt;br /&gt;
In a web application environment, where multiple requests can be processed at a given time, developers may leave concurrency to be handled&lt;br /&gt;
by the framework, server or programming language.&lt;br /&gt;
The following simplified example illustrates a potential concurrency problem in a transactional web application and relates to a joint savings account in which both users (threads) are logged into the same account and attempting a transfer.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Account A has 100 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 100 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Both User 1 and User 2 want to transfer 10 credits from Account A to Account B. If the transaction was correct the outcome should be:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Account A has 80 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 120 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
However, due to concurrency issues, the following result could be obtained:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
User 1 checks the value of Account A (=100 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 2 checks the value of Account A (=100 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 2 takes 10 credits from Account A (=90 credits) and put it in Account B (=110 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 1 takes 10 credits from Account A (Still believed to contain 100 credits) (=90 credits) and puts it into Account B (=120 credits).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Result:&lt;br /&gt;
Account A has 90 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 120 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another example can be seen in OWASP's WebGoat project under the Thread Safety lesson and shows how a shopping cart can be manipulated to purchase items for less than their advertised price. This, as with the example above, is due to the data changing between the time of check and its time of use.&lt;br /&gt;
&lt;br /&gt;
==Black Box testing and example==&lt;br /&gt;
Testing for race conditions is problematic due to their nature, and external influences on testing including server load, network latency etc will all play a part in the presence and detection of the condition.&amp;lt;br&amp;gt;&lt;br /&gt;
However, testing can be focused at specific transactional areas of the application, where time of read to time of use of specific data variables could be adversely affected by concurrency issues.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Black Box testing attempts to force a race condition may include the ability to make multiple simultaneous requests while observing the outcome for unexpected behavior.&lt;br /&gt;
&lt;br /&gt;
==Gray Box testing and example==&lt;br /&gt;
&lt;br /&gt;
Code review may reveal likely areas of concern for concurrency issues. More information on reviewing code for concurrency issues can be seen at:&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.owasp.org/index.php/Reviewing_Code_for_Race_Conditions&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
iSec Partners - Concurrency attacks in Web Applications http://isecpartners.com/files/iSEC%20Partners%20-%20Concurrency%20Attacks%20in%20Web%20Applications.pdf&amp;lt;br&amp;gt;&lt;br /&gt;
B. Sullivan and B. Hoffman - Premature Ajax-ulation and You https://www.blackhat.com/presentations/bh-usa-07/Sullivan_and_Hoffman/Whitepaper/bh-usa-07-sullivan_and_hoffman-WP.pdf&amp;lt;br&amp;gt;&lt;br /&gt;
Thread Safety Challenge in WebGoat - http://www.owasp.org/index.php/OWASP_WebGoat_Project&lt;br /&gt;
R. Paleari, D. Marrone, D. Bruschi, M. Monga - On Race Vulnerabilities in Web Applications http://security.dico.unimi.it/~roberto/pubs/dimva08-web.pdf&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Testing_for_Race_Conditions_(OWASP-AT-010)&amp;diff=37129</id>
		<title>Testing for Race Conditions (OWASP-AT-010)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Testing_for_Race_Conditions_(OWASP-AT-010)&amp;diff=37129"/>
				<updated>2008-08-24T23:06:36Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Black Box testing and example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
A race condition is a flaw that produces an unexpected result when timing of actions impact other actions. An example may be seen on a multithreaded application where actions are being performed on the same data. Race conditions, by their very nature, are difficult to test for.&lt;br /&gt;
&lt;br /&gt;
==Description of the Issue==&lt;br /&gt;
Race conditions may occur when a process is critically or unexpectedly dependent on the sequence or timings of other events. &lt;br /&gt;
In a web application environment, where multiple requests can be processed at a given time, developers may leave concurrency to be handled&lt;br /&gt;
by the framework, server or programming language.&lt;br /&gt;
The following simplified example illustrates a potential concurrency problem in a transactional web application and relates to a joint savings account in which both users (threads) are logged into the same account and attempting a transfer.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Account A has 100 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 100 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Both User 1 and User 2 want to transfer 10 credits from Account A to Account B. If the transaction was correct the outcome should be:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Account A has 80 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 120 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
However, due to concurrency issues, the following result could be obtained:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
User 1 checks the value of Account A (=100 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 2 checks the value of Account A (=100 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 2 takes 10 credits from Account A (=90 credits) and put it in Account B (=110 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 1 takes 10 credits from Account A (Still believed to contain 100 credits) (=90 credits) and puts it into Account B (=120 credits).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Result:&lt;br /&gt;
Account A has 90 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 120 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another example can be seen in OWASP's WebGoat project under the Thread Safety lesson and shows how a shopping cart can be manipulated to purchase items for less than their advertised price. This, as with the example above, is due to the data changing between the time of check and its time of use.&lt;br /&gt;
&lt;br /&gt;
==Black Box testing and example==&lt;br /&gt;
Testing for race conditions is problematic due to their nature, and external influences on testing including server load, network latency etc will all play a part in the presence and detection of the condition.&amp;lt;br&amp;gt;&lt;br /&gt;
However, testing can be focused at specific transactional areas of the application, where time of read to time of use of specific data variables could be adversely affected by concurrency issues.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Black Box testing attempts to force a race condition may include the ability to make multiple simultaneous requests while observing the outcome for unexpected behavior.&lt;br /&gt;
&lt;br /&gt;
==Gray Box testing and example==&lt;br /&gt;
&lt;br /&gt;
Code review may reveal likely areas of concern for concurrency issues. More information on reviewing code for concurrency issues can be seen at:&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.owasp.org/index.php/Reviewing_Code_for_Race_Conditions&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
iSec Partners - Concurrency attacks in Web Applications http://isecpartners.com/files/iSEC%20Partners%20-%20Concurrency%20Attacks%20in%20Web%20Applications.pdf&amp;lt;br&amp;gt;&lt;br /&gt;
B. Sullivan and B. Hoffman - Premature Ajax-ulation and You https://www.blackhat.com/presentations/bh-usa-07/Sullivan_and_Hoffman/Whitepaper/bh-usa-07-sullivan_and_hoffman-WP.pdf&amp;lt;br&amp;gt;&lt;br /&gt;
Thread Safety Challenge in WebGoat - http://www.owasp.org/index.php/OWASP_WebGoat_Project&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Testing_Guide_v3_Table_of_Contents&amp;diff=37128</id>
		<title>OWASP Testing Guide v3 Table of Contents</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Testing_Guide_v3_Table_of_Contents&amp;diff=37128"/>
				<updated>2008-08-24T22:51:11Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* 4. (M.Meucci) Web Application Penetration Testing  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
This is the draft of table of content of the New Testing Guide.&lt;br /&gt;
You can download the stable version [http://www.owasp.org/index.php/Image:OWASP_Testing_Guide_v2_pdf.zip here] &lt;br /&gt;
&lt;br /&gt;
Back to the OWASP Testing Guide Project:&lt;br /&gt;
http://www.owasp.org/index.php/OWASP_Testing_Project&lt;br /&gt;
&lt;br /&gt;
 Testing Guide v3 (draft)&lt;br /&gt;
 Updated: 24th August 2008&lt;br /&gt;
 (new)--&amp;gt; new articles, (toimp)--&amp;gt; needs to improve or to review, (xxx%) --&amp;gt; current state of the article&lt;br /&gt;
&lt;br /&gt;
'''T A B L E    o f    C O N T E N T S'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==[[Testing Guide Foreword|(toimp)Foreword by OWASP Chair]]==&lt;br /&gt;
&lt;br /&gt;
==[[Testing Guide Frontispiece |(toimp: M.Meucci)1. Frontispiece]]==&lt;br /&gt;
&lt;br /&gt;
'''[[Testing Guide Frontispiece|(toimp: M.Meucci)1.1 About the OWASP Testing Guide Project]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[About The Open Web Application Security Project|1.2 About The Open Web Application Security Project]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[Testing Guide Introduction|2. Introduction]]==&lt;br /&gt;
&lt;br /&gt;
'''2.1 The OWASP Testing Project'''&lt;br /&gt;
&lt;br /&gt;
'''2.2 Principles of Testing'''&lt;br /&gt;
&lt;br /&gt;
'''2.3 Testing Techniques Explained''' &lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 90%) 2.4 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Security_Requirements_Test_Derivation Security requirements test derivation],[https://www.owasp.org/index.php/Testing_Guide_Introduction#Functional_and_Non_Functional_Test_Requirements functional and non functional test requirements], and [https://www.owasp.org/index.php/Testing_Guide_Introduction#Test_Cases_Through_Use_and_Misuse_Cases test cases through use and misuse cases]&lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 100%) 2.4.1 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Security_Tests_Integrated_in_Developers_and_Testers_Workflow Security tests integrated in developers and testers workflows]&lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 100%) 2.4.2 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Developers.27_Security_Tests Developers' security tests: unit tests and component level tests]&lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 90%) 2.4.3 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Functional_Testers.27_Security_Tests Functional testers' security tests: integrated system tests, tests in UAT, and production environment]&lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 100%) 2.5 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Security_Test_Data_Analysis_and_Reporting Security test data analysis and reporting: root cause identification and business/role case test data reporting]&lt;br /&gt;
&lt;br /&gt;
==[[The OWASP Testing Framework|3. The OWASP Testing Framework]]==&lt;br /&gt;
&lt;br /&gt;
'''3.1. Overview'''&lt;br /&gt;
&lt;br /&gt;
'''3.2. Phase 1: Before Development Begins '''&lt;br /&gt;
&lt;br /&gt;
'''3.3. Phase 2: During Definition and Design'''&lt;br /&gt;
&lt;br /&gt;
'''3.4. Phase 3: During Development'''&lt;br /&gt;
&lt;br /&gt;
'''3.5. Phase 4: During Deployment'''&lt;br /&gt;
&lt;br /&gt;
'''3.6. Phase 5: Maintenance and Operations'''&lt;br /&gt;
&lt;br /&gt;
'''3.7. A Typical SDLC Testing Workflow '''&lt;br /&gt;
&lt;br /&gt;
==[[Web Application Penetration Testing |4. (M.Meucci) Web Application Penetration Testing ]]==&lt;br /&gt;
&lt;br /&gt;
[[Testing: Introduction and objectives|'''4.1 Introduction and Objectives''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing Checklist| (new: M.Meucci - 100% ) 4.1.1 Testing Checklist]]&lt;br /&gt;
&lt;br /&gt;
[[Testing: Information Gathering|'''4.2 Information Gathering''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing: Spiders Robots and Crawlers|(new:C.Heinrich - 0%)4.2.1 Spiders, Robots and Crawlers]]&lt;br /&gt;
&lt;br /&gt;
[[Testing: Search engine discovery|(new:C.Heinrich - 0%)4.2.2 Search Engine Discovery/Reconnaissance]]&lt;br /&gt;
&lt;br /&gt;
[[Testing: Identify application entry points| (new: K.Horvath - 100%) 4.2.3 Identify application entry points]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Web Application Fingerprint|4.2.4 Testing for Web Application Fingerprint]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Application Discovery|4.2.5 Application Discovery]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Error Code|4.2.6 Analysis of Error Codes]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for configuration management|''' (new) 4.3 Configuration Management Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SSL-TLS| 4.3.1 SSL/TLS Testing (SSL Version, Algorithms, Key length, Digital Cert. Validity]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Testing for DB Listener|4.3.2 DB Listener Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for infrastructure configuration management| (new) 4.3.3 Infrastructure Configuration Management Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for application configuration management|4.3.4 Application Configuration Management Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for file extensions handling|4.3.5 Testing for File Extensions Handling]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for old_file|4.3.6 Old, Backup and Unreferenced Files]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Admin Interfaces|(A. Goodman - 90%) 4.3.7 Infrastructure and Application Admin Interfaces]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for HTTP Methods and XST| (imp: A. van der Stock - 100%)4.3.8 Testing for HTTP Methods and XST]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for business logic|'''(K.Horvath - 100%) 4.4 Business Logic Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for authentication|'''(M.Meucci - 100%) 4.5 Authentication Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for credentials transport|(new: G.Ingrosso - 100%) 4.5.1 Credentials transport over an encrypted channel]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for user enumeration|(new: M.Meucci, M.Mella - 90%) 4.5.2 Testing for user enumeration]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Default or Guessable User Account|(K.Horvath - 100% - adam updated) 4.5.3 Testing for Guessable (Dictionary) User Account]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Brute Force|4.5.4 Brute Force Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Bypassing Authentication Schema|4.5.5 Testing for bypassing authentication schema]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Vulnerable Remember Password and Pwd Reset|4.5.6 Testing for vulnerable remember &lt;br /&gt;
password and pwd reset]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Logout and Browser Cache Management|4.5.7 Testing for Logout and Browser Cache Management Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Captcha|(new: P.Luptak - 100% ) 4.5.8 Testing for CAPTCHA]]&lt;br /&gt;
&lt;br /&gt;
[[Testing Multiple Factors Authentication| (new: G.Fedon) 4.5.9 Testing Multiple Factors Authentication]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Race Conditions| (new: A. Goodman - 90%) 4.5.10 Testing for Race Conditions]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Authorization|'''(new: M.Meucci - 100%) 4.6 Authorization testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Path Traversal|(new) 4.6.1 Testing for path traversal]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Bypassing Authorization Schema|(new: M.Meucci - 100%)4.6.2 Testing for bypassing authorization schema]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Privilege escalation|(new: Cecil Su, M.Meucci - 100%)4.6.3 Testing for Privilege Escalation]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Session Management|'''4.7 Session Management Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Session_Management_Schema|(new: M.Meucci - 100%) 4.7.1 Testing for Session Management Schema]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for cookies attributes| (new: K.Horvath - 100%) 4.7.2 Testing for Cookies attributes]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Session Fixation| (new: M.Meucci - 100%) 4.7.3 Testing for Session Fixation]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Exposed Session Variables|4.7.4 Testing for Exposed Session Variables ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for CSRF|4.7.5 Testing for CSRF]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for HTTP Exploit|4.7.6 Testing for HTTP Exploit ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Data Validation|'''4.8 Data Validation Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Reflected Cross site scripting|(new: A. Coronel -100%)4.8.1 Testing for Reflected Cross Site Scripting]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Stored Cross site scripting|(new: R. Suggi Liverani - 100%)4.8.2 Testing for Stored Cross Site Scripting]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for DOM-based Cross site scripting|(new: A.Agarwwal, Kuza55 - 80%) 4.8.3 Testing for DOM based Cross Site Scripting]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Cross site flashing|(new: A.Agarwwal, S.Di Paola - 0%)4.8.4 Testing for Cross Site Flashing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SQL Injection| 4.8.5 Testing for SQL Injection ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Oracle|4.8.5.1 Oracle Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for MySQL|4.8.5.2 MySQL Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SQL Server|4.8.5.3 SQL Server Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for MS Access|(new:A.Parata - 90%) 4.8.5.4 MS Access Testing]]&lt;br /&gt;
&lt;br /&gt;
[[OWASP_Backend_Security_Project_Testing_PostgreSQL|4.8.5.5 (new: D.Bellucci 100% from OWASP BSP) Testing PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for LDAP Injection|4.8.6 Testing for LDAP Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for ORM Injection|4.8.7 Testing for ORM Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for XML Injection|4.8.8 Testing for XML Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SSI Injection|4.8.9 Testing for SSI Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for XPath Injection|4.8.10 Testing for XPath Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for IMAP/SMTP Injection|4.8.11 IMAP/SMTP Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Code Injection|4.8.12 Testing for Code Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Command Injection|4.8.13 Testing for Command Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Buffer Overflow|4.8.14 Testing for Buffer overflow]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Heap Overflow|4.8.14.1 Testing for Heap overflow]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Stack Overflow|4.8.14.2 Testing for Stack overflow]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Format String|4.8.14.3 Testing for Format string]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Incubated Vulnerability|4.8.15 Testing for incubated vulnerabilities]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Denial of Service|'''4.9 Testing for Denial of Service''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SQL Wildcard Attacks|(new: F.Mavituna - 100%) 4.9.1 Testing for SQL Wildcard Attacks]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for DoS Locking Customer Accounts|4.9.2 Testing for DoS Locking Customer Accounts]]	&lt;br /&gt;
&lt;br /&gt;
[[Testing for DoS Buffer Overflows|4.9.3 Testing for DoS Buffer Overflows]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for DoS User Specified Object Allocation|4.9.4 Testing for DoS User Specified Object Allocation]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for User Input as a Loop Counter|4.9.5 Testing for User Input as a Loop Counter]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Writing User Provided Data to Disk|4.9.6 Testing for Writing User Provided Data to Disk]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for DoS Failure to Release Resources|4.9.7 Testing for DoS Failure to Release Resources]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Storing too Much Data in Session|4.9.8 Testing for Storing too Much Data in Session]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Web Services|(toimp: M.Meucci -100%) '''4.10 Web Services Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing: WS Information Gathering|(new: M.Meucci -100%) 4.10.1 WS Information Gathering]]&lt;br /&gt;
&lt;br /&gt;
[[Testing WSDL|(new: M.Meucci -100%) 4.10.2 Testing WSDL]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for XML Structural|(toimp: M.Meucci -100%)4.10.3 XML Structural Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for XML Content-Level|4.10.4 XML Content-level Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for WS HTTP GET parameters/REST attacks|4.10.5 HTTP GET parameters/REST Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Naughty SOAP Attachments|4.10.6 Naughty SOAP attachments ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for WS Replay|4.10.7 Replay Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing_for_AJAX:_introduction|'''4.11 AJAX Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for AJAX Vulnerabilities|4.11.1 AJAX Vulnerabilities]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for AJAX|4.11.2 How to test AJAX]]&lt;br /&gt;
&lt;br /&gt;
==[[Writing Reports: value the real risk |(toimp: Mat)5. Writing Reports: value the real risk ]]==&lt;br /&gt;
&lt;br /&gt;
[[How to value the real risk |5.1 How to value the real risk]]&lt;br /&gt;
&lt;br /&gt;
[[How to write the report of the testing |5.2 How to write the report of the testing]]&lt;br /&gt;
&lt;br /&gt;
==[[Appendix A: Testing Tools |Appendix A: Testing Tools ]]==&lt;br /&gt;
&lt;br /&gt;
* Black Box Testing Tools&lt;br /&gt;
* Source Code Analyzers&lt;br /&gt;
* Other Tools&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[OWASP Testing Guide Appendix B: Suggested Reading | Appendix B: Suggested Reading]]==&lt;br /&gt;
* Whitepapers&lt;br /&gt;
* Books&lt;br /&gt;
* Useful Websites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[OWASP Testing Guide Appendix C: Fuzz Vectors | Appendix C: Fuzz Vectors]]==&lt;br /&gt;
&lt;br /&gt;
* Fuzz Categories&lt;br /&gt;
** Recursive fuzzing&lt;br /&gt;
** Replasive fuzzing&lt;br /&gt;
* Cross Site Scripting (XSS)&lt;br /&gt;
* Buffer Overflows and Format String Errors&lt;br /&gt;
** Buffer Overflows (BFO)&lt;br /&gt;
** Format String Errors (FSE)&lt;br /&gt;
** Integer Overflows (INT)&lt;br /&gt;
* SQL Injection&lt;br /&gt;
** Passive SQL Injection (SQP)&lt;br /&gt;
** Active SQL Injection (SQI)&lt;br /&gt;
* LDAP Injection&lt;br /&gt;
* XPATH Injection&lt;br /&gt;
&lt;br /&gt;
==[[OWASP Testing Guide Appendix D: Encoded Injection | (new: Harish S.)Appendix D: Encoded Injection]]==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Testing Project]]&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Testing_for_Default_or_Guessable_User_Account_(OWASP-AT-003)&amp;diff=37127</id>
		<title>Testing for Default or Guessable User Account (OWASP-AT-003)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Testing_for_Default_or_Guessable_User_Account_(OWASP-AT-003)&amp;diff=37127"/>
				<updated>2008-08-24T22:50:06Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Black Box testing and example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
Today's web applications typically run on popular open source or commercial software, that is installed on servers and requires configuration or customization by the server administrator. In addition, most of today's hardware appliances, i.e., network routers and database servers, offer web-based configuration or administrative interfaces.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Often, these applications are not properly configured and the default credentials provided for initial authentication and configuration are never updated.  In addition, it is typical to find generic accounts, left over from testing or administration, that use common usernames and passwords and are left enabled in the application and its infrastructure.&amp;lt;br&amp;gt;&lt;br /&gt;
These default username and password combinations are widely known by penetration testers and malicious hackers that can use them to gain access to various types of custom, open source, or commercial applications.&amp;lt;br&amp;gt;&lt;br /&gt;
In addition, weak password policy enforcements seen in many applications allow users to sign up using easy to guess usernames and passwords, and may also not allow password changes to be undertaken. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
The root cause of this problem can be identified as:&lt;br /&gt;
* Inexperienced IT personnel, who are unaware of the importance of changing default passwords on installed infrastructure components.&lt;br /&gt;
* Programmers, who leave backdoors to easily access and test their application and later forget to remove them.&lt;br /&gt;
* Application administrators and users that choose an easy username and password for themselves &lt;br /&gt;
* Applications with built-in, non-removable default accounts with a pre-set username and password.&lt;br /&gt;
* Applications which leak information as to the validity of usernames during either authentication attempts, password resets or account signup.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
An additional problem stems from the use of blank passwords, which are simply the result of a lack of security awareness or a desire to simplify administration.&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
In Blackbox testing the tester knows nothing about the application, its underlying infrastructure, and any username or password policies. In reality this is often this is not the case and some information about the application is known. If this is the case, simply skip the steps that refer to obtaining information you already have.&lt;br /&gt;
&lt;br /&gt;
When testing a known application interface - for example a Cisco router web interface or a Weblogic administrator portal, check that the known usernames and passwords for these devices do not result in successful authentication. Common credentials for many systems can be found using a search engine or by using one of the sites listed in the Further Reading section.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
When facing applications to which we do not have a list of default and common user accounts, or when common accounts do not work, we can perform manual testing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Note that the application being tested may have an account lockout, and multiple password guess attempts with a known username may cause the account to be locked. If it is possible to lock the administrator account, it may be troublesome for the system administrator to reset it&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Many applications have verbose error messages that inform the site users as to the validity of entered usernames. This information will be helpful when testing for default or guessable user accounts. Such functionality can be found, for example, on the login page, password reset and forgotten password page, and sign up page. More information on this can be seen in the section titled: 'Testing for user enumeration'.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Try the following usernames - &amp;quot;admin&amp;quot;, &amp;quot;administrator&amp;quot;, &amp;quot;root&amp;quot;, &amp;quot;system&amp;quot;, &amp;quot;guest&amp;quot;, &amp;quot;operator&amp;quot;, or &amp;quot;super&amp;quot;. These are popular among system administrators and are often used. Additionally you could try &amp;quot;qa&amp;quot;, &amp;quot;test&amp;quot;, &amp;quot;test1&amp;quot;, &amp;quot;testing&amp;quot;, &amp;quot;guest&amp;quot; and similar names. Attempt any combination of the above in both the username and the password fields. If the application is vulnerable to username enumeration, and you successfully managed to identify any of the above usernames, attempt passwords in a similar manner.  In addition try an empty password or one of the following &amp;quot;password&amp;quot;, &amp;quot;pass123&amp;quot;, &amp;quot;password123&amp;quot;, &amp;quot;admin&amp;quot;, or &amp;quot;guest&amp;quot; with the above accounts or any other enumerated accounts. Further permutations of the above can also be attempted. If these passwords fail, it may be worth using a common username and password list and attempting multiple requests against the application. This can, of course, be scripted to save time.&lt;br /&gt;
* Application administrative users are often named after the application or organization. This means if you are testing an application named &amp;quot;Obscurity&amp;quot;, try using obscurity/obscurity or any other similar combination as the username and password.&lt;br /&gt;
* When performing a test for a customer, attempt using names of contacts you have received as usernames with any common passwords.&lt;br /&gt;
* Viewing the User Registration page may help determine the expected format and length of the application usernames and passwords. If a user registration page does not exist, determine if the organization uses a standard naming convention for user names such as their email address or the name before the &amp;quot;@&amp;quot; in the email.   &lt;br /&gt;
* Attempt using all the above usernames with blank passwords.&lt;br /&gt;
* Review the page source and javascript either through a proxy or by viewing the source. Look for any references to users and passwords in the source. For example &amp;quot;If username='admin' then starturl=/admin.asp else /index.asp&amp;quot; (for a successful login vs a failed login).  Also, if you have a valid account, then login and view every request and response for a valid login vs an invalid login, such as additional hidden parameters, interesting GET request (login=yes), etc.&lt;br /&gt;
* Look for account names and passwords written in comments in the source code. Also look in backup directories etc for source code that may contain comments of interest.&lt;br /&gt;
* Try to extrapolate from the application how usernames are generated. For example, can a user create their own username or does the system create an account for the user based on some personal information or a predictable sequence? If the application does create its own accounts in a predictable sequence, such as user7811, try fuzzing all possible accounts recursively.  If you can identify a different response from the application when using a valid username and a wrong password, then you can try a brute force attack on the valid username (or quickly try any of the identified common passwords above or in the reference section).  &lt;br /&gt;
* If the application creates its own passwords for new users, whether or not the username is created by the application or by the user, then try to determine if the password is predictable. Try to create many new accounts in quick succession to compare and determine if the passwords are predictable.  If predictable, then try to correlate these with the usernames, or any enumerated accounts, and use them as a basis for a brute force attack.&lt;br /&gt;
&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Successful authentication to the application or system being tested.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gray Box testing and example == &lt;br /&gt;
The following steps rely on an entirely Gray Box approach. If only some of the information is available to you, refer to black box testing to fill the gaps.&lt;br /&gt;
&lt;br /&gt;
* Talk to the IT personnel to determine passwords they use for administrative access and how administration of the application is undertaken. &lt;br /&gt;
* Examine the password policy for the application, checking whether username and passwords are complex, difficult to guess, and not related to the application name, person name, or administrative names (&amp;quot;system&amp;quot;). &lt;br /&gt;
* Examine the user database for default names, application names, and easily guessed names as described in the Black Box testing section. Check for empty password fields.&lt;br /&gt;
* Examine the code for hard coded usernames and passwords.&lt;br /&gt;
* Check for configuration files that contain usernames and passwords.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Successful authentication to the application or system being tested.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
* CIRT http://www.cirt.net/passwords&lt;br /&gt;
* Government Security - Default Logins and Passwords for Networked Devices http://www.governmentsecurity.org/articles/DefaultLoginsandPasswordsforNetworkedDevices.php&lt;br /&gt;
* Virus.org http://www.virus.org/default-password/&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Burp Intruder: http://portswigger.net/intruder/&lt;br /&gt;
* THC Hydra: http://www.thc.org/thc-hydra/&lt;br /&gt;
* Brutus http://www.hoobie.net/brutus/&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Testing_for_Default_or_Guessable_User_Account_(OWASP-AT-003)&amp;diff=37126</id>
		<title>Testing for Default or Guessable User Account (OWASP-AT-003)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Testing_for_Default_or_Guessable_User_Account_(OWASP-AT-003)&amp;diff=37126"/>
				<updated>2008-08-24T22:48:53Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Black Box testing and example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
Today's web applications typically run on popular open source or commercial software, that is installed on servers and requires configuration or customization by the server administrator. In addition, most of today's hardware appliances, i.e., network routers and database servers, offer web-based configuration or administrative interfaces.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Often, these applications are not properly configured and the default credentials provided for initial authentication and configuration are never updated.  In addition, it is typical to find generic accounts, left over from testing or administration, that use common usernames and passwords and are left enabled in the application and its infrastructure.&amp;lt;br&amp;gt;&lt;br /&gt;
These default username and password combinations are widely known by penetration testers and malicious hackers that can use them to gain access to various types of custom, open source, or commercial applications.&amp;lt;br&amp;gt;&lt;br /&gt;
In addition, weak password policy enforcements seen in many applications allow users to sign up using easy to guess usernames and passwords, and may also not allow password changes to be undertaken. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
The root cause of this problem can be identified as:&lt;br /&gt;
* Inexperienced IT personnel, who are unaware of the importance of changing default passwords on installed infrastructure components.&lt;br /&gt;
* Programmers, who leave backdoors to easily access and test their application and later forget to remove them.&lt;br /&gt;
* Application administrators and users that choose an easy username and password for themselves &lt;br /&gt;
* Applications with built-in, non-removable default accounts with a pre-set username and password.&lt;br /&gt;
* Applications which leak information as to the validity of usernames during either authentication attempts, password resets or account signup.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
An additional problem stems from the use of blank passwords, which are simply the result of a lack of security awareness or a desire to simplify administration.&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
In Blackbox testing the tester knows nothing about the application, its underlying infrastructure, and any username or password policies. In reality this is often this is not the case and some information about the application is known. If this is the case, simply skip the steps that refer to obtaining information you already have.&lt;br /&gt;
&lt;br /&gt;
When testing a known application interface - for example a Cisco router web interface or a Weblogic administrator portal, check that the known usernames and passwords for these devices do not result in successful authentication. Common credentials for many systems can be found using a search engine or by using one of the sites listed in the Further Reading section.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
When facing applications to which we do not have a list of default and common user accounts, or when common accounts do not work, we can perform manual testing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Note that the application being tested may have an account lockout, and multiple password guess attempts with a known username may cause the account to be locked. If it is possible to lock the administrator account, it may be troublesome for the system administrator to reset it&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Many applications have verbose error messages that inform the site users as to the validity of entered usernames. Such functionality can be found, for example, on the login page, password reset and forgotten password page, and sign up page. More information on this can be seen in the section titled: XXXXXXXXXXXXXXXXXX.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Try the following usernames - &amp;quot;admin&amp;quot;, &amp;quot;administrator&amp;quot;, &amp;quot;root&amp;quot;, &amp;quot;system&amp;quot;, &amp;quot;guest&amp;quot;, &amp;quot;operator&amp;quot;, or &amp;quot;super&amp;quot;. These are popular among system administrators and are often used. Additionally you could try &amp;quot;qa&amp;quot;, &amp;quot;test&amp;quot;, &amp;quot;test1&amp;quot;, &amp;quot;testing&amp;quot;, &amp;quot;guest&amp;quot; and similar names. Attempt any combination of the above in both the username and the password fields. If the application is vulnerable to username enumeration, and you successfully managed to identify any of the above usernames, attempt passwords in a similar manner.  In addition try an empty password or one of the following &amp;quot;password&amp;quot;, &amp;quot;pass123&amp;quot;, &amp;quot;password123&amp;quot;, &amp;quot;admin&amp;quot;, or &amp;quot;guest&amp;quot; with the above accounts or any other enumerated accounts. Further permutations of the above can also be attempted. If these passwords fail, it may be worth using a common username and password list and attempting multiple requests against the application. This can, of course, be scripted to save time.&lt;br /&gt;
* Application administrative users are often named after the application or organization. This means if you are testing an application named &amp;quot;Obscurity&amp;quot;, try using obscurity/obscurity or any other similar combination as the username and password.&lt;br /&gt;
* When performing a test for a customer, attempt using names of contacts you have received as usernames with any common passwords.&lt;br /&gt;
* Viewing the User Registration page may help determine the expected format and length of the application usernames and passwords. If a user registration page does not exist, determine if the organization uses a standard naming convention for user names such as their email address or the name before the &amp;quot;@&amp;quot; in the email.   &lt;br /&gt;
* Attempt using all the above usernames with blank passwords.&lt;br /&gt;
* Review the page source and javascript either through a proxy or by viewing the source. Look for any references to users and passwords in the source. For example &amp;quot;If username='admin' then starturl=/admin.asp else /index.asp&amp;quot; (for a successful login vs a failed login).  Also, if you have a valid account, then login and view every request and response for a valid login vs an invalid login, such as additional hidden parameters, interesting GET request (login=yes), etc.&lt;br /&gt;
* Look for account names and passwords written in comments in the source code. Also look in backup directories etc for source code that may contain comments of interest.&lt;br /&gt;
* Try to extrapolate from the application how usernames are generated. For example, can a user create their own username or does the system create an account for the user based on some personal information or a predictable sequence? If the application does create its own accounts in a predictable sequence, such as user7811, try fuzzing all possible accounts recursively.  If you can identify a different response from the application when using a valid username and a wrong password, then you can try a brute force attack on the valid username (or quickly try any of the identified common passwords above or in the reference section).  &lt;br /&gt;
* If the application creates its own passwords for new users, whether or not the username is created by the application or by the user, then try to determine if the password is predictable. Try to create many new accounts in quick succession to compare and determine if the passwords are predictable.  If predictable, then try to correlate these with the usernames, or any enumerated accounts, and use them as a basis for a brute force attack.&lt;br /&gt;
&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Successful authentication to the application or system being tested.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gray Box testing and example == &lt;br /&gt;
The following steps rely on an entirely Gray Box approach. If only some of the information is available to you, refer to black box testing to fill the gaps.&lt;br /&gt;
&lt;br /&gt;
* Talk to the IT personnel to determine passwords they use for administrative access and how administration of the application is undertaken. &lt;br /&gt;
* Examine the password policy for the application, checking whether username and passwords are complex, difficult to guess, and not related to the application name, person name, or administrative names (&amp;quot;system&amp;quot;). &lt;br /&gt;
* Examine the user database for default names, application names, and easily guessed names as described in the Black Box testing section. Check for empty password fields.&lt;br /&gt;
* Examine the code for hard coded usernames and passwords.&lt;br /&gt;
* Check for configuration files that contain usernames and passwords.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Successful authentication to the application or system being tested.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
* CIRT http://www.cirt.net/passwords&lt;br /&gt;
* Government Security - Default Logins and Passwords for Networked Devices http://www.governmentsecurity.org/articles/DefaultLoginsandPasswordsforNetworkedDevices.php&lt;br /&gt;
* Virus.org http://www.virus.org/default-password/&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Burp Intruder: http://portswigger.net/intruder/&lt;br /&gt;
* THC Hydra: http://www.thc.org/thc-hydra/&lt;br /&gt;
* Brutus http://www.hoobie.net/brutus/&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Testing_for_Default_or_Guessable_User_Account_(OWASP-AT-003)&amp;diff=37125</id>
		<title>Testing for Default or Guessable User Account (OWASP-AT-003)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Testing_for_Default_or_Guessable_User_Account_(OWASP-AT-003)&amp;diff=37125"/>
				<updated>2008-08-24T22:46:24Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Description of the Issue */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
Today's web applications typically run on popular open source or commercial software, that is installed on servers and requires configuration or customization by the server administrator. In addition, most of today's hardware appliances, i.e., network routers and database servers, offer web-based configuration or administrative interfaces.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Often, these applications are not properly configured and the default credentials provided for initial authentication and configuration are never updated.  In addition, it is typical to find generic accounts, left over from testing or administration, that use common usernames and passwords and are left enabled in the application and its infrastructure.&amp;lt;br&amp;gt;&lt;br /&gt;
These default username and password combinations are widely known by penetration testers and malicious hackers that can use them to gain access to various types of custom, open source, or commercial applications.&amp;lt;br&amp;gt;&lt;br /&gt;
In addition, weak password policy enforcements seen in many applications allow users to sign up using easy to guess usernames and passwords, and may also not allow password changes to be undertaken. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
The root cause of this problem can be identified as:&lt;br /&gt;
* Inexperienced IT personnel, who are unaware of the importance of changing default passwords on installed infrastructure components.&lt;br /&gt;
* Programmers, who leave backdoors to easily access and test their application and later forget to remove them.&lt;br /&gt;
* Application administrators and users that choose an easy username and password for themselves &lt;br /&gt;
* Applications with built-in, non-removable default accounts with a pre-set username and password.&lt;br /&gt;
* Applications which leak information as to the validity of usernames during either authentication attempts, password resets or account signup.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
An additional problem stems from the use of blank passwords, which are simply the result of a lack of security awareness or a desire to simplify administration.&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
In Blackbox testing the tester knows nothing about the application, its underlying infrastructure, and any username or password policies. In reality this is often this is not the case and some information about the application is known. If this is the case, simply skip the steps that refer to obtaining information you already have.&lt;br /&gt;
&lt;br /&gt;
When testing a known application interface - for example a Cisco router web interface or a Weblogic administrator portal, check that the known usernames and passwords for these devices do not result in successful authentication. Common credentials for many systems can be found using a search engine or by using one of the sites listed in the Further Reading section.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
When facing applications to which we do not have a list of default and common user accounts, or when common accounts do not work, we can perform manual testing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Note that the application being tested may have an account lockout, and multiple password guess attempts with a known username may cause the account to be locked. If it is possible to lock the administrator account, it may be troublesome for the system administrator to reset it&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try the following usernames - &amp;quot;admin&amp;quot;, &amp;quot;administrator&amp;quot;, &amp;quot;root&amp;quot;, &amp;quot;system&amp;quot;, &amp;quot;guest&amp;quot;, &amp;quot;operator&amp;quot;, or &amp;quot;super&amp;quot;. These are popular among system administrators and are often used. Additionally you could try &amp;quot;qa&amp;quot;, &amp;quot;test&amp;quot;, &amp;quot;test1&amp;quot;, &amp;quot;testing&amp;quot;, &amp;quot;guest&amp;quot; and similar names. Attempt any combination of the above in both the username and the password fields. If the application is vulnerable to username enumeration, and you successfully managed to identify any of the above usernames, attempt passwords in a similar manner.  In addition try an empty password or one of the following &amp;quot;password&amp;quot;, &amp;quot;pass123&amp;quot;, &amp;quot;password123&amp;quot;, &amp;quot;admin&amp;quot;, or &amp;quot;guest&amp;quot; with the above accounts or any other enumerated accounts. Further permutations of the above can also be attempted. If these passwords fail, it may be worth using a common username and password list and attempting multiple requests against the application. This can, of course, be scripted to save time.&lt;br /&gt;
* Application administrative users are often named after the application or organization. This means if you are testing an application named &amp;quot;Obscurity&amp;quot;, try using obscurity/obscurity or any other similar combination as the username and password.&lt;br /&gt;
* When performing a test for a customer, attempt using names of contacts you have received as usernames with any common passwords.&lt;br /&gt;
* Viewing the User Registration page may help determine the expected format and length of the application usernames and passwords. If a user registration page does not exist, determine if the organization uses a standard naming convention for user names such as their email address or the name before the &amp;quot;@&amp;quot; in the email.   &lt;br /&gt;
* Attempt using all the above usernames with blank passwords.&lt;br /&gt;
* Review the page source and javascript either through a proxy or by viewing the source. Look for any references to users and passwords in the source. For example &amp;quot;If username='admin' then starturl=/admin.asp else /index.asp&amp;quot; (for a successful login vs a failed login).  Also, if you have a valid account, then login and view every request and response for a valid login vs an invalid login, such as additional hidden parameters, interesting GET request (login=yes), etc.&lt;br /&gt;
* Look for account names and passwords written in comments in the source code. Also look in backup directories etc for source code that may contain comments of interest.&lt;br /&gt;
* Try to extrapolate from the application how usernames are generated. For example, can a user create their own username or does the system create an account for the user based on some personal information or a predictable sequence? If the application does create its own accounts in a predictable sequence, such as user7811, try fuzzing all possible accounts recursively.  If you can identify a different response from the application when using a valid username and a wrong password, then you can try a brute force attack on the valid username (or quickly try any of the identified common passwords above or in the reference section).  &lt;br /&gt;
* If the application creates its own passwords for new users, whether or not the username is created by the application or by the user, then try to determine if the password is predictable. Try to create many new accounts in quick succession to compare and determine if the passwords are predictable.  If predictable, then try to correlate these with the usernames, or any enumerated accounts, and use them as a basis for a brute force attack.&lt;br /&gt;
&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Successful authentication to the application or system being tested.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gray Box testing and example == &lt;br /&gt;
The following steps rely on an entirely Gray Box approach. If only some of the information is available to you, refer to black box testing to fill the gaps.&lt;br /&gt;
&lt;br /&gt;
* Talk to the IT personnel to determine passwords they use for administrative access and how administration of the application is undertaken. &lt;br /&gt;
* Examine the password policy for the application, checking whether username and passwords are complex, difficult to guess, and not related to the application name, person name, or administrative names (&amp;quot;system&amp;quot;). &lt;br /&gt;
* Examine the user database for default names, application names, and easily guessed names as described in the Black Box testing section. Check for empty password fields.&lt;br /&gt;
* Examine the code for hard coded usernames and passwords.&lt;br /&gt;
* Check for configuration files that contain usernames and passwords.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Successful authentication to the application or system being tested.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
* CIRT http://www.cirt.net/passwords&lt;br /&gt;
* Government Security - Default Logins and Passwords for Networked Devices http://www.governmentsecurity.org/articles/DefaultLoginsandPasswordsforNetworkedDevices.php&lt;br /&gt;
* Virus.org http://www.virus.org/default-password/&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Burp Intruder: http://portswigger.net/intruder/&lt;br /&gt;
* THC Hydra: http://www.thc.org/thc-hydra/&lt;br /&gt;
* Brutus http://www.hoobie.net/brutus/&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Testing_for_Default_or_Guessable_User_Account_(OWASP-AT-003)&amp;diff=37124</id>
		<title>Testing for Default or Guessable User Account (OWASP-AT-003)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Testing_for_Default_or_Guessable_User_Account_(OWASP-AT-003)&amp;diff=37124"/>
				<updated>2008-08-24T22:43:09Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Black Box testing and example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
Today's web applications typically run on popular open source or commercial software, that is installed on servers and requires configuration or customization by the server administrator. In addition, most of today's hardware appliances, i.e., network routers and database servers, offer web-based configuration or administrative interfaces.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Often, these applications are not properly configured and the default credentials provided for initial authentication and configuration are never updated.  In addition, it is typical to find generic accounts, left over from testing or administration, that use common usernames and passwords and are left enabled in the application and its infrastructure.&amp;lt;br&amp;gt;&lt;br /&gt;
These default username and password combinations are widely known by penetration testers and malicious hackers that can use them to gain access to various types of custom, open source, or commercial applications.&amp;lt;br&amp;gt;&lt;br /&gt;
In addition, weak password policy enforcements seen in many applications allow users to sign up using easy to guess usernames and passwords, and may also not allow password changes to be undertaken. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
The root cause of this problem can be identified as:&lt;br /&gt;
* Inexperienced IT personnel, who are unaware of the importance of changing default passwords on installed infrastructure components.&lt;br /&gt;
* Programmers, who leave backdoors to easily access and test their application and later forget to remove them.&lt;br /&gt;
* Application administrators and users that choose an easy username and password for themselves &lt;br /&gt;
* Applications with built-in, non-removable default accounts with a pre-set username and password. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
An additional problem stems from the use of blank passwords, which are simply the result of a lack of security awareness or a desire to simplify administration.&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
In Blackbox testing the tester knows nothing about the application, its underlying infrastructure, and any username or password policies. In reality this is often this is not the case and some information about the application is known. If this is the case, simply skip the steps that refer to obtaining information you already have.&lt;br /&gt;
&lt;br /&gt;
When testing a known application interface - for example a Cisco router web interface or a Weblogic administrator portal, check that the known usernames and passwords for these devices do not result in successful authentication. Common credentials for many systems can be found using a search engine or by using one of the sites listed in the Further Reading section.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
When facing applications to which we do not have a list of default and common user accounts, or when common accounts do not work, we can perform manual testing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Note that the application being tested may have an account lockout, and multiple password guess attempts with a known username may cause the account to be locked. If it is possible to lock the administrator account, it may be troublesome for the system administrator to reset it&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try the following usernames - &amp;quot;admin&amp;quot;, &amp;quot;administrator&amp;quot;, &amp;quot;root&amp;quot;, &amp;quot;system&amp;quot;, &amp;quot;guest&amp;quot;, &amp;quot;operator&amp;quot;, or &amp;quot;super&amp;quot;. These are popular among system administrators and are often used. Additionally you could try &amp;quot;qa&amp;quot;, &amp;quot;test&amp;quot;, &amp;quot;test1&amp;quot;, &amp;quot;testing&amp;quot;, &amp;quot;guest&amp;quot; and similar names. Attempt any combination of the above in both the username and the password fields. If the application is vulnerable to username enumeration, and you successfully managed to identify any of the above usernames, attempt passwords in a similar manner.  In addition try an empty password or one of the following &amp;quot;password&amp;quot;, &amp;quot;pass123&amp;quot;, &amp;quot;password123&amp;quot;, &amp;quot;admin&amp;quot;, or &amp;quot;guest&amp;quot; with the above accounts or any other enumerated accounts. Further permutations of the above can also be attempted. If these passwords fail, it may be worth using a common username and password list and attempting multiple requests against the application. This can, of course, be scripted to save time.&lt;br /&gt;
* Application administrative users are often named after the application or organization. This means if you are testing an application named &amp;quot;Obscurity&amp;quot;, try using obscurity/obscurity or any other similar combination as the username and password.&lt;br /&gt;
* When performing a test for a customer, attempt using names of contacts you have received as usernames with any common passwords.&lt;br /&gt;
* Viewing the User Registration page may help determine the expected format and length of the application usernames and passwords. If a user registration page does not exist, determine if the organization uses a standard naming convention for user names such as their email address or the name before the &amp;quot;@&amp;quot; in the email.   &lt;br /&gt;
* Attempt using all the above usernames with blank passwords.&lt;br /&gt;
* Review the page source and javascript either through a proxy or by viewing the source. Look for any references to users and passwords in the source. For example &amp;quot;If username='admin' then starturl=/admin.asp else /index.asp&amp;quot; (for a successful login vs a failed login).  Also, if you have a valid account, then login and view every request and response for a valid login vs an invalid login, such as additional hidden parameters, interesting GET request (login=yes), etc.&lt;br /&gt;
* Look for account names and passwords written in comments in the source code. Also look in backup directories etc for source code that may contain comments of interest.&lt;br /&gt;
* Try to extrapolate from the application how usernames are generated. For example, can a user create their own username or does the system create an account for the user based on some personal information or a predictable sequence? If the application does create its own accounts in a predictable sequence, such as user7811, try fuzzing all possible accounts recursively.  If you can identify a different response from the application when using a valid username and a wrong password, then you can try a brute force attack on the valid username (or quickly try any of the identified common passwords above or in the reference section).  &lt;br /&gt;
* If the application creates its own passwords for new users, whether or not the username is created by the application or by the user, then try to determine if the password is predictable. Try to create many new accounts in quick succession to compare and determine if the passwords are predictable.  If predictable, then try to correlate these with the usernames, or any enumerated accounts, and use them as a basis for a brute force attack.&lt;br /&gt;
&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Successful authentication to the application or system being tested.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gray Box testing and example == &lt;br /&gt;
The following steps rely on an entirely Gray Box approach. If only some of the information is available to you, refer to black box testing to fill the gaps.&lt;br /&gt;
&lt;br /&gt;
* Talk to the IT personnel to determine passwords they use for administrative access and how administration of the application is undertaken. &lt;br /&gt;
* Examine the password policy for the application, checking whether username and passwords are complex, difficult to guess, and not related to the application name, person name, or administrative names (&amp;quot;system&amp;quot;). &lt;br /&gt;
* Examine the user database for default names, application names, and easily guessed names as described in the Black Box testing section. Check for empty password fields.&lt;br /&gt;
* Examine the code for hard coded usernames and passwords.&lt;br /&gt;
* Check for configuration files that contain usernames and passwords.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Successful authentication to the application or system being tested.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
* CIRT http://www.cirt.net/passwords&lt;br /&gt;
* Government Security - Default Logins and Passwords for Networked Devices http://www.governmentsecurity.org/articles/DefaultLoginsandPasswordsforNetworkedDevices.php&lt;br /&gt;
* Virus.org http://www.virus.org/default-password/&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Burp Intruder: http://portswigger.net/intruder/&lt;br /&gt;
* THC Hydra: http://www.thc.org/thc-hydra/&lt;br /&gt;
* Brutus http://www.hoobie.net/brutus/&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Testing_for_Default_or_Guessable_User_Account_(OWASP-AT-003)&amp;diff=37123</id>
		<title>Testing for Default or Guessable User Account (OWASP-AT-003)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Testing_for_Default_or_Guessable_User_Account_(OWASP-AT-003)&amp;diff=37123"/>
				<updated>2008-08-24T22:40:19Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
Today's web applications typically run on popular open source or commercial software, that is installed on servers and requires configuration or customization by the server administrator. In addition, most of today's hardware appliances, i.e., network routers and database servers, offer web-based configuration or administrative interfaces.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Often, these applications are not properly configured and the default credentials provided for initial authentication and configuration are never updated.  In addition, it is typical to find generic accounts, left over from testing or administration, that use common usernames and passwords and are left enabled in the application and its infrastructure.&amp;lt;br&amp;gt;&lt;br /&gt;
These default username and password combinations are widely known by penetration testers and malicious hackers that can use them to gain access to various types of custom, open source, or commercial applications.&amp;lt;br&amp;gt;&lt;br /&gt;
In addition, weak password policy enforcements seen in many applications allow users to sign up using easy to guess usernames and passwords, and may also not allow password changes to be undertaken. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
The root cause of this problem can be identified as:&lt;br /&gt;
* Inexperienced IT personnel, who are unaware of the importance of changing default passwords on installed infrastructure components.&lt;br /&gt;
* Programmers, who leave backdoors to easily access and test their application and later forget to remove them.&lt;br /&gt;
* Application administrators and users that choose an easy username and password for themselves &lt;br /&gt;
* Applications with built-in, non-removable default accounts with a pre-set username and password. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
An additional problem stems from the use of blank passwords, which are simply the result of a lack of security awareness or a desire to simplify administration.&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
In Blackbox testing the tester knows nothing about the application, its underlying infrastructure, and any username or password policies. In reality this is often this is not the case and some information about the application is known. If this is the case, simply skip the steps that refer to obtaining information you already have.&lt;br /&gt;
&lt;br /&gt;
When testing a known application interface - for example a Cisco router web interface or a Weblogic administrator portal, check that the known usernames and passwords for these devices do not result in successful authentication. Common credentials for many systems can be found using a search engine or by using one of the sites listed in the Further Reading section.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
When facing applications to which we do not have a list of default and common user accounts, or when common accounts do not work, we can perform manual testing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Note that the application being tested may have an account lockout, and multiple password guess attempts with a known username may cause the account to be locked. If it is possible to lock the administrator account, it may be troublesome for the system administrator to reset it&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try the following usernames - &amp;quot;admin&amp;quot;, &amp;quot;administrator&amp;quot;, &amp;quot;root&amp;quot;, &amp;quot;system&amp;quot;, &amp;quot;guest&amp;quot;, &amp;quot;operator&amp;quot;, or &amp;quot;super&amp;quot;. These are popular among system administrators and are often used. Additionally you could try &amp;quot;qa&amp;quot;, &amp;quot;test&amp;quot;, &amp;quot;test1&amp;quot;, &amp;quot;testing&amp;quot;, &amp;quot;guest&amp;quot; and similar names. Attempt any combination of the above in both the username and the password fields. If the application is vulnerable to username enumeration, and you successfully managed to identify any of the above usernames, attempt passwords in a similar manner.  In addition try an empty password or one of the following &amp;quot;password&amp;quot;, &amp;quot;pass123&amp;quot;, &amp;quot;password123&amp;quot;, &amp;quot;admin&amp;quot;, or &amp;quot;guest&amp;quot; with the above accounts or any other enumerated accounts. Further permutations of the above can also be attempted.&lt;br /&gt;
* Application administrative users are often named after the application or organization. This means if you are testing an application named &amp;quot;Obscurity&amp;quot;, try using obscurity/obscurity or any other similar combination as the username and password.&lt;br /&gt;
* When performing a test for a customer, attempt using names of contacts you have received as usernames with any common passwords.&lt;br /&gt;
* Viewing the User Registration page may help determine the expected format and length of the application usernames and passwords. If a user registration page does not exist, determine if the organization uses a standard naming convention for user names such as their email address or the name before the &amp;quot;@&amp;quot; in the email.   &lt;br /&gt;
* Attempt using all the above usernames with blank passwords.&lt;br /&gt;
* Review the page source and javascript either through a proxy or by viewing the source. Look for any page references (such as &amp;quot;If admin then starturl=/admin else /index.asp&amp;quot;) for a successful login vs a failed login.  Also, if you have a valid account, then login and view every request and response for a valid login vs an invalid login, such as additional hidden parameters, interesting GET request (login=yes), etc.&lt;br /&gt;
* Look for account names and passwords written in comments in the source code. Also look in backup directories etc for source code that may contain comments of interest.&lt;br /&gt;
* Try to extrapolate from the application how usernames are generated. For example, can a user create their own username or does the system create an account for the user based on some personal information or a predictable sequence? If the application does create its own accounts in a predictable sequence, such as user7811, try fuzzing all possible accounts recursively.  If you can identify a different response from the application when using a valid username and a wrong password, then you can try a brute force attack on the valid username (or quickly try any of the identified common passwords above or in the reference section).  &lt;br /&gt;
* If the application creates its own passwords for new users, whether or not the username is created by the application or by the user, then try to determine if the password is predictable.  Try to create many new accounts in quick succession to compare and determine if the passwords are predictable.  If predictable, then try to correlate these with the usernames, or any enumerated accounts, and use them as a basis for a brute force attack.&lt;br /&gt;
&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Successful authentication to the application or system being tested.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gray Box testing and example == &lt;br /&gt;
The following steps rely on an entirely Gray Box approach. If only some of the information is available to you, refer to black box testing to fill the gaps.&lt;br /&gt;
&lt;br /&gt;
* Talk to the IT personnel to determine passwords they use for administrative access and how administration of the application is undertaken. &lt;br /&gt;
* Examine the password policy for the application, checking whether username and passwords are complex, difficult to guess, and not related to the application name, person name, or administrative names (&amp;quot;system&amp;quot;). &lt;br /&gt;
* Examine the user database for default names, application names, and easily guessed names as described in the Black Box testing section. Check for empty password fields.&lt;br /&gt;
* Examine the code for hard coded usernames and passwords.&lt;br /&gt;
* Check for configuration files that contain usernames and passwords.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Successful authentication to the application or system being tested.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
* CIRT http://www.cirt.net/passwords&lt;br /&gt;
* Government Security - Default Logins and Passwords for Networked Devices http://www.governmentsecurity.org/articles/DefaultLoginsandPasswordsforNetworkedDevices.php&lt;br /&gt;
* Virus.org http://www.virus.org/default-password/&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Burp Intruder: http://portswigger.net/intruder/&lt;br /&gt;
* THC Hydra: http://www.thc.org/thc-hydra/&lt;br /&gt;
* Brutus http://www.hoobie.net/brutus/&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Enumerate_Infrastructure_and_Application_Admin_Interfaces_(OTG-CONFIG-005)&amp;diff=37122</id>
		<title>Enumerate Infrastructure and Application Admin Interfaces (OTG-CONFIG-005)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Enumerate_Infrastructure_and_Application_Admin_Interfaces_(OTG-CONFIG-005)&amp;diff=37122"/>
				<updated>2008-08-24T21:57:54Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Gray Box testing and example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Administrator interfaces may be present in the application or on the application server to allow certain users to undertake privileged activities on the site. Tests should be undertaken to reveal if and how this privileged functionality can be accessed by an unauthorized or standard user.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
An application may require an administrator interface to enable a privileged user to access functionality that may make changes to how the site functions. Such changes may include:&lt;br /&gt;
&lt;br /&gt;
- user account provisioning&amp;lt;br&amp;gt;&lt;br /&gt;
- Site design and layout&amp;lt;br&amp;gt;&lt;br /&gt;
- data manipultion&amp;lt;br&amp;gt;&lt;br /&gt;
- configuration changes&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In many instances, such interfaces are usually implemented with little thought of how to separate them from the normal users of the site. Testing is aimed at discovering these administrator interfaces and accessing functionality intended for the privileged users. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
The following describes vectors that may be used to test for the presence of administrative interfaces. These techniques may also be used for testing for related issues including privilege escalation and are described elsewhere in this guide in greater detail:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Directory and file Enumeration - An administrative interface may be present but not visibly available to the tester. Attempting to guess the path of the administrative interface may be as simple as requesting: &lt;br /&gt;
/admin or /administrator etc..&amp;lt;br&amp;gt;&lt;br /&gt;
A tester may have to also identify the filename of the administration page. Forcible browsing to the identified page may provide access to the interface.&lt;br /&gt;
&lt;br /&gt;
* Comments and links in Source - Many sites use common code that is loaded for all site users. By examining all source sent to the client, links to administrator functionality may be discovered and should be investigated. &lt;br /&gt;
&lt;br /&gt;
* Reviewing Server and Application Documentation - If the application server or application is deployed in its default configuration it may be possible to access the administration interface using information described in configuration or help documentation. Default password lists should be consulted if an administrative interface is found and credentials are required.&lt;br /&gt;
&lt;br /&gt;
* Alternative Server Port - Administration interfaces may be seen on a different port on the host than the main application. For example, Apache Tomcat's Administration interface can often be seen on port 8080.&lt;br /&gt;
&lt;br /&gt;
* Parameter Tampering - A GET or POST parameter or a cookie variable may be required to enable the administrator functionality. Clues to this&lt;br /&gt;
include the presence of hidden fields such as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;admin&amp;quot; value=&amp;quot;no&amp;quot;&amp;gt; or in a cookie:   Cookie: session_cookie; useradmin=0&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Once an administrative interface has been discovered, a combination of the above techniques may be used to attempt to bypass authentication. If this fails, the&lt;br /&gt;
tester may wish to attempt a brute force attack. In such an instance the tester should be aware of the potential for administrative account lockout if such functionality is present.&lt;br /&gt;
&lt;br /&gt;
== Gray Box testing and example == &lt;br /&gt;
An more detailed examination of the server and application components should be undertaken to ensure hardening (i.e. administrator pages are not accessible to everyone through the use of IP filtering or other controls), and where applicable, verification that all components do not use default credentials or configurations.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Source code should be reviewed to ensure that the authorization and authentication model ensures clear separation of duties between normal users and site administrators. User interface functions shared between normal and administrator users should be reviewed to ensure clear separation between the drawing of such components and information leakage from such shared functionality.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Default Password list: http://www.governmentsecurity.org/articles/DefaultLoginsandPasswordsforNetworkedDevices.php&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Identify_application_entry_points_(OTG-INFO-006)&amp;diff=37119</id>
		<title>Identify application entry points (OTG-INFO-006)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Identify_application_entry_points_(OTG-INFO-006)&amp;diff=37119"/>
				<updated>2008-08-24T21:24:31Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Brief Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Enumerating the application and its attack surface is a key precursor before any thorough testing can be undertaken, as it allows the tester to identify likely areas of weakness. This section aims to help identify and map out areas within the application that should be investigated once enumeration and mapping has been completed.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Before any testing begins, always get a good understanding of the application and how the user/browser communicates with it.  As you walk through the application, pay special attention to all HTTP requests (GET and POST Methods, also known as Verbs), as well as every parameter and form field that are passed to the application.  In addition, pay attention to when GET requests are used and when POST requests are used to pass parameters to the application.  It is very common that GET requests are used, but when sensitive information is passed, it is often done within the body of a POST request.  Note that to see the parameters sent in a POST request, you will need to use a tool such as an intercepting proxy (for example, OWASP's WebScarab) or a browser plug-in.  Within the POST request, also make special note of any hidden form fields that are being passed to the application, as these usually contain sensitive information, such as state information, quantity of items, the price of items, that the developer never intended for you to see or change.  &lt;br /&gt;
&lt;br /&gt;
In the author's experience, it has been very useful to use an intercepting proxy and a spreadsheet for this stage of the testing.  The proxy will keep track of every request and response between you and the application as you walk through it.  Additionally, at this point, testers usually trap every request and response so that they can see exactly every header, parameter, etc. that is being passed to the application and what is being returned.  This can be quite tedious at times, especially on large interactive sites (think of a banking application). However, experience will teach you what to look for, and, therefore, this phase can be significantly reduced.  As you walk through the application, take note of any interesting parameters in the URL, custom headers, or body of the requests/responses, and save them in your spreadsheet.  The spreadsheet should include the page you requested (it might be good to also add the request number from the proxy, for future reference), the interesting parameters, the type of request (POST/GET), if access is authenticated/unauthenticated, if SSL is used, if it's part of a multi-step process, and any other relevant notes.  Once you have every area of the application mapped out, then you can go through the application and test each of the areas that you have identified and make notes for what worked and what didn't work.  The rest of this guide will identify how to test each of these areas of interest, but this section must be undertaken before any of the actual testing can commence.&lt;br /&gt;
&lt;br /&gt;
Below are some points of interests for all requests and responses.  Within the requests section focus on the GET and POST methods, as these appear the majority of the requests.  Note that other methods, such as PUT and DELETE, can be used. Often, these more rare requests, if allowed, can expose vulnerabilities.  There is a special section in this guide dedicated for testing these HTTP methods.&lt;br /&gt;
&lt;br /&gt;
'''Requests:'''&lt;br /&gt;
&lt;br /&gt;
* Identify where GETs are used and where POSTs are used.&lt;br /&gt;
* Identify all parameters used in a POST request (these are in the body of the request)&lt;br /&gt;
* Within the POST request, pay special attention to any hidden parameters.  When a POST is sent all the form fields (including hidden parameters) will be sent in the body of the HTTP message to the application.  These typically aren't seen unless you are using a proxy or view the HTML source code.  In addition, the next page you see, its data, and your access can all be different depending on the value of the hidden parameter(s).&lt;br /&gt;
* Identify all parameters used in a GET request (i.e., URL), in particular the query string (usually after a ? mark).&lt;br /&gt;
* Identify all the parameters of the query string. These usually are in a pair format, such as foo=bar. Also note that many parameters can be in one query string such as separated by a &amp;amp;, ~, :, or any other special character or encoding.&lt;br /&gt;
* A special note when it comes to identifying multiple parameters in one string or within a POST request is that some or all of the parameters will be needed to execute your attacks.  You need to identify all of the parameters (even if encoded or encrypted) and identify which ones are processed by the application.  Later sections of the guide will identify how to test these parameters, at this point, just make sure you identify each one of them.&lt;br /&gt;
* Also pay attention to any additional or custom type headers not typically seen (such as debug=False)&lt;br /&gt;
&lt;br /&gt;
'''Responses:'''&lt;br /&gt;
&lt;br /&gt;
*Identify where new cookies are set (Set-Cookie header), modified, or added to.&lt;br /&gt;
*Identify where there are any redirects (300 HTTP status code), 400 status codes, in particular 403 Forbidden, and 500 internal server errors during normal responses (i.e., unmodified requests).&lt;br /&gt;
*Also note where any interesting headers are used. For example, &amp;quot;Server: BIG-IP&amp;quot; indicates that the site is load balanced. Thus, if a site is load balanced and one server is incorrectly configured, then you might have to make multiple requests to access the vulnerable server, depending on the type of load balancing used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
'''Testing for application entry points:''' &amp;lt;br&amp;gt;&lt;br /&gt;
The following are 2 examples on how to check for application entry points.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''EXAMPLE 1:'''&lt;br /&gt;
&lt;br /&gt;
This example shows a GET request that would purchase an item from an online shopping application.&lt;br /&gt;
&lt;br /&gt;
Example 1 of a simplified GET request:&lt;br /&gt;
&lt;br /&gt;
*GET https://x.x.x.x/shoppingApp/buyme.asp?CUSTOMERID=100&amp;amp;ITEM=z101a&amp;amp;PRICE=62.50&amp;amp;IP=x.x.x.x &lt;br /&gt;
*Host: x.x.x.x&lt;br /&gt;
*Cookie: SESSIONID=Z29vZCBqb2IgcGFkYXdhIG15IHVzZXJuYW1lIGlzIGZvbyBhbmQgcGFzc3dvcmQgaXMgYmFy&lt;br /&gt;
&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here you would note all the parameters of the request such as CUSTOMERID, ITEM, PRICE, IP, and the Cookie (which could just be encoded parameters or used for session state).&lt;br /&gt;
&lt;br /&gt;
'''EXAMPLE 2:'''&lt;br /&gt;
&lt;br /&gt;
This example shows a POST request that would login you into an application.&lt;br /&gt;
&lt;br /&gt;
Example 2 of a simplified POST request:&lt;br /&gt;
&lt;br /&gt;
*POST https://x.x.x.x/KevinNotSoGoodApp/authenticate.asp?service=login&lt;br /&gt;
*Host: x.x.x.x&lt;br /&gt;
*Cookie: SESSIONID=dGhpcyBpcyBhIGJhZCBhcHAgdGhhdCBzZXRzIHByZWRpY3RhYmxlIGNvb2tpZXMgYW5kIG1pbmUgaXMgMTIzNA==&lt;br /&gt;
*CustomCookie=00my00trusted00ip00is00x.x.x.x00&lt;br /&gt;
&lt;br /&gt;
Body of the POST message:&lt;br /&gt;
&lt;br /&gt;
*user=admin&amp;amp;pass=pass123&amp;amp;debug=true&amp;amp;fromtrustIP=true&lt;br /&gt;
&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example you would note all the parameters as you have before but notice that the parameters are passed in the body of the message and not in the URL.  Additionally note that there is a custom cookie that is being used.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gray Box testing and example == &lt;br /&gt;
&lt;br /&gt;
Testing for application entry points via a Gray Box methodology would consist of everything already identified above with one caveat.  This would be if there are any external sources from which the application receives data and processes it (such as SNMP traps, syslog messages, SMTP, or SOAP messages from other servers).  If there are any external sources of input into the application then a meeting with the application developers could identify any functions that would accept or expect user input and how it's formated.  For example, the developer could help in understanding how to formulate a correct SOAP request that the application would accept and where the web service resides (if the web service or any other function hasn't already been identified during the black box testing).&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RFC 2616 – Hypertext Transfer Protocol – HTTP 1.1 -&lt;br /&gt;
http://tools.ietf.org/html/rfc2616&lt;br /&gt;
&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Intercepting Proxy:'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*OWASP: Webscarab -&lt;br /&gt;
http://www.owasp.org/index.php/Category:OWASP_WebScarab_Project&lt;br /&gt;
*Dafydd Stuttard: Burp proxy -&lt;br /&gt;
http://portswigger.net/proxy/&lt;br /&gt;
*MileSCAN: Paros Proxy - &lt;br /&gt;
http://www.parosproxy.org/download.shtml&lt;br /&gt;
&lt;br /&gt;
'''Browser Plug-in:'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;TamperIE&amp;quot; for Internet Explorer - &lt;br /&gt;
http://www.bayden.com/TamperIE/&lt;br /&gt;
*Adam Judson: &amp;quot;Tamper Data&amp;quot; for Firefox -&lt;br /&gt;
https://addons.mozilla.org/en-US/firefox/addon/966&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Test_HTTP_Methods_(OTG-CONFIG-006)&amp;diff=37110</id>
		<title>Test HTTP Methods (OTG-CONFIG-006)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Test_HTTP_Methods_(OTG-CONFIG-006)&amp;diff=37110"/>
				<updated>2008-08-24T21:04:47Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Short Description of the Issue (Topic and Explanation) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
HTTP offers a number of methods that can be used to performs actions on the web server. Many of theses methods are designed to aid developers deploy and test HTTP applications. These HTTP methods can be used for nefarious purposes if the web server is misconfigured. Additionally, Cross Site Tracing (XST), a form of cross site scripting using the servers HTTP TRACE method, is examined.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Short Description of the Issue (Topic and Explanation) == &lt;br /&gt;
While GET and POST are by far the most common methods that are used to access information provided by a web server, the Hypertext Transfer Protocol (HTTP) allows several other (and somewhat less known) methods. RFC  2616 (which describes HTTP version 1.1 which is the today standard) defines the following eight methods:&lt;br /&gt;
&lt;br /&gt;
* HEAD&lt;br /&gt;
* GET&lt;br /&gt;
* POST&lt;br /&gt;
* PUT&lt;br /&gt;
* DELETE&lt;br /&gt;
* TRACE&lt;br /&gt;
* OPTIONS&lt;br /&gt;
* CONNECT&lt;br /&gt;
&lt;br /&gt;
Some of these methods can potentially pose a security risk for a web application, as they allow an attacker to modify the files stored on the web server and, in some scenarios, steal the credentials of legitimate users. More specifically, the methods that should be disabled are the following:&lt;br /&gt;
&lt;br /&gt;
* PUT: This method allows a client to upload new files on the web server. An attacker can exploit it by uploading malicious files (e.g.: an asp file that executes commands by invoking cmd.exe), or by simply using the victim server as a file repository&lt;br /&gt;
* DELETE: This method allows a client to delete a file on the web server. An attacker can exploit it as a very simple and direct way to deface a web site or to mount a DoS attack&lt;br /&gt;
* CONNECT:  This method could allow a client to use the web server as a proxy&lt;br /&gt;
* TRACE: This method simply echoes back to the client whatever string has been sent to the server, and it is used mainly for debugging purposes. This method, originally assumed harmless, can be used to mount an attack known as Cross Site Tracing, which has been discovered by Jeremiah Grossman (see links at the bottom of the page)&lt;br /&gt;
&lt;br /&gt;
If an application needs one or more of these methods, such as REST Web Services (which may require PUT or DELETE), it is important to check that their usage is properly limited to trusted users and safe conditions.&lt;br /&gt;
&lt;br /&gt;
== Arbitrary HTTP Methods ==&lt;br /&gt;
&lt;br /&gt;
Arshan Dabirsiaghi (see links) discovered that many web application frameworks allowed well chosen and / or arbitrary HTTP methods to bypass an environment level access control check:&lt;br /&gt;
&lt;br /&gt;
* Many frameworks and languages treat &amp;quot;HEAD&amp;quot; as a &amp;quot;GET&amp;quot; request, albeit one without any body in the response. If a security constraint was set on &amp;quot;GET&amp;quot; requests such that only &amp;quot;authenticatedUsers&amp;quot; could access GET requests for a particular servlet or resource, it would be bypassed for the &amp;quot;HEAD&amp;quot; version. This allowed unauthorized blind submission of any privileged GET request&lt;br /&gt;
&lt;br /&gt;
* Some frameworks allowed arbitrary HTTP methods such as &amp;quot;JEFF&amp;quot; or &amp;quot;CATS&amp;quot; to be used without limitation. These were treated as if a &amp;quot;GET&amp;quot; method was issued, and again were found not to be subject to method role based access control checks on a number of languages and frameworks, again allowing unauthorized blind submission of privileged GET requests.&lt;br /&gt;
&lt;br /&gt;
In many cases, code which explicitly checked for a &amp;quot;GET&amp;quot; or &amp;quot;POST&amp;quot; method would be safe. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
'''Discover the Supported Methods''' &amp;lt;br&amp;gt;&lt;br /&gt;
To perform this test, we need some way to figure out which HTTP methods are supported by the web server we are examining. The OPTIONS HTTP method provides us with the most direct and effective way to do that. RFC 2616 states that “The OPTIONS method represents a request for information about the  communication options available on the request/response chain identified by the Request-URI”. &lt;br /&gt;
&lt;br /&gt;
The testing method is extremely straightforward and we only need to fire up netcat (or telnet):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
icesurfer@nightblade ~ $ nc www.victim.com 80 &lt;br /&gt;
OPTIONS / HTTP/1.1&lt;br /&gt;
Host: www.victim.com&lt;br /&gt;
&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Server: Microsoft-IIS/5.0&lt;br /&gt;
Date: Tue, 31 Oct 2006 08:00:29 GMT&lt;br /&gt;
Connection: close&lt;br /&gt;
Allow: GET, HEAD, POST, TRACE, OPTIONS&lt;br /&gt;
Content-Length: 0&lt;br /&gt;
&lt;br /&gt;
icesurfer@nightblade ~ $ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
As we can see in the example, OPTIONS provides a list of the methods that are supported by the web server, and in this case we can see, for instance, that TRACE method is enabled. The danger that is posed by this method is illustrated in the following section&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Test XST Potential'''&amp;lt;br&amp;gt;&lt;br /&gt;
Note: in order to understand the logic and the goals of this attack you need to be familiar with [[Cross_site_scripting_AoC | Cross Site Scripting attacks]].&lt;br /&gt;
&lt;br /&gt;
The TRACE method, while apparently harmless, can be successfully leveraged in some scenarios to steal legitimate users' credentials. This attack technique was discovered by Jeremiah Grossman in 2003, in an attempt to bypass the [[HTTPOnly]] tag that Microsoft introduced in Internet Explorer 6 sp1 to protect cookies from being accessed by JavaScript. As a matter of fact, one of the most recurring attack patterns in Cross Site Scripting is to access the document.cookie object and send it to a web server controlled by the attacker so that he/she can hijack the victim's session. Tagging a cookie as httpOnly forbids JavaScript to access it, protecting it from being sent to a third party. However, the TRACE method can be used to bypass this protection and access the cookie even in this scenario.&lt;br /&gt;
&lt;br /&gt;
As mentioned before, TRACE simply returns any string that is sent to the web server. In order to verify its presence (or to double-check the results of the OPTIONS request shown above), we can proceed as shown in the following example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
icesurfer@nightblade ~ $ nc www.victim.com 80&lt;br /&gt;
TRACE / HTTP/1.1&lt;br /&gt;
Host: www.victim.com&lt;br /&gt;
&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Server: Microsoft-IIS/5.0&lt;br /&gt;
Date: Tue, 31 Oct 2006 08:01:48 GMT&lt;br /&gt;
Connection: close&lt;br /&gt;
Content-Type: message/http&lt;br /&gt;
Content-Length: 39&lt;br /&gt;
&lt;br /&gt;
TRACE / HTTP/1.1&lt;br /&gt;
Host: www.victim.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
As we can see, the response body is exactly a copy of our original request, meaning that our target allows this method. Now, where is the danger lurking? If we instruct a browser to issue a TRACE request to the web server, and this browser has a cookie for that domain, the cookie will be automatically included in the request headers, and will therefore echoed back in the resulting response. At that point, the cookie string will be accessible by JavaScript and it will be finally possible to send it to a third party even when the cookie is tagged as httpOnly.&lt;br /&gt;
&lt;br /&gt;
There are multiple ways to make a browser issue a TRACE request, as the XMLHTTP ActiveX control in Internet Explorer and XMLDOM in Mozilla and Netscape. However, for security reasons the browser is allowed to start a connection only to the domain where the hostile script resides. This is a mitigating factor, as the attacker needs to combine the TRACE method with another vulnerability in order to mount the attack. Basically, an attacker has two ways to successfully launch a Cross Site Tracing attack:&lt;br /&gt;
&lt;br /&gt;
* 1.Leveraging another server-side vulnerability: the attacker injects the hostile JavaScript snippet, that contains the TRACE request, in the vulnerable application, as in a normal Cross Site Scripting attack&lt;br /&gt;
* 2.Leveraging a client-side vulnerability: the attacker creates a malicious website that contains the hostile JavaScript snippet and exploits some cross-domain vulnerability of the browser of the victim, in order to make the JavaScript code successfully perform a connection to the site that supports the TRACE method and that originated the cookie that the attacker is trying to steal.&lt;br /&gt;
&lt;br /&gt;
More detailed information, together with code samples, can be found in the original whitepaper written by Jeremiah Grossman.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Black Box Testing of HTTP method tampering ==&lt;br /&gt;
&lt;br /&gt;
Testing for HTTP method tampering is essentially the same as testing for XST. &lt;br /&gt;
&lt;br /&gt;
=== Testing for arbitrary HTTP methods ===&lt;br /&gt;
&lt;br /&gt;
Find a page you'd like to visit that has a security constraint such that it would normally force a 302 redirect to a login page or forces a login directly. The test URL in this example works like this - as do many web applications. However, if you obtain a &amp;quot;200&amp;quot; response that is not a login page, it is possible to bypass authentication and thus authorization.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[rapidoffenseunit:~] vanderaj% nc www.example.com 80&lt;br /&gt;
JEFF / HTTP/1.1&lt;br /&gt;
Host: www.example.com&lt;br /&gt;
&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Date: Mon, 18 Aug 2008 22:38:40 GMT&lt;br /&gt;
Server: Apache&lt;br /&gt;
Set-Cookie: PHPSESSID=K53QW...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your framework or firewall or application does not support the &amp;quot;JEFF&amp;quot; method, it should issue an error page (or preferably a 405 Not Allowed or 501 Not implemented error page). If it services the request, it is vulnerable to this issue.&lt;br /&gt;
&lt;br /&gt;
If you feel that the system is vulnerable to this issue, issue CSRF-like attacks to exploit the issue more fully:&lt;br /&gt;
&lt;br /&gt;
* FOOBAR /admin/createUser.php?member=myAdmin&lt;br /&gt;
* JEFF /admin/changePw.php?member=myAdmin&amp;amp;passwd=foo123&amp;amp;confirm=foo123&lt;br /&gt;
* CATS /admin/groupEdit.php?group=Admins&amp;amp;member=myAdmin&amp;amp;action=add&lt;br /&gt;
&lt;br /&gt;
With some luck, using the above three commands - modified to suit the application under test and testing requirements - a new user would be created, a password assigned, and made an admin.&lt;br /&gt;
&lt;br /&gt;
=== Testing for HEAD access control bypass ===&lt;br /&gt;
&lt;br /&gt;
Find a page you'd like to visit that has a security constraint such that it would normally force a 302 redirect to a login page or forces a login directly. The test URL in this example works like this - as do many web applications. However, if you obtain a &amp;quot;200&amp;quot; response that is not a login page, it is possible to bypass authentication and thus authorization.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[rapidoffenseunit:~] vanderaj% nc www.example.com 80&lt;br /&gt;
HEAD /admin HTTP/1.1&lt;br /&gt;
Host: www.example.com&lt;br /&gt;
&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Date: Mon, 18 Aug 2008 22:44:11 GMT&lt;br /&gt;
Server: Apache&lt;br /&gt;
Set-Cookie: PHPSESSID=pKi...; path=/; HttpOnly&lt;br /&gt;
Expires: Thu, 19 Nov 1981 08:52:00 GMT&lt;br /&gt;
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0&lt;br /&gt;
Pragma: no-cache&lt;br /&gt;
Set-Cookie: adminOnlyCookie1=...; expires=Tue, 18-Aug-2009 22:44:31 GMT; domain=www.example.com&lt;br /&gt;
Set-Cookie: adminOnlyCookie2=...; expires=Mon, 18-Aug-2008 22:54:31 GMT; domain=www.example.com&lt;br /&gt;
Set-Cookie: adminOnlyCookie3=...; expires=Sun, 19-Aug-2007 22:44:30 GMT; domain=www.example.com&lt;br /&gt;
Content-Language: EN&lt;br /&gt;
Connection: close&lt;br /&gt;
Content-Type: text/html; charset=ISO-8859-1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get a &amp;quot;405 Method not allowed&amp;quot; or &amp;quot;501 Method Unimplemented&amp;quot;, the application/framework/language/system/firewall is working correctly. If a &amp;quot;200&amp;quot; response code comes back, and the response contains no body, it's likely that the application has processed the request without authentication or authorization and further testing is warranted.  &lt;br /&gt;
&lt;br /&gt;
If you feel that the system is vulnerable to this issue, issue CSRF-like attacks to exploit the issue more fully:&lt;br /&gt;
&lt;br /&gt;
* HEAD /admin/createUser.php?member=myAdmin&lt;br /&gt;
* HEAD /admin/changePw.php?member=myAdmin&amp;amp;passwd=foo123&amp;amp;confirm=foo123&lt;br /&gt;
* HEAD /admin/groupEdit.php?group=Admins&amp;amp;member=myAdmin&amp;amp;action=add&lt;br /&gt;
&lt;br /&gt;
With some luck, using the above three commands - modified to suit the application under test and testing requirements - a new user would be created, a password assigned, and made an admin, all using blind request submission.&lt;br /&gt;
&lt;br /&gt;
== Gray Box testing and example == &lt;br /&gt;
The testing in a Gray Box scenario follows the same steps of a Black Box scenario&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
* RFC 2616: “Hypertext Transfer Protocol -- HTTP/1.1” &lt;br /&gt;
* RFC 2109 and RFC 2965: “HTTP State Management Mechanism” &lt;br /&gt;
* Jeremiah Grossman: &amp;quot;Cross Site Tracing (XST)&amp;quot; - http://www.cgisecurity.com/whitehat-mirror/WH-WhitePaper_XST_ebook.pdf&amp;lt;br&amp;gt;&lt;br /&gt;
* Amit Klein: &amp;quot;XS(T) attack variants which can, in some cases, eliminate the need for TRACE&amp;quot; - http://www.securityfocus.com/archive/107/308433&lt;br /&gt;
* Arshan Dabirsiaghi: &amp;quot;Bypassing VBAAC with HTTP Verb Tampering&amp;quot; - http://www.aspectsecurity.com/documents/Bypassing_VBAAC_with_HTTP_Verb_Tampering.pdf&lt;br /&gt;
&lt;br /&gt;
'''Tools'''&lt;br /&gt;
* NetCat - http://www.vulnwatch.org/netcat&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Test_HTTP_Methods_(OTG-CONFIG-006)&amp;diff=37107</id>
		<title>Test HTTP Methods (OTG-CONFIG-006)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Test_HTTP_Methods_(OTG-CONFIG-006)&amp;diff=37107"/>
				<updated>2008-08-24T21:00:52Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Brief Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
HTTP offers a number of methods that can be used to performs actions on the web server. Many of theses methods are designed to aid developers deploy and test HTTP applications. These HTTP methods can be used for nefarious purposes if the web server is misconfigured. Additionally, Cross Site Tracing (XST), a form of cross site scripting using the servers HTTP TRACE method, is examined.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Short Description of the Issue (Topic and Explanation) == &lt;br /&gt;
While GET and POST are by far the most common methods that are used to access information provided by a web server, the Hypertext Transfer Protocol (HTTP) allows several other (and somewhat less known) methods. RFC  2616 (which describes HTTP version 1.1 which is the today standard) defines the following eight methods:&lt;br /&gt;
&lt;br /&gt;
* HEAD&lt;br /&gt;
* GET&lt;br /&gt;
* POST&lt;br /&gt;
* PUT&lt;br /&gt;
* DELETE&lt;br /&gt;
* TRACE&lt;br /&gt;
* OPTIONS&lt;br /&gt;
* CONNECT&lt;br /&gt;
&lt;br /&gt;
Some of these methods can potentially pose a security risk for a web application, as they allow an attacker to modify the files stored on the web server and, in some scenarios, steal the credentials of legitimate users. More specifically, the methods that should be disabled are the following:&lt;br /&gt;
&lt;br /&gt;
* PUT: This method allows a client to upload new files on the web server. An attacker can exploit it by uploading malicious files (e.g.: an asp file that executes commands by invoking cmd.exe), or by simply using the victim server as a file repository&lt;br /&gt;
* DELETE: This method allows a client to delete a file on the web server. An attacker can exploit it as a very simple and direct way to deface a web site or to mount a DoS attack&lt;br /&gt;
* CONNECT:  This method could allow a client to use the web server as a proxy&lt;br /&gt;
* TRACE: This method simply echoes back to the client whatever string has been sent to the server, and it is used mainly for debugging purposes. This method, apparently harmless, can be used to mount an attack known as Cross Site Tracing, which has been discovered by Jeremiah Grossman (see links at the bottom of the page)&lt;br /&gt;
&lt;br /&gt;
If an application needs one or more of these methods, such as REST Web Services requiring PUT or DELETE, it is important to check that their use is properly limited to trusted users and safe conditions.&lt;br /&gt;
&lt;br /&gt;
== Arbitrary HTTP Methods ==&lt;br /&gt;
&lt;br /&gt;
Arshan Dabirsiaghi (see links) discovered that many web application frameworks allowed well chosen and / or arbitrary HTTP methods to bypass an environment level access control check:&lt;br /&gt;
&lt;br /&gt;
* Many frameworks and languages treat &amp;quot;HEAD&amp;quot; as a &amp;quot;GET&amp;quot; request, albeit one without any body in the response. If a security constraint was set on &amp;quot;GET&amp;quot; requests such that only &amp;quot;authenticatedUsers&amp;quot; could access GET requests for a particular servlet or resource, it would be bypassed for the &amp;quot;HEAD&amp;quot; version. This allowed unauthorized blind submission of any privileged GET request&lt;br /&gt;
&lt;br /&gt;
* Some frameworks allowed arbitrary HTTP methods such as &amp;quot;JEFF&amp;quot; or &amp;quot;CATS&amp;quot; to be used without limitation. These were treated as if a &amp;quot;GET&amp;quot; method was issued, and again were found not to be subject to method role based access control checks on a number of languages and frameworks, again allowing unauthorized blind submission of privileged GET requests.&lt;br /&gt;
&lt;br /&gt;
In many cases, code which explicitly checked for a &amp;quot;GET&amp;quot; or &amp;quot;POST&amp;quot; method would be safe. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
'''Discover the Supported Methods''' &amp;lt;br&amp;gt;&lt;br /&gt;
To perform this test, we need some way to figure out which HTTP methods are supported by the web server we are examining. The OPTIONS HTTP method provides us with the most direct and effective way to do that. RFC 2616 states that “The OPTIONS method represents a request for information about the  communication options available on the request/response chain identified by the Request-URI”. &lt;br /&gt;
&lt;br /&gt;
The testing method is extremely straightforward and we only need to fire up netcat (or telnet):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
icesurfer@nightblade ~ $ nc www.victim.com 80 &lt;br /&gt;
OPTIONS / HTTP/1.1&lt;br /&gt;
Host: www.victim.com&lt;br /&gt;
&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Server: Microsoft-IIS/5.0&lt;br /&gt;
Date: Tue, 31 Oct 2006 08:00:29 GMT&lt;br /&gt;
Connection: close&lt;br /&gt;
Allow: GET, HEAD, POST, TRACE, OPTIONS&lt;br /&gt;
Content-Length: 0&lt;br /&gt;
&lt;br /&gt;
icesurfer@nightblade ~ $ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
As we can see in the example, OPTIONS provides a list of the methods that are supported by the web server, and in this case we can see, for instance, that TRACE method is enabled. The danger that is posed by this method is illustrated in the following section&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Test XST Potential'''&amp;lt;br&amp;gt;&lt;br /&gt;
Note: in order to understand the logic and the goals of this attack you need to be familiar with [[Cross_site_scripting_AoC | Cross Site Scripting attacks]].&lt;br /&gt;
&lt;br /&gt;
The TRACE method, while apparently harmless, can be successfully leveraged in some scenarios to steal legitimate users' credentials. This attack technique was discovered by Jeremiah Grossman in 2003, in an attempt to bypass the [[HTTPOnly]] tag that Microsoft introduced in Internet Explorer 6 sp1 to protect cookies from being accessed by JavaScript. As a matter of fact, one of the most recurring attack patterns in Cross Site Scripting is to access the document.cookie object and send it to a web server controlled by the attacker so that he/she can hijack the victim's session. Tagging a cookie as httpOnly forbids JavaScript to access it, protecting it from being sent to a third party. However, the TRACE method can be used to bypass this protection and access the cookie even in this scenario.&lt;br /&gt;
&lt;br /&gt;
As mentioned before, TRACE simply returns any string that is sent to the web server. In order to verify its presence (or to double-check the results of the OPTIONS request shown above), we can proceed as shown in the following example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
icesurfer@nightblade ~ $ nc www.victim.com 80&lt;br /&gt;
TRACE / HTTP/1.1&lt;br /&gt;
Host: www.victim.com&lt;br /&gt;
&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Server: Microsoft-IIS/5.0&lt;br /&gt;
Date: Tue, 31 Oct 2006 08:01:48 GMT&lt;br /&gt;
Connection: close&lt;br /&gt;
Content-Type: message/http&lt;br /&gt;
Content-Length: 39&lt;br /&gt;
&lt;br /&gt;
TRACE / HTTP/1.1&lt;br /&gt;
Host: www.victim.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
As we can see, the response body is exactly a copy of our original request, meaning that our target allows this method. Now, where is the danger lurking? If we instruct a browser to issue a TRACE request to the web server, and this browser has a cookie for that domain, the cookie will be automatically included in the request headers, and will therefore echoed back in the resulting response. At that point, the cookie string will be accessible by JavaScript and it will be finally possible to send it to a third party even when the cookie is tagged as httpOnly.&lt;br /&gt;
&lt;br /&gt;
There are multiple ways to make a browser issue a TRACE request, as the XMLHTTP ActiveX control in Internet Explorer and XMLDOM in Mozilla and Netscape. However, for security reasons the browser is allowed to start a connection only to the domain where the hostile script resides. This is a mitigating factor, as the attacker needs to combine the TRACE method with another vulnerability in order to mount the attack. Basically, an attacker has two ways to successfully launch a Cross Site Tracing attack:&lt;br /&gt;
&lt;br /&gt;
* 1.Leveraging another server-side vulnerability: the attacker injects the hostile JavaScript snippet, that contains the TRACE request, in the vulnerable application, as in a normal Cross Site Scripting attack&lt;br /&gt;
* 2.Leveraging a client-side vulnerability: the attacker creates a malicious website that contains the hostile JavaScript snippet and exploits some cross-domain vulnerability of the browser of the victim, in order to make the JavaScript code successfully perform a connection to the site that supports the TRACE method and that originated the cookie that the attacker is trying to steal.&lt;br /&gt;
&lt;br /&gt;
More detailed information, together with code samples, can be found in the original whitepaper written by Jeremiah Grossman.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Black Box Testing of HTTP method tampering ==&lt;br /&gt;
&lt;br /&gt;
Testing for HTTP method tampering is essentially the same as testing for XST. &lt;br /&gt;
&lt;br /&gt;
=== Testing for arbitrary HTTP methods ===&lt;br /&gt;
&lt;br /&gt;
Find a page you'd like to visit that has a security constraint such that it would normally force a 302 redirect to a login page or forces a login directly. The test URL in this example works like this - as do many web applications. However, if you obtain a &amp;quot;200&amp;quot; response that is not a login page, it is possible to bypass authentication and thus authorization.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[rapidoffenseunit:~] vanderaj% nc www.example.com 80&lt;br /&gt;
JEFF / HTTP/1.1&lt;br /&gt;
Host: www.example.com&lt;br /&gt;
&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Date: Mon, 18 Aug 2008 22:38:40 GMT&lt;br /&gt;
Server: Apache&lt;br /&gt;
Set-Cookie: PHPSESSID=K53QW...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your framework or firewall or application does not support the &amp;quot;JEFF&amp;quot; method, it should issue an error page (or preferably a 405 Not Allowed or 501 Not implemented error page). If it services the request, it is vulnerable to this issue.&lt;br /&gt;
&lt;br /&gt;
If you feel that the system is vulnerable to this issue, issue CSRF-like attacks to exploit the issue more fully:&lt;br /&gt;
&lt;br /&gt;
* FOOBAR /admin/createUser.php?member=myAdmin&lt;br /&gt;
* JEFF /admin/changePw.php?member=myAdmin&amp;amp;passwd=foo123&amp;amp;confirm=foo123&lt;br /&gt;
* CATS /admin/groupEdit.php?group=Admins&amp;amp;member=myAdmin&amp;amp;action=add&lt;br /&gt;
&lt;br /&gt;
With some luck, using the above three commands - modified to suit the application under test and testing requirements - a new user would be created, a password assigned, and made an admin.&lt;br /&gt;
&lt;br /&gt;
=== Testing for HEAD access control bypass ===&lt;br /&gt;
&lt;br /&gt;
Find a page you'd like to visit that has a security constraint such that it would normally force a 302 redirect to a login page or forces a login directly. The test URL in this example works like this - as do many web applications. However, if you obtain a &amp;quot;200&amp;quot; response that is not a login page, it is possible to bypass authentication and thus authorization.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[rapidoffenseunit:~] vanderaj% nc www.example.com 80&lt;br /&gt;
HEAD /admin HTTP/1.1&lt;br /&gt;
Host: www.example.com&lt;br /&gt;
&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Date: Mon, 18 Aug 2008 22:44:11 GMT&lt;br /&gt;
Server: Apache&lt;br /&gt;
Set-Cookie: PHPSESSID=pKi...; path=/; HttpOnly&lt;br /&gt;
Expires: Thu, 19 Nov 1981 08:52:00 GMT&lt;br /&gt;
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0&lt;br /&gt;
Pragma: no-cache&lt;br /&gt;
Set-Cookie: adminOnlyCookie1=...; expires=Tue, 18-Aug-2009 22:44:31 GMT; domain=www.example.com&lt;br /&gt;
Set-Cookie: adminOnlyCookie2=...; expires=Mon, 18-Aug-2008 22:54:31 GMT; domain=www.example.com&lt;br /&gt;
Set-Cookie: adminOnlyCookie3=...; expires=Sun, 19-Aug-2007 22:44:30 GMT; domain=www.example.com&lt;br /&gt;
Content-Language: EN&lt;br /&gt;
Connection: close&lt;br /&gt;
Content-Type: text/html; charset=ISO-8859-1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you get a &amp;quot;405 Method not allowed&amp;quot; or &amp;quot;501 Method Unimplemented&amp;quot;, the application/framework/language/system/firewall is working correctly. If a &amp;quot;200&amp;quot; response code comes back, and the response contains no body, it's likely that the application has processed the request without authentication or authorization and further testing is warranted.  &lt;br /&gt;
&lt;br /&gt;
If you feel that the system is vulnerable to this issue, issue CSRF-like attacks to exploit the issue more fully:&lt;br /&gt;
&lt;br /&gt;
* HEAD /admin/createUser.php?member=myAdmin&lt;br /&gt;
* HEAD /admin/changePw.php?member=myAdmin&amp;amp;passwd=foo123&amp;amp;confirm=foo123&lt;br /&gt;
* HEAD /admin/groupEdit.php?group=Admins&amp;amp;member=myAdmin&amp;amp;action=add&lt;br /&gt;
&lt;br /&gt;
With some luck, using the above three commands - modified to suit the application under test and testing requirements - a new user would be created, a password assigned, and made an admin, all using blind request submission.&lt;br /&gt;
&lt;br /&gt;
== Gray Box testing and example == &lt;br /&gt;
The testing in a Gray Box scenario follows the same steps of a Black Box scenario&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
* RFC 2616: “Hypertext Transfer Protocol -- HTTP/1.1” &lt;br /&gt;
* RFC 2109 and RFC 2965: “HTTP State Management Mechanism” &lt;br /&gt;
* Jeremiah Grossman: &amp;quot;Cross Site Tracing (XST)&amp;quot; - http://www.cgisecurity.com/whitehat-mirror/WH-WhitePaper_XST_ebook.pdf&amp;lt;br&amp;gt;&lt;br /&gt;
* Amit Klein: &amp;quot;XS(T) attack variants which can, in some cases, eliminate the need for TRACE&amp;quot; - http://www.securityfocus.com/archive/107/308433&lt;br /&gt;
* Arshan Dabirsiaghi: &amp;quot;Bypassing VBAAC with HTTP Verb Tampering&amp;quot; - http://www.aspectsecurity.com/documents/Bypassing_VBAAC_with_HTTP_Verb_Tampering.pdf&lt;br /&gt;
&lt;br /&gt;
'''Tools'''&lt;br /&gt;
* NetCat - http://www.vulnwatch.org/netcat&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Testing_Guide_v3_Table_of_Contents&amp;diff=37076</id>
		<title>OWASP Testing Guide v3 Table of Contents</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Testing_Guide_v3_Table_of_Contents&amp;diff=37076"/>
				<updated>2008-08-24T05:13:14Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* 4. (M.Meucci) Web Application Penetration Testing  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
This is the draft of table of content of the New Testing Guide.&lt;br /&gt;
You can download the stable version [http://www.owasp.org/index.php/Image:OWASP_Testing_Guide_v2_pdf.zip here] &lt;br /&gt;
&lt;br /&gt;
Back to the OWASP Testing Guide Project:&lt;br /&gt;
http://www.owasp.org/index.php/OWASP_Testing_Project&lt;br /&gt;
&lt;br /&gt;
 Testing Guide v3 (draft)&lt;br /&gt;
 Updated: 23rd August 2008&lt;br /&gt;
 (new)--&amp;gt; new articles, (toimp)--&amp;gt; needs to improve or to review, (xxx%) --&amp;gt; current state of the article&lt;br /&gt;
&lt;br /&gt;
'''T A B L E    o f    C O N T E N T S'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==[[Testing Guide Foreword|(toimp)Foreword by OWASP Chair]]==&lt;br /&gt;
&lt;br /&gt;
==[[Testing Guide Frontispiece |(toimp: M.Meucci)1. Frontispiece]]==&lt;br /&gt;
&lt;br /&gt;
'''[[Testing Guide Frontispiece|(toimp: M.Meucci)1.1 About the OWASP Testing Guide Project]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[About The Open Web Application Security Project|1.2 About The Open Web Application Security Project]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[Testing Guide Introduction|2. Introduction]]==&lt;br /&gt;
&lt;br /&gt;
'''2.1 The OWASP Testing Project'''&lt;br /&gt;
&lt;br /&gt;
'''2.2 Principles of Testing'''&lt;br /&gt;
&lt;br /&gt;
'''2.3 Testing Techniques Explained''' &lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 90%) 2.4 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Security_Requirements_Test_Derivation Security requirements test derivation],[https://www.owasp.org/index.php/Testing_Guide_Introduction#Functional_and_Non_Functional_Test_Requirements functional and non functional test requirements], and [https://www.owasp.org/index.php/Testing_Guide_Introduction#Test_Cases_Through_Use_and_Misuse_Cases test cases through use and misuse cases]&lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 100%) 2.4.1 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Security_Tests_Integrated_in_Developers_and_Testers_Workflow Security tests integrated in developers and testers workflows]&lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 100%) 2.4.2 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Developers.27_Security_Tests Developers' security tests: unit tests and component level tests]&lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 90%) 2.4.3 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Functional_Testers.27_Security_Tests Functional testers' security tests: integrated system tests, tests in UAT, and production environment]&lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 100%) 2.5 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Security_Test_Data_Analysis_and_Reporting Security test data analysis and reporting: root cause identification and business/role case test data reporting]&lt;br /&gt;
&lt;br /&gt;
==[[The OWASP Testing Framework|3. The OWASP Testing Framework]]==&lt;br /&gt;
&lt;br /&gt;
'''3.1. Overview'''&lt;br /&gt;
&lt;br /&gt;
'''3.2. Phase 1: Before Development Begins '''&lt;br /&gt;
&lt;br /&gt;
'''3.3. Phase 2: During Definition and Design'''&lt;br /&gt;
&lt;br /&gt;
'''3.4. Phase 3: During Development'''&lt;br /&gt;
&lt;br /&gt;
'''3.5. Phase 4: During Deployment'''&lt;br /&gt;
&lt;br /&gt;
'''3.6. Phase 5: Maintenance and Operations'''&lt;br /&gt;
&lt;br /&gt;
'''3.7. A Typical SDLC Testing Workflow '''&lt;br /&gt;
&lt;br /&gt;
==[[Web Application Penetration Testing |4. (M.Meucci) Web Application Penetration Testing ]]==&lt;br /&gt;
&lt;br /&gt;
[[Testing: Introduction and objectives|'''4.1 Introduction and Objectives''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing Checklist| (new: M.Meucci - 100% ) 4.1.1 Testing Checklist]]&lt;br /&gt;
&lt;br /&gt;
[[Testing: Information Gathering|'''4.2 Information Gathering''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing: Spiders Robots and Crawlers|(new:C.Heinrich - 0%)4.2.1 Spiders, Robots and Crawlers]]&lt;br /&gt;
&lt;br /&gt;
[[Testing: Search engine discovery|(new:C.Heinrich - 0%)4.2.2 Search Engine Discovery/Reconnaissance]]&lt;br /&gt;
&lt;br /&gt;
[[Testing: Identify application entry points| (new: K.Horvath - 100%) 4.2.3 Identify application entry points]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Web Application Fingerprint|4.2.4 Testing for Web Application Fingerprint]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Application Discovery|4.2.5 Application Discovery]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Error Code|4.2.6 Analysis of Error Codes]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for configuration management|''' (new) 4.3 Configuration Management Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SSL-TLS| 4.3.1 SSL/TLS Testing (SSL Version, Algorithms, Key length, Digital Cert. Validity]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Testing for DB Listener|4.3.2 DB Listener Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for infrastructure configuration management| (new) 4.3.3 Infrastructure Configuration Management Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for application configuration management|4.3.4 Application Configuration Management Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for file extensions handling|4.3.5 Testing for File Extensions Handling]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for old_file|4.3.6 Old, Backup and Unreferenced Files]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Admin Interfaces|(Adam - 100%) 4.3.7 Infrastructure and Application Admin Interfaces]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for HTTP Methods and XST| (imp: A. van der Stock - 100%)4.3.8 Testing for HTTP Methods and XST]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for business logic|'''(K.Horvath - 100%) 4.4 Business Logic Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for authentication|'''(M.Meucci - 100%) 4.5 Authentication Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for credentials transport|(new: G.Ingrosso - 100%) 4.5.1 Credentials transport over an encrypted channel]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for user enumeration|(new: M.Meucci, M.Mella - 90%) 4.5.2 Testing for user enumeration]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Default or Guessable User Account|(to imp: K.Horvath - 100%) 4.5.3 Testing for Guessable (Dictionary) User Account]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Brute Force|4.5.4 Brute Force Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Bypassing Authentication Schema|4.5.5 Testing for bypassing authentication schema]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Vulnerable Remember Password and Pwd Reset|4.5.6 Testing for vulnerable remember &lt;br /&gt;
password and pwd reset]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Logout and Browser Cache Management|4.5.7 Testing for Logout and Browser Cache Management Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Captcha|(new: P.Luptak - 100% ) 4.5.8 Testing for CAPTCHA]]&lt;br /&gt;
&lt;br /&gt;
[[Testing Multiple Factors Authentication| (new: G.Fedon) 4.5.9 Testing Multiple Factors Authentication]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Race Conditions| (new: Adam - 100%) 4.5.10 Testing for Race Conditions]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Authorization|'''(new: M.Meucci - 100%) 4.6 Authorization testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Path Traversal|(new) 4.6.1 Testing for path traversal]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Bypassing Authorization Schema|(new: M.Meucci - 100%)4.6.2 Testing for bypassing authorization schema]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Privilege escalation|(new: Cecil Su, M.Meucci - 100%)4.6.3 Testing for Privilege Escalation]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Session Management|'''4.7 Session Management Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Session_Management_Schema|(new: M.Meucci - 100%) 4.7.1 Testing for Session Management Schema]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for cookies attributes| (new: K.Horvath - 100%) 4.7.2 Testing for Cookies attributes]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Session Fixation| (new: M.Meucci - 100%) 4.7.3 Testing for Session Fixation]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Exposed Session Variables|4.7.4 Testing for Exposed Session Variables ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for CSRF|4.7.5 Testing for CSRF]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for HTTP Exploit|4.7.6 Testing for HTTP Exploit ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Data Validation|'''4.8 Data Validation Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Reflected Cross site scripting|(new: A. Coronel -100%)4.8.1 Testing for Reflected Cross Site Scripting]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Stored Cross site scripting|(new: R. Suggi Liverani - 100%)4.8.2 Testing for Stored Cross Site Scripting]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for DOM-based Cross site scripting|(new: A.Agarwwal, Kuza55 - 80%) 4.8.3 Testing for DOM based Cross Site Scripting]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Cross site flashing|(new: A.Agarwwal, S.Di Paola - 0%)4.8.4 Testing for Cross Site Flashing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SQL Injection| 4.8.5 Testing for SQL Injection ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Oracle|4.8.5.1 Oracle Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for MySQL|4.8.5.2 MySQL Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SQL Server|4.8.5.3 SQL Server Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for MS Access|(new:A.Parata - 90%) 4.8.5.4 MS Access Testing]]&lt;br /&gt;
&lt;br /&gt;
[[OWASP_Backend_Security_Project_Testing_PostgreSQL|4.8.5.5 (new: D.Bellucci 100% from OWASP BSP) Testing PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for LDAP Injection|4.8.6 Testing for LDAP Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for ORM Injection|4.8.7 Testing for ORM Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for XML Injection|4.8.8 Testing for XML Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SSI Injection|4.8.9 Testing for SSI Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for XPath Injection|4.8.10 Testing for XPath Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for IMAP/SMTP Injection|4.8.11 IMAP/SMTP Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Code Injection|4.8.12 Testing for Code Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Command Injection|4.8.13 Testing for Command Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Buffer Overflow|4.8.14 Testing for Buffer overflow]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Heap Overflow|4.8.14.1 Testing for Heap overflow]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Stack Overflow|4.8.14.2 Testing for Stack overflow]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Format String|4.8.14.3 Testing for Format string]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Incubated Vulnerability|4.8.15 Testing for incubated vulnerabilities]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Denial of Service|'''4.9 Testing for Denial of Service''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SQL Wildcard Attacks|(new: F.Mavituna - 100%) 4.9.1 Testing for SQL Wildcard Attacks]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for DoS Locking Customer Accounts|4.9.2 Testing for DoS Locking Customer Accounts]]	&lt;br /&gt;
&lt;br /&gt;
[[Testing for DoS Buffer Overflows|4.9.3 Testing for DoS Buffer Overflows]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for DoS User Specified Object Allocation|4.9.4 Testing for DoS User Specified Object Allocation]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for User Input as a Loop Counter|4.9.5 Testing for User Input as a Loop Counter]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Writing User Provided Data to Disk|4.9.6 Testing for Writing User Provided Data to Disk]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for DoS Failure to Release Resources|4.9.7 Testing for DoS Failure to Release Resources]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Storing too Much Data in Session|4.9.8 Testing for Storing too Much Data in Session]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Web Services|(toimp: M.Meucci -100%) '''4.10 Web Services Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing: WS Information Gathering|(new: M.Meucci -100%) 4.10.1 WS Information Gathering]]&lt;br /&gt;
&lt;br /&gt;
[[Testing WSDL|(new: M.Meucci -100%) 4.10.2 Testing WSDL]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for XML Structural|(toimp: M.Meucci -100%)4.10.3 XML Structural Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for XML Content-Level|4.10.4 XML Content-level Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for WS HTTP GET parameters/REST attacks|4.10.5 HTTP GET parameters/REST Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Naughty SOAP Attachments|4.10.6 Naughty SOAP attachments ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for WS Replay|4.10.7 Replay Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing_for_AJAX:_introduction|'''4.11 AJAX Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for AJAX Vulnerabilities|4.11.1 AJAX Vulnerabilities]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for AJAX|4.11.2 How to test AJAX]]&lt;br /&gt;
&lt;br /&gt;
==[[Writing Reports: value the real risk |(toimp: Mat)5. Writing Reports: value the real risk ]]==&lt;br /&gt;
&lt;br /&gt;
[[How to value the real risk |5.1 How to value the real risk]]&lt;br /&gt;
&lt;br /&gt;
[[How to write the report of the testing |5.2 How to write the report of the testing]]&lt;br /&gt;
&lt;br /&gt;
==[[Appendix A: Testing Tools |Appendix A: Testing Tools ]]==&lt;br /&gt;
&lt;br /&gt;
* Black Box Testing Tools&lt;br /&gt;
* Source Code Analyzers&lt;br /&gt;
* Other Tools&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[OWASP Testing Guide Appendix B: Suggested Reading | Appendix B: Suggested Reading]]==&lt;br /&gt;
* Whitepapers&lt;br /&gt;
* Books&lt;br /&gt;
* Useful Websites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[OWASP Testing Guide Appendix C: Fuzz Vectors | Appendix C: Fuzz Vectors]]==&lt;br /&gt;
&lt;br /&gt;
* Fuzz Categories&lt;br /&gt;
** Recursive fuzzing&lt;br /&gt;
** Replasive fuzzing&lt;br /&gt;
* Cross Site Scripting (XSS)&lt;br /&gt;
* Buffer Overflows and Format String Errors&lt;br /&gt;
** Buffer Overflows (BFO)&lt;br /&gt;
** Format String Errors (FSE)&lt;br /&gt;
** Integer Overflows (INT)&lt;br /&gt;
* SQL Injection&lt;br /&gt;
** Passive SQL Injection (SQP)&lt;br /&gt;
** Active SQL Injection (SQI)&lt;br /&gt;
* LDAP Injection&lt;br /&gt;
* XPATH Injection&lt;br /&gt;
&lt;br /&gt;
==[[OWASP Testing Guide Appendix D: Encoded Injection | (new: Harish S.)Appendix D: Encoded Injection]]==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Testing Project]]&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Testing_for_Race_Conditions_(OWASP-AT-010)&amp;diff=37075</id>
		<title>Testing for Race Conditions (OWASP-AT-010)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Testing_for_Race_Conditions_(OWASP-AT-010)&amp;diff=37075"/>
				<updated>2008-08-24T05:10:27Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Description of the Issue */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
A race condition is a flaw that produces an unexpected result when timing of actions impact other actions. An example may be seen on a multithreaded application where actions are being performed on the same data. Race conditions, by their very nature, are difficult to test for.&lt;br /&gt;
&lt;br /&gt;
==Description of the Issue==&lt;br /&gt;
Race conditions may occur when a process is critically or unexpectedly dependent on the sequence or timings of other events. &lt;br /&gt;
In a web application environment, where multiple requests can be processed at a given time, developers may leave concurrency to be handled&lt;br /&gt;
by the framework, server or programming language.&lt;br /&gt;
The following simplified example illustrates a potential concurrency problem in a transactional web application and relates to a joint savings account in which both users (threads) are logged into the same account and attempting a transfer.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Account A has 100 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 100 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Both User 1 and User 2 want to transfer 10 credits from Account A to Account B. If the transaction was correct the outcome should be:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Account A has 80 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 120 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
However, due to concurrency issues, the following result could be obtained:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
User 1 checks the value of Account A (=100 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 2 checks the value of Account A (=100 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 2 takes 10 credits from Account A (=90 credits) and put it in Account B (=110 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 1 takes 10 credits from Account A (Still believed to contain 100 credits) (=90 credits) and puts it into Account B (=120 credits).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Result:&lt;br /&gt;
Account A has 90 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 120 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another example can be seen in OWASP's WebGoat project under the Thread Safety lesson and shows how a shopping cart can be manipulated to purchase items for less than their advertised price. This, as with the example above, is due to the data changing between the time of check and its time of use.&lt;br /&gt;
&lt;br /&gt;
==Black Box testing and example==&lt;br /&gt;
Testing for race conditions is problematic due to their nature, and external influences on testing including server load, network latency etc will all play a part in the presence and detection of the condition.&amp;lt;br&amp;gt;&lt;br /&gt;
Attempts to force a race condition may include the ability to make multiple simultaneous requests while observing the outcome for unexpected behavior.&lt;br /&gt;
&lt;br /&gt;
==Gray Box testing and example==&lt;br /&gt;
&lt;br /&gt;
Code review may reveal likely areas of concern for concurrency issues. More information on reviewing code for concurrency issues can be seen at:&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.owasp.org/index.php/Reviewing_Code_for_Race_Conditions&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
iSec Partners - Concurrency attacks in Web Applications http://isecpartners.com/files/iSEC%20Partners%20-%20Concurrency%20Attacks%20in%20Web%20Applications.pdf&amp;lt;br&amp;gt;&lt;br /&gt;
B. Sullivan and B. Hoffman - Premature Ajax-ulation and You https://www.blackhat.com/presentations/bh-usa-07/Sullivan_and_Hoffman/Whitepaper/bh-usa-07-sullivan_and_hoffman-WP.pdf&amp;lt;br&amp;gt;&lt;br /&gt;
Thread Safety Challenge in WebGoat - http://www.owasp.org/index.php/OWASP_WebGoat_Project&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Testing_for_Race_Conditions_(OWASP-AT-010)&amp;diff=37074</id>
		<title>Testing for Race Conditions (OWASP-AT-010)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Testing_for_Race_Conditions_(OWASP-AT-010)&amp;diff=37074"/>
				<updated>2008-08-24T05:06:48Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
A race condition is a flaw that produces an unexpected result when timing of actions impact other actions. An example may be seen on a multithreaded application where actions are being performed on the same data. Race conditions, by their very nature, are difficult to test for.&lt;br /&gt;
&lt;br /&gt;
==Description of the Issue==&lt;br /&gt;
Race conditions may occur when a process is critically or unexpectedly dependent on the sequence or timings of other events. &lt;br /&gt;
In a web application environment, where multiple requests can be processed at a given time, developers may leave concurrency to be handled&lt;br /&gt;
by the framework, server or programming language.&lt;br /&gt;
The following simplified example illustrates a potential concurrency problem in a transactional web application and relates to a joint savings account in which both users (threads) are logged into the same account and attempting a transfer.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Account A has 100 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 100 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Both User 1 and User 2 want to transfer 10 credits from Account A to Account B. If the transaction was correct the outcome should be:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Account A has 80 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 120 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
However, due to concurrency issues, the following result could be obtained:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
User 1 checks the value of Account A (=100 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 2 checks the value of Account A (=100 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 2 takes 10 credits from Account A (=90 credits) and put it in Account B (=110 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 1 takes 10 credits from Account A (Still believed to contain 100 credits) (=90 credits) and puts it into Account B (=120 credits).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Result:&lt;br /&gt;
Account A has 90 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 120 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Black Box testing and example==&lt;br /&gt;
Testing for race conditions is problematic due to their nature, and external influences on testing including server load, network latency etc will all play a part in the presence and detection of the condition.&amp;lt;br&amp;gt;&lt;br /&gt;
Attempts to force a race condition may include the ability to make multiple simultaneous requests while observing the outcome for unexpected behavior.&lt;br /&gt;
&lt;br /&gt;
==Gray Box testing and example==&lt;br /&gt;
&lt;br /&gt;
Code review may reveal likely areas of concern for concurrency issues. More information on reviewing code for concurrency issues can be seen at:&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.owasp.org/index.php/Reviewing_Code_for_Race_Conditions&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
iSec Partners - Concurrency attacks in Web Applications http://isecpartners.com/files/iSEC%20Partners%20-%20Concurrency%20Attacks%20in%20Web%20Applications.pdf&amp;lt;br&amp;gt;&lt;br /&gt;
B. Sullivan and B. Hoffman - Premature Ajax-ulation and You https://www.blackhat.com/presentations/bh-usa-07/Sullivan_and_Hoffman/Whitepaper/bh-usa-07-sullivan_and_hoffman-WP.pdf&amp;lt;br&amp;gt;&lt;br /&gt;
Thread Safety Challenge in WebGoat - http://www.owasp.org/index.php/OWASP_WebGoat_Project&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Enumerate_Infrastructure_and_Application_Admin_Interfaces_(OTG-CONFIG-005)&amp;diff=37073</id>
		<title>Enumerate Infrastructure and Application Admin Interfaces (OTG-CONFIG-005)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Enumerate_Infrastructure_and_Application_Admin_Interfaces_(OTG-CONFIG-005)&amp;diff=37073"/>
				<updated>2008-08-24T04:55:52Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Black Box testing and example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Administrator interfaces may be present in the application or on the application server to allow certain users to undertake privileged activities on the site. Tests should be undertaken to reveal if and how this privileged functionality can be accessed by an unauthorized or standard user.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
An application may require an administrator interface to enable a privileged user to access functionality that may make changes to how the site functions. Such changes may include:&lt;br /&gt;
&lt;br /&gt;
- user account provisioning&amp;lt;br&amp;gt;&lt;br /&gt;
- Site design and layout&amp;lt;br&amp;gt;&lt;br /&gt;
- data manipultion&amp;lt;br&amp;gt;&lt;br /&gt;
- configuration changes&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In many instances, such interfaces are usually implemented with little thought of how to separate them from the normal users of the site. Testing is aimed at discovering these administrator interfaces and accessing functionality intended for the privileged users. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
The following describes vectors that may be used to test for the presence of administrative interfaces. These techniques may also be used for testing for related issues including privilege escalation and are described elsewhere in this guide in greater detail:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Directory and file Enumeration - An administrative interface may be present but not visibly available to the tester. Attempting to guess the path of the administrative interface may be as simple as requesting: &lt;br /&gt;
/admin or /administrator etc..&amp;lt;br&amp;gt;&lt;br /&gt;
A tester may have to also identify the filename of the administration page. Forcible browsing to the identified page may provide access to the interface.&lt;br /&gt;
&lt;br /&gt;
* Comments and links in Source - Many sites use common code that is loaded for all site users. By examining all source sent to the client, links to administrator functionality may be discovered and should be investigated. &lt;br /&gt;
&lt;br /&gt;
* Reviewing Server and Application Documentation - If the application server or application is deployed in its default configuration it may be possible to access the administration interface using information described in configuration or help documentation. Default password lists should be consulted if an administrative interface is found and credentials are required.&lt;br /&gt;
&lt;br /&gt;
* Alternative Server Port - Administration interfaces may be seen on a different port on the host than the main application. For example, Apache Tomcat's Administration interface can often be seen on port 8080.&lt;br /&gt;
&lt;br /&gt;
* Parameter Tampering - A GET or POST parameter or a cookie variable may be required to enable the administrator functionality. Clues to this&lt;br /&gt;
include the presence of hidden fields such as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;admin&amp;quot; value=&amp;quot;no&amp;quot;&amp;gt; or in a cookie:   Cookie: session_cookie; useradmin=0&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Once an administrative interface has been discovered, a combination of the above techniques may be used to attempt to bypass authentication. If this fails, the&lt;br /&gt;
tester may wish to attempt a brute force attack. In such an instance the tester should be aware of the potential for administrative account lockout if such functionality is present.&lt;br /&gt;
&lt;br /&gt;
== Gray Box testing and example == &lt;br /&gt;
An examination of the server and application components should be undertaken to ensure hardening (i.e. administrator pages are not accessible to everyone through the use of IP filtering or other controls), and where applicable, verification that all components do not use default credentials or configurations.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Source code should be reviewed to ensure that the authorization and authentication model ensures clear separation of duties between normal users and site administrators. User interface functions shared between normal and administrator users should be reviewed to ensure clear separation between the drawing of such components and information leakage from such shared functionality.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Default Password list: http://www.governmentsecurity.org/articles/DefaultLoginsandPasswordsforNetworkedDevices.php&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Enumerate_Infrastructure_and_Application_Admin_Interfaces_(OTG-CONFIG-005)&amp;diff=37072</id>
		<title>Enumerate Infrastructure and Application Admin Interfaces (OTG-CONFIG-005)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Enumerate_Infrastructure_and_Application_Admin_Interfaces_(OTG-CONFIG-005)&amp;diff=37072"/>
				<updated>2008-08-24T04:55:02Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Gray Box testing and example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Administrator interfaces may be present in the application or on the application server to allow certain users to undertake privileged activities on the site. Tests should be undertaken to reveal if and how this privileged functionality can be accessed by an unauthorized or standard user.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
An application may require an administrator interface to enable a privileged user to access functionality that may make changes to how the site functions. Such changes may include:&lt;br /&gt;
&lt;br /&gt;
- user account provisioning&amp;lt;br&amp;gt;&lt;br /&gt;
- Site design and layout&amp;lt;br&amp;gt;&lt;br /&gt;
- data manipultion&amp;lt;br&amp;gt;&lt;br /&gt;
- configuration changes&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In many instances, such interfaces are usually implemented with little thought of how to separate them from the normal users of the site. Testing is aimed at discovering these administrator interfaces and accessing functionality intended for the privileged users. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
The following describes vectors that may be used to test for the presence of administrative interfaces. These techniques may also be used for testing for related issues including privilege escalation and are described elsewhere in this guide in greater detail:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Directory and file Enumeration - An administrative interface may be present but not visibly available to the tester. Attempting to guess the path of the administrative interface may be as simple as requesting: &lt;br /&gt;
/admin or /administrator etc..&amp;lt;br&amp;gt;&lt;br /&gt;
A tester may have to also identify the filename of the administration page. Forcible browsing to the identified page may provide access to the interface.&lt;br /&gt;
&lt;br /&gt;
* Comments and links in Source - Many sites use common code that is loaded for all site users. By examining all source sent to the client, links to administrator functionality may be discovered and should be investigated. &lt;br /&gt;
&lt;br /&gt;
* Reviewing Server and Application Documentation - If the application server or application is deployed in its default configuration it may be possible&lt;br /&gt;
to access the administration interface using information described in configuration or help documentation. Default password lists should be consulted if an administrative interface is found and credentials are required.&lt;br /&gt;
&lt;br /&gt;
* Alternative Server Port - Administration interfaces may be seen on a different port on the host than the main application. For example, Apache Tomcat's Administration interface can often be seen on port 8080.&lt;br /&gt;
&lt;br /&gt;
* Parameter Tampering - A GET or POST parameter or a cookie variable may be required to enable the administrator functionality. Clues to this&lt;br /&gt;
include the presence of hidden fields such as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;admin&amp;quot; value=&amp;quot;no&amp;quot;&amp;gt; or in a cookie:   Cookie: session_cookie; useradmin=0&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Once an administrative interface has been discovered, a combination of the above techniques may be used to attempt to bypass authentication. If this fails, the&lt;br /&gt;
tester may wish to attempt a brute force attack. In such an instance the tester should be aware of the potential for administrative account lockout if such functionality is present.&lt;br /&gt;
&lt;br /&gt;
== Gray Box testing and example == &lt;br /&gt;
An examination of the server and application components should be undertaken to ensure hardening (i.e. administrator pages are not accessible to everyone through the use of IP filtering or other controls), and where applicable, verification that all components do not use default credentials or configurations.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Source code should be reviewed to ensure that the authorization and authentication model ensures clear separation of duties between normal users and site administrators. User interface functions shared between normal and administrator users should be reviewed to ensure clear separation between the drawing of such components and information leakage from such shared functionality.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Default Password list: http://www.governmentsecurity.org/articles/DefaultLoginsandPasswordsforNetworkedDevices.php&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Testing_Project_v3_Roadmap&amp;diff=37050</id>
		<title>OWASP Testing Project v3 Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Testing_Project_v3_Roadmap&amp;diff=37050"/>
				<updated>2008-08-23T19:45:55Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''OWASP Testing Guide v3 Roadmap'''&lt;br /&gt;
&lt;br /&gt;
* '''26th April 2008: start the new project'''&lt;br /&gt;
OWASP Leaders brainstorming.&lt;br /&gt;
&amp;lt;br&amp;gt;Call for participation.&lt;br /&gt;
&amp;lt;br&amp;gt;[http://www.owasp.org/index.php/OWASP_Testing_Guide_v3_Startup Index brainstorming]&lt;br /&gt;
&amp;lt;br&amp;gt;[http://www.owasp.org/index.php/OWASP_Testing_Guide_v3_Table_of_Contents Index draft]&lt;br /&gt;
&amp;lt;br&amp;gt;Discuss th article content.&lt;br /&gt;
&amp;lt;br&amp;gt;Deadline: Sun 18th May 2008.&lt;br /&gt;
&lt;br /&gt;
* '''20th May 2008'''&lt;br /&gt;
New draft Index&lt;br /&gt;
&lt;br /&gt;
* '''25th May 2008'''&lt;br /&gt;
'''Updated index:'''&lt;br /&gt;
Added or to improve:&lt;br /&gt;
&lt;br /&gt;
(toimp)1. Frontispiece&lt;br /&gt;
&lt;br /&gt;
(toimp)1.1 About the OWASP Testing Guide Project&lt;br /&gt;
&lt;br /&gt;
(new) 2.4 Security requirements test derivation, functional and non functional test requirements, and test cases through use and misuse cases&lt;br /&gt;
&lt;br /&gt;
(new) 2.4.1 Security tests integrated in developers and testers workflows&lt;br /&gt;
&lt;br /&gt;
(new) 2.4.2 Developers' security tests: Unit Tests, component level tests, etc&lt;br /&gt;
&lt;br /&gt;
(new) 2.4.3 Functional testers' security tests: integrated system tests, tests in UAT, and production environment&lt;br /&gt;
&lt;br /&gt;
(new) 2.5 Security test data analysis and reporting: root cause identification and business/role case test data reporting&lt;br /&gt;
&lt;br /&gt;
4. (toimp) Web Application Penetration Testing&lt;br /&gt;
&lt;br /&gt;
4.1 Introduction and Objectives&lt;br /&gt;
&lt;br /&gt;
(new) 4.1.1 Testing Checklist&lt;br /&gt;
&lt;br /&gt;
(toimp) 4.2 Information Gathering&lt;br /&gt;
&lt;br /&gt;
(new)4.2.1 Spiders, Robots and Crawlers&lt;br /&gt;
&lt;br /&gt;
(new) 4.2.2 Search Engine Discovery/Reconnaissance&lt;br /&gt;
&lt;br /&gt;
(new) 4.2.3 Identify application entry points&lt;br /&gt;
&lt;br /&gt;
4.2.3 (toimp) Testing for Web Application Fingerprint&lt;br /&gt;
&lt;br /&gt;
(toimp)4.2.5 Analysis of Error Codes&lt;br /&gt;
&lt;br /&gt;
(new) 4.3 Configuration Management Testing&lt;br /&gt;
&lt;br /&gt;
(toimp) 4.3.1 SSL/TLS Testing (SSL Version, Alghoritms, Key lenght, Digital Cert. Validity&lt;br /&gt;
&lt;br /&gt;
(toimp) 4.3.3 Application Configuration Management Testing&lt;br /&gt;
&lt;br /&gt;
(new) 4.3.4 Testing for misconfiguration&lt;br /&gt;
&lt;br /&gt;
(new) 4.3.7 Infrastructure and Application Admin Interfaces&lt;br /&gt;
&lt;br /&gt;
(toimp)4.4 Business Logic Testing&lt;br /&gt;
&lt;br /&gt;
(toimp)4.5 Authentication Testing&lt;br /&gt;
&lt;br /&gt;
(new)4.5.1 Credentials transport over an encrypted channel&lt;br /&gt;
&lt;br /&gt;
(new) 4.5.2 Testing for user enumeration&lt;br /&gt;
&lt;br /&gt;
(to imp) 4.5.2 Testing for Guessable (Dictionary) User Account&lt;br /&gt;
&lt;br /&gt;
(new) 4.6 Authorization testing&lt;br /&gt;
&lt;br /&gt;
(new) 4.6.1 Testing for Path Traversal&lt;br /&gt;
&lt;br /&gt;
(new)4.6.2 Testing for bypassing authorization schema&lt;br /&gt;
&lt;br /&gt;
(new)4.6.3 Testing for Privilege Escalation&lt;br /&gt;
&lt;br /&gt;
(new)4.7.2 Test the token strength (old 4.5.2 Testing for Cookie and Session Token Manipulation)&lt;br /&gt;
&lt;br /&gt;
(new) 4.7.3 Testing for Cookies attributes&lt;br /&gt;
&lt;br /&gt;
(new)4.8.1 Testing for Reflected Cross Site Scripting&lt;br /&gt;
&lt;br /&gt;
(new)4.8.2 Testing for Stored Cross Site Scripting&lt;br /&gt;
&lt;br /&gt;
(new) 4.8.3 Testing for DOM based Cross Site Scripting&lt;br /&gt;
&lt;br /&gt;
(new)4.8.4 Testing for Cross Site Flashing&lt;br /&gt;
&lt;br /&gt;
(toimp) 4.8.1.1 Testing for XST&lt;br /&gt;
&lt;br /&gt;
(toimp) 4.8.2 Testing for SQL Injection&lt;br /&gt;
&lt;br /&gt;
(toimp) 4.10 Web Services Testing&lt;br /&gt;
&lt;br /&gt;
(new)4.11 Client site testing&lt;br /&gt;
&lt;br /&gt;
(new) 4.11.1 AJAX Testing&lt;br /&gt;
&lt;br /&gt;
(new)4.11.2 Flash Testing&lt;br /&gt;
&lt;br /&gt;
(new)4.11.3 RIA Testing&lt;br /&gt;
&lt;br /&gt;
(toimp: Mat)5. Writing Reports: value the real risk &lt;br /&gt;
&lt;br /&gt;
* '''26th May 2008'''&lt;br /&gt;
Added:&lt;br /&gt;
&amp;lt;br&amp;gt; 4.3.8 Testing for HTTP Methods and XST in Infrastucture and Application Testing section&lt;br /&gt;
&amp;lt;br&amp;gt; Sent Paragraph Template to the list&lt;br /&gt;
&amp;lt;br&amp;gt; Sent new index to the list&lt;br /&gt;
&lt;br /&gt;
* '''28th May 2008'''&lt;br /&gt;
Added:&lt;br /&gt;
New Testing Guide checklist.&lt;br /&gt;
&lt;br /&gt;
* '''30th May 2008'''&lt;br /&gt;
Added:&lt;br /&gt;
&amp;lt;br&amp;gt;Session Fixation&lt;br /&gt;
&amp;lt;br&amp;gt;Discuss abouut new Aspect paper about HTTP verb manipulation&lt;br /&gt;
&lt;br /&gt;
* '''1st June 2008'''&lt;br /&gt;
Les's start writing!&lt;br /&gt;
&lt;br /&gt;
* '''15th June 2008'''&lt;br /&gt;
Added:&lt;br /&gt;
4.1.1 Testing Checklist&amp;lt;br&amp;gt;&lt;br /&gt;
4.2 Information Gathering&amp;lt;br&amp;gt;&lt;br /&gt;
4.2.1 Spiders, Robots and Crawlers&amp;lt;br&amp;gt;&lt;br /&gt;
4.2.3 Identify application entry points &amp;lt;br&amp;gt;&lt;br /&gt;
2.4 Security requirements test derivation,functional and non functional test requirements, and test cases through use and misuse cases&amp;lt;br&amp;gt;&lt;br /&gt;
4.4 Business Logic Testing&amp;lt;br&amp;gt;&lt;br /&gt;
4.6 Authorization testing&amp;lt;br&amp;gt;&lt;br /&gt;
4.5.3 Testing for Guessable (Dictionary) User Account&amp;lt;br&amp;gt;&lt;br /&gt;
4.6 Authorization testing&amp;lt;br&amp;gt;&lt;br /&gt;
4.6.2 Testing for Bypassing Authorization Schema&amp;lt;br&amp;gt;&lt;br /&gt;
4.6.3 Testing for Privilege Escalation&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''29th June 2008'''&lt;br /&gt;
Written (M.Meucci):&lt;br /&gt;
Testing_for_user_enumeration&lt;br /&gt;
&lt;br /&gt;
* '''7th July 2008'''&lt;br /&gt;
Written:&lt;br /&gt;
Testing_for_Default_or_Guessable_User_Account (K.Horvath)&amp;lt;br&amp;gt;&lt;br /&gt;
Testing_for_business_logic (K.Horvath)&lt;br /&gt;
&lt;br /&gt;
* '''9th July 2008'''&lt;br /&gt;
Testing_for_cookies_attributes (K.Horvath)&lt;br /&gt;
&lt;br /&gt;
* '''12th August 2008'''&lt;br /&gt;
Articles reviewed/written (M.Meucci):&amp;lt;br&amp;gt;&lt;br /&gt;
Testing:_Introduction_and_objectives&amp;lt;br&amp;gt;&lt;br /&gt;
Testing_Checklist&amp;lt;br&amp;gt;&lt;br /&gt;
4.3 Configuration Management Testing&amp;lt;br&amp;gt;&lt;br /&gt;
4.2 Information Gathering&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''13 August 2008'''&lt;br /&gt;
Reviewed (M.Meucci):&amp;lt;br&amp;gt;&lt;br /&gt;
Testing_for_business_logic&lt;br /&gt;
Testing_for_SQL_Wildcard_Attacks (Rick.mitchell)&amp;lt;br&amp;gt;&lt;br /&gt;
Added:&amp;lt;br&amp;gt;&lt;br /&gt;
(new: G.Fedon) 4.5.9 Testing Multiple Factors Authentication&amp;lt;br&amp;gt;&lt;br /&gt;
Written (M.Meucci):&amp;lt;br&amp;gt;&lt;br /&gt;
Testing_for_authentication&lt;br /&gt;
&lt;br /&gt;
* '''14 August 2008'''&lt;br /&gt;
Reviewed (M.Meucci):&lt;br /&gt;
Testing_for_credentials_transport&amp;lt;br&amp;gt;&lt;br /&gt;
Written (M.Meucci):&amp;lt;br&amp;gt;&lt;br /&gt;
Testing_for_user_enumeration (M.Mella)&amp;lt;br&amp;gt;&lt;br /&gt;
Testing_for_authorization&amp;lt;br&amp;gt;&lt;br /&gt;
Testing_for_Session_Management&amp;lt;br&amp;gt;&lt;br /&gt;
merged the 2 articles:&amp;lt;br&amp;gt;&lt;br /&gt;
Testing for Session_Management_Schema&amp;lt;br&amp;gt;&lt;br /&gt;
Testing for Cookie and Session Token Manipulation&amp;lt;br&amp;gt;&lt;br /&gt;
Now we have a new one: Testing for Session_Management_Schema&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''15 August 2008'''&lt;br /&gt;
Testing_for_Session_Fixation&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''16th August 2008'''&lt;br /&gt;
Reviewed (M.Cova): &amp;lt;br&amp;gt;&lt;br /&gt;
4.2 Information Gathering &amp;lt;br&amp;gt;&lt;br /&gt;
4.3 Configuration Management Testing&amp;lt;br&amp;gt;&lt;br /&gt;
4.5 Authentication Testing&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''18th August 2008'''&lt;br /&gt;
Reviewed (M.Cova): &amp;lt;br&amp;gt;&lt;br /&gt;
4.6 Authorization testing&amp;lt;br&amp;gt;&lt;br /&gt;
Written (A.van der Stock):&amp;lt;br&amp;gt;&lt;br /&gt;
Testing_for_HTTP_Methods_and_XST (HTTP Verb)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''20th August 2008'''&lt;br /&gt;
Reviewed (M.Cova): &amp;lt;br&amp;gt;&lt;br /&gt;
Web Services&amp;lt;br&amp;gt;&lt;br /&gt;
Written (A.Parata):&amp;lt;br&amp;gt;&lt;br /&gt;
4.8.5.4 MS Access Testing&lt;br /&gt;
&lt;br /&gt;
* '''21st August 2008'''&lt;br /&gt;
Updated (M.Meucci):&amp;lt;br&amp;gt;&lt;br /&gt;
Testing_for_Session_Fixation&amp;lt;br&amp;gt;&lt;br /&gt;
Testing_for_Bypassing_Authorization_Schema&amp;lt;br&amp;gt;&lt;br /&gt;
Testing_for_Privilege_escalation&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''22nd August 2008'''&lt;br /&gt;
Writing (Adam):&lt;br /&gt;
Testing_for_Admin_Interfaces&amp;lt;br&amp;gt;&lt;br /&gt;
Update/Write:&amp;lt;br&amp;gt;&lt;br /&gt;
(imp: M.Meucci -100%) 4.10 Web Services Testing&amp;lt;br&amp;gt;&lt;br /&gt;
(new: M.Meucci -100%) 4.10.1 WS Information Gathering&amp;lt;br&amp;gt;&lt;br /&gt;
(new: M.Meucci -100%) 4.10.2 Testing WSDL&amp;lt;br&amp;gt;&lt;br /&gt;
(imp: M.Meucci -100%)4.10.3 XML Structural Testing&amp;lt;br&amp;gt;&lt;br /&gt;
Improved:&amp;lt;br&amp;gt;&lt;br /&gt;
Testing_for_Data_Validation&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''23rd August 2008'''&lt;br /&gt;
Deleted:&amp;lt;br&amp;gt;&lt;br /&gt;
Client Side Testing (we have not time to finish this section: we can focus on DOM XSS and Cross Site Flashing articles)&amp;lt;br&amp;gt;&lt;br /&gt;
Added:&amp;lt;br&amp;gt;&lt;br /&gt;
AJAX Testing&amp;lt;br&amp;gt;&lt;br /&gt;
Updated:&amp;lt;br&amp;gt;&lt;br /&gt;
(new: M.Meucci) 4.1.1 Testing Checklist&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''TODO:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Article to finish: &amp;lt;br&amp;gt;&lt;br /&gt;
(new:C.Heinrich - 0%)4.2.1 Spiders, Robots and Crawlers&amp;lt;br&amp;gt;&lt;br /&gt;
(new:C.Heinrich - 0%)4.2.2 Search Engine Discovery/Reconnaissance&amp;lt;br&amp;gt;&lt;br /&gt;
(new: M.Meucci, M.Mella - 90%) 4.5.2 Testing for user enumeration&amp;lt;br&amp;gt;&lt;br /&gt;
(new: G.Fedon) 4.5.9 Testing Multiple Factors Authentication&amp;lt;br&amp;gt;&lt;br /&gt;
(new: A.Agarwwal, Kuza55 - 80%) 4.8.3 Testing for DOM based Cross Site Scripting&amp;lt;br&amp;gt;&lt;br /&gt;
(new: A.Agarwwal, S.Di Paola - 0%)4.8.4 Testing for Cross Site Flashing&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Articles to review:&amp;lt;br&amp;gt;&lt;br /&gt;
MS Access Testing&amp;lt;br&amp;gt;&lt;br /&gt;
Testing PostgreSQL&amp;lt;br&amp;gt;&lt;br /&gt;
Testing for Race Conditions&amp;lt;br&amp;gt;&lt;br /&gt;
Infrastructure and Application Admin Interfaces&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
'''Project deadlines:'''&lt;br /&gt;
# 21st May: Project status presentation at the OWASP AppSec Euro 08 Conference in Belgium.&lt;br /&gt;
# 15th June - Participants to report on project status.&lt;br /&gt;
# 24th August - Finish the writing phase.&lt;br /&gt;
# 15th September - Project completion. Participants should deliver final project report.&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Testing_for_Race_Conditions_(OWASP-AT-010)&amp;diff=37049</id>
		<title>Testing for Race Conditions (OWASP-AT-010)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Testing_for_Race_Conditions_(OWASP-AT-010)&amp;diff=37049"/>
				<updated>2008-08-23T19:44:49Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Gray Box testing and example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
A race condition is a flaw that produces an unexpected result when timing of actions impact other actions. An example may be seen on a multithreaded application where actions are being performed on the same data. Race conditions, by their very nature, are difficult to test for.&lt;br /&gt;
&lt;br /&gt;
==Description of the Issue==&lt;br /&gt;
Race conditions may occur when a process is critically or unexpectedly dependent on the sequence or timings of other events. &lt;br /&gt;
In a web application environment, where multiple requests can be processed at a given time, developers may leave concurrency to be handled&lt;br /&gt;
by the framework, server or programming language.&lt;br /&gt;
The following simplified example illustrates a potential concurrency problem in a transactional web application and relates to a joint savings account in which both users (threads) are logged into the same account and attempting a transfer.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Account A has 100 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 100 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Both User 1 and User 2 want to transfer 10 credits from Account A to Account B. If the transaction was correct the outcome should be:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Account A has 80 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 120 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
However, due to concurrency issues, the following result could be obtained:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
User 1 checks the value of Account A (=100 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 2 checks the value of Account A (=100 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 2 takes 10 credits from Account A (=90 credits) and put it in Account B (=110 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 1 takes 10 credits from Account A (Still believed to contain 100 credits) (=90 credits) and puts it into Account B (=120 credits).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Result:&lt;br /&gt;
Account A has 90 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 120 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Black Box testing and example==&lt;br /&gt;
Testing for race conditions is problematic due to their nature, and external influences on testing including server load, network latency etc will all play a part in the presence and detection of the condition.&amp;lt;br&amp;gt;&lt;br /&gt;
Attempts to force a race condition may include the ability to make multiple simultaneous requests while observing the outcome for unexpected behavior.&lt;br /&gt;
&lt;br /&gt;
==Gray Box testing and example==&lt;br /&gt;
&lt;br /&gt;
Code review may reveal likely areas of concern for concurrency issues. More information on reviewing code for concurrency issues can be seen at:&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.owasp.org/index.php/Reviewing_Code_for_Race_Conditions&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
iSec Partners - Concurrency attacks in Web Applications http://isecpartners.com/files/iSEC%20Partners%20-%20Concurrency%20Attacks%20in%20Web%20Applications.pdf&amp;lt;br&amp;gt;&lt;br /&gt;
B. Sullivan and B. Hoffman - Premature Ajax-ulation and You https://www.blackhat.com/presentations/bh-usa-07/Sullivan_and_Hoffman/Whitepaper/bh-usa-07-sullivan_and_hoffman-WP.pdf&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Testing_for_Race_Conditions_(OWASP-AT-010)&amp;diff=37048</id>
		<title>Testing for Race Conditions (OWASP-AT-010)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Testing_for_Race_Conditions_(OWASP-AT-010)&amp;diff=37048"/>
				<updated>2008-08-23T19:39:05Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Black Box testing and example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
A race condition is a flaw that produces an unexpected result when timing of actions impact other actions. An example may be seen on a multithreaded application where actions are being performed on the same data. Race conditions, by their very nature, are difficult to test for.&lt;br /&gt;
&lt;br /&gt;
==Description of the Issue==&lt;br /&gt;
Race conditions may occur when a process is critically or unexpectedly dependent on the sequence or timings of other events. &lt;br /&gt;
In a web application environment, where multiple requests can be processed at a given time, developers may leave concurrency to be handled&lt;br /&gt;
by the framework, server or programming language.&lt;br /&gt;
The following simplified example illustrates a potential concurrency problem in a transactional web application and relates to a joint savings account in which both users (threads) are logged into the same account and attempting a transfer.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Account A has 100 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 100 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Both User 1 and User 2 want to transfer 10 credits from Account A to Account B. If the transaction was correct the outcome should be:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Account A has 80 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 120 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
However, due to concurrency issues, the following result could be obtained:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
User 1 checks the value of Account A (=100 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 2 checks the value of Account A (=100 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 2 takes 10 credits from Account A (=90 credits) and put it in Account B (=110 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 1 takes 10 credits from Account A (Still believed to contain 100 credits) (=90 credits) and puts it into Account B (=120 credits).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Result:&lt;br /&gt;
Account A has 90 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 120 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Black Box testing and example==&lt;br /&gt;
Testing for race conditions is problematic due to their nature, and external influences on testing including server load, network latency etc will all play a part in the presence and detection of the condition.&amp;lt;br&amp;gt;&lt;br /&gt;
Attempts to force a race condition may include the ability to make multiple simultaneous requests while observing the outcome for unexpected behavior.&lt;br /&gt;
&lt;br /&gt;
==Gray Box testing and example==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
iSec Partners - Concurrency attacks in Web Applications http://isecpartners.com/files/iSEC%20Partners%20-%20Concurrency%20Attacks%20in%20Web%20Applications.pdf&amp;lt;br&amp;gt;&lt;br /&gt;
B. Sullivan and B. Hoffman - Premature Ajax-ulation and You https://www.blackhat.com/presentations/bh-usa-07/Sullivan_and_Hoffman/Whitepaper/bh-usa-07-sullivan_and_hoffman-WP.pdf&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Testing_for_Race_Conditions_(OWASP-AT-010)&amp;diff=37047</id>
		<title>Testing for Race Conditions (OWASP-AT-010)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Testing_for_Race_Conditions_(OWASP-AT-010)&amp;diff=37047"/>
				<updated>2008-08-23T19:30:41Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Description of the Issue */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
A race condition is a flaw that produces an unexpected result when timing of actions impact other actions. An example may be seen on a multithreaded application where actions are being performed on the same data. Race conditions, by their very nature, are difficult to test for.&lt;br /&gt;
&lt;br /&gt;
==Description of the Issue==&lt;br /&gt;
Race conditions may occur when a process is critically or unexpectedly dependent on the sequence or timings of other events. &lt;br /&gt;
In a web application environment, where multiple requests can be processed at a given time, developers may leave concurrency to be handled&lt;br /&gt;
by the framework, server or programming language.&lt;br /&gt;
The following simplified example illustrates a potential concurrency problem in a transactional web application and relates to a joint savings account in which both users (threads) are logged into the same account and attempting a transfer.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Account A has 100 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 100 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Both User 1 and User 2 want to transfer 10 credits from Account A to Account B. If the transaction was correct the outcome should be:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Account A has 80 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 120 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
However, due to concurrency issues, the following result could be obtained:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
User 1 checks the value of Account A (=100 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 2 checks the value of Account A (=100 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 2 takes 10 credits from Account A (=90 credits) and put it in Account B (=110 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 1 takes 10 credits from Account A (Still believed to contain 100 credits) (=90 credits) and puts it into Account B (=120 credits).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Result:&lt;br /&gt;
Account A has 90 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 120 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Black Box testing and example==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Gray Box testing and example==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
iSec Partners - Concurrency attacks in Web Applications http://isecpartners.com/files/iSEC%20Partners%20-%20Concurrency%20Attacks%20in%20Web%20Applications.pdf&amp;lt;br&amp;gt;&lt;br /&gt;
B. Sullivan and B. Hoffman - Premature Ajax-ulation and You https://www.blackhat.com/presentations/bh-usa-07/Sullivan_and_Hoffman/Whitepaper/bh-usa-07-sullivan_and_hoffman-WP.pdf&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Testing_for_Race_Conditions_(OWASP-AT-010)&amp;diff=37046</id>
		<title>Testing for Race Conditions (OWASP-AT-010)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Testing_for_Race_Conditions_(OWASP-AT-010)&amp;diff=37046"/>
				<updated>2008-08-23T19:29:50Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Description of the Issue */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
A race condition is a flaw that produces an unexpected result when timing of actions impact other actions. An example may be seen on a multithreaded application where actions are being performed on the same data. Race conditions, by their very nature, are difficult to test for.&lt;br /&gt;
&lt;br /&gt;
==Description of the Issue==&lt;br /&gt;
Race conditions may occur when a process is critically or unexpectedly dependent on the sequence or timings of other events. &lt;br /&gt;
In a web application environment, where multiple requests can be processed at a given time, developers may leave concurrency to be handled&lt;br /&gt;
by the framework, server or programming language.&lt;br /&gt;
The following simplified example illustrates a potential concurrency problem in a transactional web application and relates to a joint savings account in which both users (threads) are logged into the same account and attempting a transfer.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Account A has 100 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 100 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Both User 1 and User 2 want to transfer 10 credit from Account A to Account B. If the transaction was correct the outcome should be:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Account A has 80 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 120 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
However, due to concurrency issues, the following result could be obtained:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
User 1 checks the value of Account A (=100 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 2 checks the value of Account A (=100 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 2 takes 10 credits from Account A (=90 credits) and put it in Account B (=110 credits)&amp;lt;br&amp;gt;&lt;br /&gt;
User 1 takes 10 credits from Account A (Still believed to contain 100 credits) (=90 credits) and puts it into Account B (=120 credits).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Result:&lt;br /&gt;
Account A has 90 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
Account B has 120 credits.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Black Box testing and example==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Gray Box testing and example==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
iSec Partners - Concurrency attacks in Web Applications http://isecpartners.com/files/iSEC%20Partners%20-%20Concurrency%20Attacks%20in%20Web%20Applications.pdf&amp;lt;br&amp;gt;&lt;br /&gt;
B. Sullivan and B. Hoffman - Premature Ajax-ulation and You https://www.blackhat.com/presentations/bh-usa-07/Sullivan_and_Hoffman/Whitepaper/bh-usa-07-sullivan_and_hoffman-WP.pdf&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Testing_for_Race_Conditions_(OWASP-AT-010)&amp;diff=37045</id>
		<title>Testing for Race Conditions (OWASP-AT-010)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Testing_for_Race_Conditions_(OWASP-AT-010)&amp;diff=37045"/>
				<updated>2008-08-23T19:07:38Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: New page: {{Template:OWASP Testing Guide v3}}  == Brief Summary == A race condition is a flaw that produces an unexpected result when timing of actions impact other actions. An example may be seen o...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
A race condition is a flaw that produces an unexpected result when timing of actions impact other actions. An example may be seen on a multithreaded application where actions are being performed on the same data. Race conditions, by their very nature, are difficult to test for.&lt;br /&gt;
&lt;br /&gt;
==Description of the Issue==&lt;br /&gt;
Race conditions may occur when a process is critically or unexpectedly dependent on the sequence or timings of other events. &lt;br /&gt;
In a web application environment, where multiple requests can be processed at a given time, developers may leave concurrency to be handled&lt;br /&gt;
by the framework, server or programming language.&lt;br /&gt;
The following example describes a potential concurrency problem in a transactional web application.&lt;br /&gt;
&lt;br /&gt;
* EXAMPLE&lt;br /&gt;
&lt;br /&gt;
==Black Box testing and example==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Gray Box testing and example==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
iSec Partners - Concurrency attacks in Web Applications http://isecpartners.com/files/iSEC%20Partners%20-%20Concurrency%20Attacks%20in%20Web%20Applications.pdf&amp;lt;br&amp;gt;&lt;br /&gt;
B. Sullivan and B. Hoffman - Premature Ajax-ulation and You https://www.blackhat.com/presentations/bh-usa-07/Sullivan_and_Hoffman/Whitepaper/bh-usa-07-sullivan_and_hoffman-WP.pdf&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Testing_Guide_v3_Table_of_Contents&amp;diff=37044</id>
		<title>OWASP Testing Guide v3 Table of Contents</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Testing_Guide_v3_Table_of_Contents&amp;diff=37044"/>
				<updated>2008-08-23T18:55:50Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* 4. (M.Meucci) Web Application Penetration Testing  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
This is the draft of table of content of the New Testing Guide.&lt;br /&gt;
You can download the stable version [http://www.owasp.org/index.php/Image:OWASP_Testing_Guide_v2_pdf.zip here] &lt;br /&gt;
&lt;br /&gt;
Back to the OWASP Testing Guide Project:&lt;br /&gt;
http://www.owasp.org/index.php/OWASP_Testing_Project&lt;br /&gt;
&lt;br /&gt;
 Testing Guide v3 (draft)&lt;br /&gt;
 Updated: 23rd August 2008&lt;br /&gt;
 (new)--&amp;gt; new articles, (toimp)--&amp;gt; needs to improve or to review, (xxx%) --&amp;gt; current state of the article&lt;br /&gt;
&lt;br /&gt;
'''T A B L E    o f    C O N T E N T S'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==[[Testing Guide Foreword|(toimp)Foreword by OWASP Chair]]==&lt;br /&gt;
&lt;br /&gt;
==[[Testing Guide Frontispiece |(toimp: M.Meucci)1. Frontispiece]]==&lt;br /&gt;
&lt;br /&gt;
'''[[Testing Guide Frontispiece|(toimp: M.Meucci)1.1 About the OWASP Testing Guide Project]]'''&lt;br /&gt;
&lt;br /&gt;
'''[[About The Open Web Application Security Project|1.2 About The Open Web Application Security Project]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[Testing Guide Introduction|2. Introduction]]==&lt;br /&gt;
&lt;br /&gt;
'''2.1 The OWASP Testing Project'''&lt;br /&gt;
&lt;br /&gt;
'''2.2 Principles of Testing'''&lt;br /&gt;
&lt;br /&gt;
'''2.3 Testing Techniques Explained''' &lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 90%) 2.4 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Security_Requirements_Test_Derivation Security requirements test derivation],[https://www.owasp.org/index.php/Testing_Guide_Introduction#Functional_and_Non_Functional_Test_Requirements functional and non functional test requirements], and [https://www.owasp.org/index.php/Testing_Guide_Introduction#Test_Cases_Through_Use_and_Misuse_Cases test cases through use and misuse cases]&lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 100%) 2.4.1 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Security_Tests_Integrated_in_Developers_and_Testers_Workflow Security tests integrated in developers and testers workflows]&lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 100%) 2.4.2 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Developers.27_Security_Tests Developers' security tests: unit tests and component level tests]&lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 90%) 2.4.3 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Functional_Testers.27_Security_Tests Functional testers' security tests: integrated system tests, tests in UAT, and production environment]&lt;br /&gt;
&lt;br /&gt;
(new: M. Morana 100%) 2.5 [https://www.owasp.org/index.php/Testing_Guide_Introduction#Security_Test_Data_Analysis_and_Reporting Security test data analysis and reporting: root cause identification and business/role case test data reporting]&lt;br /&gt;
&lt;br /&gt;
==[[The OWASP Testing Framework|3. The OWASP Testing Framework]]==&lt;br /&gt;
&lt;br /&gt;
'''3.1. Overview'''&lt;br /&gt;
&lt;br /&gt;
'''3.2. Phase 1: Before Development Begins '''&lt;br /&gt;
&lt;br /&gt;
'''3.3. Phase 2: During Definition and Design'''&lt;br /&gt;
&lt;br /&gt;
'''3.4. Phase 3: During Development'''&lt;br /&gt;
&lt;br /&gt;
'''3.5. Phase 4: During Deployment'''&lt;br /&gt;
&lt;br /&gt;
'''3.6. Phase 5: Maintenance and Operations'''&lt;br /&gt;
&lt;br /&gt;
'''3.7. A Typical SDLC Testing Workflow '''&lt;br /&gt;
&lt;br /&gt;
==[[Web Application Penetration Testing |4. (M.Meucci) Web Application Penetration Testing ]]==&lt;br /&gt;
&lt;br /&gt;
[[Testing: Introduction and objectives|'''4.1 Introduction and Objectives''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing Checklist| (new: M.Meucci - 100% ) 4.1.1 Testing Checklist]]&lt;br /&gt;
&lt;br /&gt;
[[Testing: Information Gathering|'''4.2 Information Gathering''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing: Spiders Robots and Crawlers|(new:C.Heinrich - 0%)4.2.1 Spiders, Robots and Crawlers]]&lt;br /&gt;
&lt;br /&gt;
[[Testing: Search engine discovery|(new:C.Heinrich - 0%)4.2.2 Search Engine Discovery/Reconnaissance]]&lt;br /&gt;
&lt;br /&gt;
[[Testing: Identify application entry points| (new: K.Horvath - 100%) 4.2.3 Identify application entry points]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Web Application Fingerprint|4.2.4 Testing for Web Application Fingerprint]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Application Discovery|4.2.5 Application Discovery]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Error Code|4.2.6 Analysis of Error Codes]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for configuration management|''' (new) 4.3 Configuration Management Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SSL-TLS| 4.3.1 SSL/TLS Testing (SSL Version, Alghoritms, Key lenght, Digital Cert. Validity]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Testing for DB Listener|4.3.2 DB Listener Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for infrastructure configuration management| (new) 4.3.3 Infrastructure Configuration Management Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for application configuration management|4.3.4 Application Configuration Management Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for file extensions handling|4.3.5 Testing for File Extensions Handling]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for old_file|4.3.6 Old, Backup and Unreferenced Files]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Admin Interfaces|(Adam - 100%) 4.3.7 Infrastructure and Application Admin Interfaces]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for HTTP Methods and XST| (imp: A. van der Stock - 100%)4.3.8 Testing for HTTP Methods and XST]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for business logic|'''(K.Horvath - 100%) 4.4 Business Logic Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for authentication|'''(M.Meucci - 100%) 4.5 Authentication Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for credentials transport|(new: G.Ingrosso - 100%) 4.5.1 Credentials transport over an encrypted channel]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for user enumeration|(new: M.Meucci, M.Mella - 90%) 4.5.2 Testing for user enumeration]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Default or Guessable User Account|(to imp: K.Horvath - 100%) 4.5.3 Testing for Guessable (Dictionary) User Account]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Brute Force|4.5.4 Brute Force Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Bypassing Authentication Schema|4.5.5 Testing for bypassing authentication schema]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Vulnerable Remember Password and Pwd Reset|4.5.6 Testing for vulnerable remember &lt;br /&gt;
password and pwd reset]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Logout and Browser Cache Management|4.5.7 Testing for Logout and Browser Cache Management Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Captcha|(new: P.Luptak - 100% ) 4.5.8 Testing for CAPTCHA]]&lt;br /&gt;
&lt;br /&gt;
[[Testing Multiple Factors Authentication| (new: G.Fedon) 4.5.9 Testing Multiple Factors Authentication]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Race Conditions| (new: Adam) 4.5.10 Testing for Race Conditions]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Authorization|'''(new: M.Meucci - 100%) 4.6 Authorization testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Path Traversal|(new) 4.6.1 Testing for path traversal]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Bypassing Authorization Schema|(new: M.Meucci - 100%)4.6.2 Testing for bypassing authorization schema]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Privilege escalation|(new: Cecil Su, M.Meucci - 100%)4.6.3 Testing for Privilege Escalation]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Session Management|'''4.7 Session Management Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Session_Management_Schema|(new: M.Meucci - 100%) 4.7.1 Testing for Session Management Schema]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for cookies attributes| (new: K.Horvath - 100%) 4.7.2 Testing for Cookies attributes]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Session Fixation| (new: M.Meucci - 100%) 4.7.3 Testing for Session Fixation]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Exposed Session Variables|4.7.4 Testing for Exposed Session Variables ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for CSRF|4.7.5 Testing for CSRF]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for HTTP Exploit|4.7.6 Testing for HTTP Exploit ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Data Validation|'''4.8 Data Validation Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Reflected Cross site scripting|(new: A. Coronel -100%)4.8.1 Testing for Reflected Cross Site Scripting]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Stored Cross site scripting|(new: R. Suggi Liverani - 100%)4.8.2 Testing for Stored Cross Site Scripting]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for DOM-based Cross site scripting|(new: A.Agarwwal, Kuza55 - 80%) 4.8.3 Testing for DOM based Cross Site Scripting]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Cross site flashing|(new: A.Agarwwal, S.Di Paola - 0%)4.8.4 Testing for Cross Site Flashing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SQL Injection| 4.8.5 Testing for SQL Injection ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Oracle|4.8.5.1 Oracle Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for MySQL|4.8.5.2 MySQL Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SQL Server|4.8.5.3 SQL Server Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for MS Access|(new:A.Parata - 90%) 4.8.5.4 MS Access Testing]]&lt;br /&gt;
&lt;br /&gt;
[[OWASP_Backend_Security_Project_Testing_PostgreSQL|4.8.5.5 (new: D.Bellucci 100% from OWASP BSP) Testing PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for LDAP Injection|4.8.6 Testing for LDAP Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for ORM Injection|4.8.7 Testing for ORM Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for XML Injection|4.8.8 Testing for XML Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SSI Injection|4.8.9 Testing for SSI Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for XPath Injection|4.8.10 Testing for XPath Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for IMAP/SMTP Injection|4.8.11 IMAP/SMTP Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Code Injection|4.8.12 Testing for Code Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Command Injection|4.8.13 Testing for Command Injection]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Buffer Overflow|4.8.14 Testing for Buffer overflow]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Heap Overflow|4.8.14.1 Testing for Heap overflow]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Stack Overflow|4.8.14.2 Testing for Stack overflow]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Format String|4.8.14.3 Testing for Format string]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Incubated Vulnerability|4.8.15 Testing for incubated vulnerabilities]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Denial of Service|'''4.9 Testing for Denial of Service''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SQL Wildcard Attacks|(new: F.Mavituna - 100%) 4.9.1 Testing for SQL Wildcard Attacks]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for DoS Locking Customer Accounts|4.9.2 Testing for DoS Locking Customer Accounts]]	&lt;br /&gt;
&lt;br /&gt;
[[Testing for DoS Buffer Overflows|4.9.3 Testing for DoS Buffer Overflows]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for DoS User Specified Object Allocation|4.9.4 Testing for DoS User Specified Object Allocation]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for User Input as a Loop Counter|4.9.5 Testing for User Input as a Loop Counter]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Writing User Provided Data to Disk|4.9.6 Testing for Writing User Provided Data to Disk]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for DoS Failure to Release Resources|4.9.7 Testing for DoS Failure to Release Resources]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Storing too Much Data in Session|4.9.8 Testing for Storing too Much Data in Session]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Web Services|(toimp: M.Meucci -100%) '''4.10 Web Services Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing: WS Information Gathering|(new: M.Meucci -100%) 4.10.1 WS Information Gathering]]&lt;br /&gt;
&lt;br /&gt;
[[Testing WSDL|(new: M.Meucci -100%) 4.10.2 Testing WSDL]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for XML Structural|(toimp: M.Meucci -100%)4.10.3 XML Structural Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for XML Content-Level|4.10.4 XML Content-level Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for WS HTTP GET parameters/REST attacks|4.10.5 HTTP GET parameters/REST Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Naughty SOAP Attachments|4.10.6 Naughty SOAP attachments ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for WS Replay|4.10.7 Replay Testing ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing_for_AJAX:_introduction|'''4.11 AJAX Testing''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for AJAX Vulnerabilities|4.11.1 AJAX Vulnerabilities]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for AJAX|4.11.2 How to test AJAX]]&lt;br /&gt;
&lt;br /&gt;
==[[Writing Reports: value the real risk |(toimp: Mat)5. Writing Reports: value the real risk ]]==&lt;br /&gt;
&lt;br /&gt;
[[How to value the real risk |5.1 How to value the real risk]]&lt;br /&gt;
&lt;br /&gt;
[[How to write the report of the testing |5.2 How to write the report of the testing]]&lt;br /&gt;
&lt;br /&gt;
==[[Appendix A: Testing Tools |Appendix A: Testing Tools ]]==&lt;br /&gt;
&lt;br /&gt;
* Black Box Testing Tools&lt;br /&gt;
* Source Code Analyzers&lt;br /&gt;
* Other Tools&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[OWASP Testing Guide Appendix B: Suggested Reading | Appendix B: Suggested Reading]]==&lt;br /&gt;
* Whitepapers&lt;br /&gt;
* Books&lt;br /&gt;
* Useful Websites&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[OWASP Testing Guide Appendix C: Fuzz Vectors | Appendix C: Fuzz Vectors]]==&lt;br /&gt;
&lt;br /&gt;
* Fuzz Categories&lt;br /&gt;
** Recursive fuzzing&lt;br /&gt;
** Replasive fuzzing&lt;br /&gt;
* Cross Site Scripting (XSS)&lt;br /&gt;
* Buffer Overflows and Format String Errors&lt;br /&gt;
** Buffer Overflows (BFO)&lt;br /&gt;
** Format String Errors (FSE)&lt;br /&gt;
** Integer Overflows (INT)&lt;br /&gt;
* SQL Injection&lt;br /&gt;
** Passive SQL Injection (SQP)&lt;br /&gt;
** Active SQL Injection (SQI)&lt;br /&gt;
* LDAP Injection&lt;br /&gt;
* XPATH Injection&lt;br /&gt;
&lt;br /&gt;
==[[OWASP Testing Guide Appendix D: Encoded Injection | (new: Harish S.)Appendix D: Encoded Injection]]==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Testing Project]]&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Enumerate_Infrastructure_and_Application_Admin_Interfaces_(OTG-CONFIG-005)&amp;diff=37043</id>
		<title>Enumerate Infrastructure and Application Admin Interfaces (OTG-CONFIG-005)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Enumerate_Infrastructure_and_Application_Admin_Interfaces_(OTG-CONFIG-005)&amp;diff=37043"/>
				<updated>2008-08-23T18:03:03Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Gray Box testing and example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Administrator interfaces may be present in the application or on the application server to allow certain users to undertake privileged activities on the site. Tests should be undertaken to reveal if and how this privileged functionality can be accessed by an unauthorized or standard user.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
An application may require an administrator interface to enable a privileged user to access functionality that may make changes to how the site functions. Such changes may include:&lt;br /&gt;
&lt;br /&gt;
- user account provisioning&amp;lt;br&amp;gt;&lt;br /&gt;
- Site design and layout&amp;lt;br&amp;gt;&lt;br /&gt;
- data manipultion&amp;lt;br&amp;gt;&lt;br /&gt;
- configuration changes&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In many instances, such interfaces are usually implemented with little thought of how to separate them from the normal users of the site. Testing is aimed at discovering these administrator interfaces and accessing functionality intended for the privileged users. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
The following describes vectors that may be used to test for the presence of administrative interfaces. These techniques may also be used for testing for related issues including privilege escalation and are described elsewhere in this guide in greater detail:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Directory and file Enumeration - An administrative interface may be present but not visibly available to the tester. Attempting to guess the path of the administrative interface may be as simple as requesting: &lt;br /&gt;
/admin or /administrator etc..&amp;lt;br&amp;gt;&lt;br /&gt;
A tester may have to also identify the filename of the administration page. Forcible browsing to the identified page may provide access to the interface.&lt;br /&gt;
&lt;br /&gt;
* Comments and links in Source - Many sites use common code that is loaded for all site users. By examining all source sent to the client, links to administrator functionality may be discovered and should be investigated. &lt;br /&gt;
&lt;br /&gt;
* Reviewing Server and Application Documentation - If the application server or application is deployed in its default configuration it may be possible&lt;br /&gt;
to access the administration interface using information described in configuration or help documentation. Default password lists should be consulted if an administrative interface is found and credentials are required.&lt;br /&gt;
&lt;br /&gt;
* Alternative Server Port - Administration interfaces may be seen on a different port on the host than the main application. For example, Apache Tomcat's Administration interface can often be seen on port 8080.&lt;br /&gt;
&lt;br /&gt;
* Parameter Tampering - A GET or POST parameter or a cookie variable may be required to enable the administrator functionality. Clues to this&lt;br /&gt;
include the presence of hidden fields such as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;admin&amp;quot; value=&amp;quot;no&amp;quot;&amp;gt; or in a cookie:   Cookie: session_cookie; useradmin=0&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Once an administrative interface has been discovered, a combination of the above techniques may be used to attempt to bypass authentication. If this fails, the&lt;br /&gt;
tester may wish to attempt a brute force attack. In such an instance the tester should be aware of the potential for administrative account lockout if such functionality is present.&lt;br /&gt;
&lt;br /&gt;
== Gray Box testing and example == &lt;br /&gt;
Code should be examined to ensure clear separation of duties and enforcement of user authorization and administration function access. The server and application components should be verified to ensure hardening, and validation that they are not configured as the default.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Default Password list: http://www.governmentsecurity.org/articles/DefaultLoginsandPasswordsforNetworkedDevices.php&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Enumerate_Infrastructure_and_Application_Admin_Interfaces_(OTG-CONFIG-005)&amp;diff=36991</id>
		<title>Enumerate Infrastructure and Application Admin Interfaces (OTG-CONFIG-005)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Enumerate_Infrastructure_and_Application_Admin_Interfaces_(OTG-CONFIG-005)&amp;diff=36991"/>
				<updated>2008-08-23T05:25:25Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Black Box testing and example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
'''This is a draft of a section of the new Testing Guide v3'''&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Administrator interfaces may be present in the application or on the application server to allow certain users to undertake privileged activities on the site. Tests should be undertaken to reveal if and how this privileged functionality can be accessed by an unauthorized or standard user.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
An application may require an administrator interface to enable a privileged user to access functionality that may make changes to how the site functions. Such changes may include:&lt;br /&gt;
&lt;br /&gt;
- user account provisioning&amp;lt;br&amp;gt;&lt;br /&gt;
- Site design and layout&amp;lt;br&amp;gt;&lt;br /&gt;
- data manipultion&amp;lt;br&amp;gt;&lt;br /&gt;
- configuration changes&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In many instances, such interfaces are usually implemented with little thought of how to separate them from the normal users of the site. Testing is aimed at discovering these administrator interfaces and accessing functionality intended for the privileged users. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
The following describes vectors that may be used to test for the presence of administrative interfaces. These techniques may also be used for testing for related issues including privilege escalation and are described elsewhere in this guide in greater detail:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Directory and file Enumeration - An administrative interface may be present but not visibly available to the tester. Attempting to guess the path of the administrative interface may be as simple as requesting: &lt;br /&gt;
/admin or /administrator etc..&amp;lt;br&amp;gt;&lt;br /&gt;
A tester may have to also identify the filename of the administration page. Forcible browsing to the identified page may provide access to the interface.&lt;br /&gt;
&lt;br /&gt;
* Comments and links in Source - Many sites use common code that is loaded for all site users. By examining all source sent to the client, links to administrator functionality may be discovered and should be investigated. &lt;br /&gt;
&lt;br /&gt;
* Reviewing Server and Application Documentation - If the application server or application is deployed in its default configuration it may be possible&lt;br /&gt;
to access the administration interface using information described in configuration or help documentation. Default password lists should be consulted if an administrative interface is found and credentials are required.&lt;br /&gt;
&lt;br /&gt;
* Alternative Server Port - Administration interfaces may be seen on a different port on the host than the main application. For example, Apache Tomcat's Administration interface can often be seen on port 8080.&lt;br /&gt;
&lt;br /&gt;
* Parameter Tampering - A GET or POST parameter or a cookie variable may be required to enable the administrator functionality. Clues to this&lt;br /&gt;
include the presence of hidden fields such as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;admin&amp;quot; value=&amp;quot;no&amp;quot;&amp;gt; or in a cookie:   Cookie: session_cookie; useradmin=0&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Once an administrative interface has been discovered, a combination of the above techniques may be used to attempt to bypass authentication. If this fails, the&lt;br /&gt;
tester may wish to attempt a brute force attack. In such an instance the tester should be aware of the potential for administrative account lockout if such functionality is present.&lt;br /&gt;
&lt;br /&gt;
== Gray Box testing and example == &lt;br /&gt;
Code should be examined to ensure clear separation of duties and enforcement of user authorization and administration function access. The server and application components should be verified to ensure hardening and validation that they are not configured as the default.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
Default Password list: http://www.governmentsecurity.org/articles/DefaultLoginsandPasswordsforNetworkedDevices.php&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Enumerate_Infrastructure_and_Application_Admin_Interfaces_(OTG-CONFIG-005)&amp;diff=36990</id>
		<title>Enumerate Infrastructure and Application Admin Interfaces (OTG-CONFIG-005)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Enumerate_Infrastructure_and_Application_Admin_Interfaces_(OTG-CONFIG-005)&amp;diff=36990"/>
				<updated>2008-08-23T05:24:40Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Black Box testing and example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
'''This is a draft of a section of the new Testing Guide v3'''&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Administrator interfaces may be present in the application or on the application server to allow certain users to undertake privileged activities on the site. Tests should be undertaken to reveal if and how this privileged functionality can be accessed by an unauthorized or standard user.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
An application may require an administrator interface to enable a privileged user to access functionality that may make changes to how the site functions. Such changes may include:&lt;br /&gt;
&lt;br /&gt;
- user account provisioning&amp;lt;br&amp;gt;&lt;br /&gt;
- Site design and layout&amp;lt;br&amp;gt;&lt;br /&gt;
- data manipultion&amp;lt;br&amp;gt;&lt;br /&gt;
- configuration changes&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In many instances, such interfaces are usually implemented with little thought of how to separate them from the normal users of the site. Testing is aimed at discovering these administrator interfaces and accessing functionality intended for the privileged users. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
The following describes vectors that may be used to test for the presence of administrative interfaces. These techniques may also be used for testing for related issues including privilege escalation and are described elsewhere in this guide in greater detail:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Directory and file Enumeration - An administrative interface may be present but not visibly available to the tester. Attempting to guess the path of the administrative interface may be as simple as requesting: &lt;br /&gt;
/admin or /administrator etc..&amp;lt;br&amp;gt;&lt;br /&gt;
A tester may have to also identify the filename of the administration page. Forcible browsing to the identified page may provide access to the interface.&lt;br /&gt;
&lt;br /&gt;
* Comments and links in Source - Many sites use common code that is loaded for all site users. By examining all source sent to the client, links to administrator functionality may be discovered and should be investigated. &lt;br /&gt;
&lt;br /&gt;
* Reviewing Server and Application Documentation - If the application server or application is deployed in its default configuration it may be possible&lt;br /&gt;
to access the administration interface using information described in configuration or help documentation. Default password lists should be consulted if an administrative interface is found and credentials are required.&lt;br /&gt;
&lt;br /&gt;
* Alternative Server Port - Administration interfaces may be seen on a different port on the host. For example Apache Tomcat Administration interface can often &lt;br /&gt;
be seen on port 8080.&lt;br /&gt;
&lt;br /&gt;
* Parameter Tampering - A GET or POST parameter or a cookie variable may be required to enable the administrator functionality. Clues to this&lt;br /&gt;
include the presence of hidden fields such as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;admin&amp;quot; value=&amp;quot;no&amp;quot;&amp;gt; or in a cookie:   Cookie: session_cookie; useradmin=0&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Once an administrative interface has been discovered, a combination of the above techniques may be used to attempt to bypass authentication. If this fails, the&lt;br /&gt;
tester may wish to attempt a brute force attack. In such an instance the tester should be aware of the potential for administrative account lockout if such functionality is present.&lt;br /&gt;
&lt;br /&gt;
== Gray Box testing and example == &lt;br /&gt;
Code should be examined to ensure clear separation of duties and enforcement of user authorization and administration function access. The server and application components should be verified to ensure hardening and validation that they are not configured as the default.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
Default Password list: http://www.governmentsecurity.org/articles/DefaultLoginsandPasswordsforNetworkedDevices.php&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Testing_Project_v3_Roadmap&amp;diff=36989</id>
		<title>OWASP Testing Project v3 Roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Testing_Project_v3_Roadmap&amp;diff=36989"/>
				<updated>2008-08-23T05:20:16Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''OWASP Testing Guide v3 Roadmap'''&lt;br /&gt;
&lt;br /&gt;
* '''26th April 2008: start the new project'''&lt;br /&gt;
OWASP Leaders brainstorming.&lt;br /&gt;
&amp;lt;br&amp;gt;Call for participation.&lt;br /&gt;
&amp;lt;br&amp;gt;[http://www.owasp.org/index.php/OWASP_Testing_Guide_v3_Startup Index brainstorming]&lt;br /&gt;
&amp;lt;br&amp;gt;[http://www.owasp.org/index.php/OWASP_Testing_Guide_v3_Table_of_Contents Index draft]&lt;br /&gt;
&amp;lt;br&amp;gt;Discuss th article content.&lt;br /&gt;
&amp;lt;br&amp;gt;Deadline: Sun 18th May 2008.&lt;br /&gt;
&lt;br /&gt;
* '''20th May 2008'''&lt;br /&gt;
New draft Index&lt;br /&gt;
&lt;br /&gt;
* '''25th May 2008'''&lt;br /&gt;
'''Updated index:'''&lt;br /&gt;
Added or to improve:&lt;br /&gt;
&lt;br /&gt;
(toimp)1. Frontispiece&lt;br /&gt;
&lt;br /&gt;
(toimp)1.1 About the OWASP Testing Guide Project&lt;br /&gt;
&lt;br /&gt;
(new) 2.4 Security requirements test derivation, functional and non functional test requirements, and test cases through use and misuse cases&lt;br /&gt;
&lt;br /&gt;
(new) 2.4.1 Security tests integrated in developers and testers workflows&lt;br /&gt;
&lt;br /&gt;
(new) 2.4.2 Developers' security tests: Unit Tests, component level tests, etc&lt;br /&gt;
&lt;br /&gt;
(new) 2.4.3 Functional testers' security tests: integrated system tests, tests in UAT, and production environment&lt;br /&gt;
&lt;br /&gt;
(new) 2.5 Security test data analysis and reporting: root cause identification and business/role case test data reporting&lt;br /&gt;
&lt;br /&gt;
4. (toimp) Web Application Penetration Testing&lt;br /&gt;
&lt;br /&gt;
4.1 Introduction and Objectives&lt;br /&gt;
&lt;br /&gt;
(new) 4.1.1 Testing Checklist&lt;br /&gt;
&lt;br /&gt;
(toimp) 4.2 Information Gathering&lt;br /&gt;
&lt;br /&gt;
(new)4.2.1 Spiders, Robots and Crawlers&lt;br /&gt;
&lt;br /&gt;
(new) 4.2.2 Search Engine Discovery/Reconnaissance&lt;br /&gt;
&lt;br /&gt;
(new) 4.2.3 Identify application entry points&lt;br /&gt;
&lt;br /&gt;
4.2.3 (toimp) Testing for Web Application Fingerprint&lt;br /&gt;
&lt;br /&gt;
(toimp)4.2.5 Analysis of Error Codes&lt;br /&gt;
&lt;br /&gt;
(new) 4.3 Configuration Management Testing&lt;br /&gt;
&lt;br /&gt;
(toimp) 4.3.1 SSL/TLS Testing (SSL Version, Alghoritms, Key lenght, Digital Cert. Validity&lt;br /&gt;
&lt;br /&gt;
(toimp) 4.3.3 Application Configuration Management Testing&lt;br /&gt;
&lt;br /&gt;
(new) 4.3.4 Testing for misconfiguration&lt;br /&gt;
&lt;br /&gt;
(new) 4.3.7 Infrastructure and Application Admin Interfaces&lt;br /&gt;
&lt;br /&gt;
(toimp)4.4 Business Logic Testing&lt;br /&gt;
&lt;br /&gt;
(toimp)4.5 Authentication Testing&lt;br /&gt;
&lt;br /&gt;
(new)4.5.1 Credentials transport over an encrypted channel&lt;br /&gt;
&lt;br /&gt;
(new) 4.5.2 Testing for user enumeration&lt;br /&gt;
&lt;br /&gt;
(to imp) 4.5.2 Testing for Guessable (Dictionary) User Account&lt;br /&gt;
&lt;br /&gt;
(new) 4.6 Authorization testing&lt;br /&gt;
&lt;br /&gt;
(new) 4.6.1 Testing for Path Traversal&lt;br /&gt;
&lt;br /&gt;
(new)4.6.2 Testing for bypassing authorization schema&lt;br /&gt;
&lt;br /&gt;
(new)4.6.3 Testing for Privilege Escalation&lt;br /&gt;
&lt;br /&gt;
(new)4.7.2 Test the token strength (old 4.5.2 Testing for Cookie and Session Token Manipulation)&lt;br /&gt;
&lt;br /&gt;
(new) 4.7.3 Testing for Cookies attributes&lt;br /&gt;
&lt;br /&gt;
(new)4.8.1 Testing for Reflected Cross Site Scripting&lt;br /&gt;
&lt;br /&gt;
(new)4.8.2 Testing for Stored Cross Site Scripting&lt;br /&gt;
&lt;br /&gt;
(new) 4.8.3 Testing for DOM based Cross Site Scripting&lt;br /&gt;
&lt;br /&gt;
(new)4.8.4 Testing for Cross Site Flashing&lt;br /&gt;
&lt;br /&gt;
(toimp) 4.8.1.1 Testing for XST&lt;br /&gt;
&lt;br /&gt;
(toimp) 4.8.2 Testing for SQL Injection&lt;br /&gt;
&lt;br /&gt;
(toimp) 4.10 Web Services Testing&lt;br /&gt;
&lt;br /&gt;
(new)4.11 Client site testing&lt;br /&gt;
&lt;br /&gt;
(new) 4.11.1 AJAX Testing&lt;br /&gt;
&lt;br /&gt;
(new)4.11.2 Flash Testing&lt;br /&gt;
&lt;br /&gt;
(new)4.11.3 RIA Testing&lt;br /&gt;
&lt;br /&gt;
(toimp: Mat)5. Writing Reports: value the real risk &lt;br /&gt;
&lt;br /&gt;
* '''26th May 2008'''&lt;br /&gt;
Added:&lt;br /&gt;
&amp;lt;br&amp;gt; 4.3.8 Testing for HTTP Methods and XST in Infrastucture and Application Testing section&lt;br /&gt;
&amp;lt;br&amp;gt; Sent Paragraph Template to the list&lt;br /&gt;
&amp;lt;br&amp;gt; Sent new index to the list&lt;br /&gt;
&lt;br /&gt;
* '''28th May 2008'''&lt;br /&gt;
Added:&lt;br /&gt;
New Testing Guide checklist.&lt;br /&gt;
&lt;br /&gt;
* '''30th May 2008'''&lt;br /&gt;
Added:&lt;br /&gt;
&amp;lt;br&amp;gt;Session Fixation&lt;br /&gt;
&amp;lt;br&amp;gt;Discuss abouut new Aspect paper about HTTP verb manipulation&lt;br /&gt;
&lt;br /&gt;
* '''1st June 2008'''&lt;br /&gt;
Les's start writing!&lt;br /&gt;
&lt;br /&gt;
* '''15th June 2008'''&lt;br /&gt;
Added:&lt;br /&gt;
4.1.1 Testing Checklist&amp;lt;br&amp;gt;&lt;br /&gt;
4.2 Information Gathering&amp;lt;br&amp;gt;&lt;br /&gt;
4.2.1 Spiders, Robots and Crawlers&amp;lt;br&amp;gt;&lt;br /&gt;
4.2.3 Identify application entry points &amp;lt;br&amp;gt;&lt;br /&gt;
2.4 Security requirements test derivation,functional and non functional test requirements, and test cases through use and misuse cases&amp;lt;br&amp;gt;&lt;br /&gt;
4.4 Business Logic Testing&amp;lt;br&amp;gt;&lt;br /&gt;
4.6 Authorization testing&amp;lt;br&amp;gt;&lt;br /&gt;
4.5.3 Testing for Guessable (Dictionary) User Account&amp;lt;br&amp;gt;&lt;br /&gt;
4.6 Authorization testing&amp;lt;br&amp;gt;&lt;br /&gt;
4.6.2 Testing for Bypassing Authorization Schema&amp;lt;br&amp;gt;&lt;br /&gt;
4.6.3 Testing for Privilege Escalation&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''29th June 2008'''&lt;br /&gt;
Written (M.Meucci):&lt;br /&gt;
Testing_for_user_enumeration&lt;br /&gt;
&lt;br /&gt;
* '''7th July 2008'''&lt;br /&gt;
Written:&lt;br /&gt;
Testing_for_Default_or_Guessable_User_Account (K.Horvath)&amp;lt;br&amp;gt;&lt;br /&gt;
Testing_for_business_logic (K.Horvath)&lt;br /&gt;
&lt;br /&gt;
* '''9th July 2008'''&lt;br /&gt;
Testing_for_cookies_attributes (K.Horvath)&lt;br /&gt;
&lt;br /&gt;
* '''12th August 2008'''&lt;br /&gt;
Articles reviewed/written (M.Meucci):&amp;lt;br&amp;gt;&lt;br /&gt;
Testing:_Introduction_and_objectives&amp;lt;br&amp;gt;&lt;br /&gt;
Testing_Checklist&amp;lt;br&amp;gt;&lt;br /&gt;
4.3 Configuration Management Testing&amp;lt;br&amp;gt;&lt;br /&gt;
4.2 Information Gathering&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''13 August 2008'''&lt;br /&gt;
Reviewed (M.Meucci):&amp;lt;br&amp;gt;&lt;br /&gt;
Testing_for_business_logic&lt;br /&gt;
Testing_for_SQL_Wildcard_Attacks (Rick.mitchell)&amp;lt;br&amp;gt;&lt;br /&gt;
Added:&amp;lt;br&amp;gt;&lt;br /&gt;
(new: G.Fedon) 4.5.9 Testing Multiple Factors Authentication&amp;lt;br&amp;gt;&lt;br /&gt;
Written (M.Meucci):&amp;lt;br&amp;gt;&lt;br /&gt;
Testing_for_authentication&lt;br /&gt;
&lt;br /&gt;
* '''14 August 2008'''&lt;br /&gt;
Reviewed (M.Meucci):&lt;br /&gt;
Testing_for_credentials_transport&amp;lt;br&amp;gt;&lt;br /&gt;
Written (M.Meucci):&amp;lt;br&amp;gt;&lt;br /&gt;
Testing_for_user_enumeration (M.Mella)&amp;lt;br&amp;gt;&lt;br /&gt;
Testing_for_authorization&amp;lt;br&amp;gt;&lt;br /&gt;
Testing_for_Session_Management&amp;lt;br&amp;gt;&lt;br /&gt;
merged the 2 articles:&amp;lt;br&amp;gt;&lt;br /&gt;
Testing for Session_Management_Schema&amp;lt;br&amp;gt;&lt;br /&gt;
Testing for Cookie and Session Token Manipulation&amp;lt;br&amp;gt;&lt;br /&gt;
Now we have a new one: Testing for Session_Management_Schema&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''15 August 2008'''&lt;br /&gt;
Testing_for_Session_Fixation&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''16th August 2008'''&lt;br /&gt;
Reviewed (M.Cova): &amp;lt;br&amp;gt;&lt;br /&gt;
4.2 Information Gathering &amp;lt;br&amp;gt;&lt;br /&gt;
4.3 Configuration Management Testing&amp;lt;br&amp;gt;&lt;br /&gt;
4.5 Authentication Testing&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''18th August 2008'''&lt;br /&gt;
Reviewed (M.Cova): &amp;lt;br&amp;gt;&lt;br /&gt;
4.6 Authorization testing&amp;lt;br&amp;gt;&lt;br /&gt;
Written (A.van der Stock):&amp;lt;br&amp;gt;&lt;br /&gt;
Testing_for_HTTP_Methods_and_XST (HTTP Verb)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''20th August 2008'''&lt;br /&gt;
Reviewed (M.Cova): &amp;lt;br&amp;gt;&lt;br /&gt;
Web Services&amp;lt;br&amp;gt;&lt;br /&gt;
Written (A.Parata):&amp;lt;br&amp;gt;&lt;br /&gt;
4.8.5.4 MS Access Testing&lt;br /&gt;
&lt;br /&gt;
* '''21st August 2008'''&lt;br /&gt;
Updated (M.Meucci):&amp;lt;br&amp;gt;&lt;br /&gt;
Testing_for_Session_Fixation&amp;lt;br&amp;gt;&lt;br /&gt;
Testing_for_Bypassing_Authorization_Schema&amp;lt;br&amp;gt;&lt;br /&gt;
Testing_for_Privilege_escalation&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''22nd August 2008'''&lt;br /&gt;
Writing (Adam):&lt;br /&gt;
Testing_for_Admin_Interfaces&amp;lt;br&amp;gt;&lt;br /&gt;
Update/Write:&amp;lt;br&amp;gt;&lt;br /&gt;
(imp: M.Meucci -100%) 4.10 Web Services Testing&amp;lt;br&amp;gt;&lt;br /&gt;
(new: M.Meucci -100%) 4.10.1 WS Information Gathering&amp;lt;br&amp;gt;&lt;br /&gt;
(new: M.Meucci -100%) 4.10.2 Testing WSDL&amp;lt;br&amp;gt;&lt;br /&gt;
(imp: M.Meucci -100%)4.10.3 XML Structural Testing&amp;lt;br&amp;gt;&lt;br /&gt;
Improved:&amp;lt;br&amp;gt;&lt;br /&gt;
Testing_for_Data_Validation&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''TODO:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Article to finish: &amp;lt;br&amp;gt;&lt;br /&gt;
(new: M.Meucci - 90% ) 4.1.1 Testing Checklist&amp;lt;br&amp;gt;&lt;br /&gt;
(new:C.Heinrich - 0%)4.2.1 Spiders, Robots and Crawlers&amp;lt;br&amp;gt;&lt;br /&gt;
(new:C.Heinrich - 0%)4.2.2 Search Engine Discovery/Reconnaissance&amp;lt;br&amp;gt;&lt;br /&gt;
(new: Adam -90%) 4.3.7 Infrastructure and Application Admin Interfaces&amp;lt;br&amp;gt;&lt;br /&gt;
(new: M.Meucci, M.Mella - 90%) 4.5.2 Testing for user enumeration&amp;lt;br&amp;gt;&lt;br /&gt;
(new: G.Fedon) 4.5.9 Testing Multiple Factors Authentication&amp;lt;br&amp;gt;&lt;br /&gt;
(new: A.Agarwwal, Kuza55 - 80%) 4.8.3 Testing for DOM based Cross Site Scripting&amp;lt;br&amp;gt;&lt;br /&gt;
(new: A.Agarwwal, S.Di Paola - 0%)4.8.4 Testing for Cross Site Flashing&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Articles to review:&amp;lt;br&amp;gt;&lt;br /&gt;
MS Access Testing&amp;lt;br&amp;gt;&lt;br /&gt;
Testing PostgreSQL&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''Project deadlines:'''&lt;br /&gt;
# 21st May: Project status presentation at the OWASP AppSec Euro 08 Conference in Belgium.&lt;br /&gt;
# 15th June - Participants to report on project status.&lt;br /&gt;
# 24th August - Finish the writing phase.&lt;br /&gt;
# 15th September - Project completion. Participants should deliver final project report.&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Enumerate_Infrastructure_and_Application_Admin_Interfaces_(OTG-CONFIG-005)&amp;diff=36988</id>
		<title>Enumerate Infrastructure and Application Admin Interfaces (OTG-CONFIG-005)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Enumerate_Infrastructure_and_Application_Admin_Interfaces_(OTG-CONFIG-005)&amp;diff=36988"/>
				<updated>2008-08-23T05:18:57Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
'''This is a draft of a section of the new Testing Guide v3'''&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Administrator interfaces may be present in the application or on the application server to allow certain users to undertake privileged activities on the site. Tests should be undertaken to reveal if and how this privileged functionality can be accessed by an unauthorized or standard user.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
An application may require an administrator interface to enable a privileged user to access functionality that may make changes to how the site functions. Such changes may include:&lt;br /&gt;
&lt;br /&gt;
- user account provisioning&amp;lt;br&amp;gt;&lt;br /&gt;
- Site design and layout&amp;lt;br&amp;gt;&lt;br /&gt;
- data manipultion&amp;lt;br&amp;gt;&lt;br /&gt;
- configuration changes&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In many instances, such interfaces are usually implemented with little thought of how to separate them from the normal users of the site. Testing is aimed at discovering these administrator interfaces and accessing functionality intended for the privileged users. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
The following describes vectors that may be used to test for the presence of administrative interfaces. These techniques may also be used for testing for related issues including privilege escalation and are described elsewhere in this guide in greater detail:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Directory and file Enumeration - An administrative interface may be present but not visibly available to the tester. Attempting to guess the path of the administrative interface may be as simple as requesting: &lt;br /&gt;
/admin or /administrator etc..&amp;lt;br&amp;gt;&lt;br /&gt;
A tester may have to also identify the filename of the administration page. Forcible browsing to the identified page may provide access to the interface.&lt;br /&gt;
&lt;br /&gt;
* Comments and links in Source - Many sites use common code that is loaded for all site users. By examining all source sent to the client, links to administrator functionality may be discovered and should be investigated. &lt;br /&gt;
&lt;br /&gt;
* Reviewing Server and Application Documentation - If the application server or application is deployed in its default configuration it may be possible&lt;br /&gt;
to access the administration interface using information described in configuration or help documentation. Default password lists should be consulted if an administrative interface is found and credentials are required.&lt;br /&gt;
&lt;br /&gt;
* Alternative Server Port - Administration interfaces may be seen on a different port on the host. For example Apache Tomcat Administration interface can often &lt;br /&gt;
be seen on port 8080.&lt;br /&gt;
&lt;br /&gt;
* Parameter Tampering - A GET or POST parameter or a cookie variable may be required to enable the administrator functionality. Clues to this&lt;br /&gt;
include the presence of hidden fields such as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;admin&amp;quot; value=&amp;quot;no&amp;quot;&amp;gt; or: Cookie: session_cookie; useradmin=0&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Once an administrative interface has been discovered, a combination of the above techniques may be used to attempt to bypass authentication. If this fails, the&lt;br /&gt;
tester may wish to attempt a brute force attack. In such an instance the tester should be aware of the potential for administrative account lockout if such functionality is present.&lt;br /&gt;
&lt;br /&gt;
== Gray Box testing and example == &lt;br /&gt;
Code should be examined to ensure clear separation of duties and enforcement of user authorization and administration function access. The server and application components should be verified to ensure hardening and validation that they are not configured as the default.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
Default Password list: http://www.governmentsecurity.org/articles/DefaultLoginsandPasswordsforNetworkedDevices.php&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Enumerate_Infrastructure_and_Application_Admin_Interfaces_(OTG-CONFIG-005)&amp;diff=36987</id>
		<title>Enumerate Infrastructure and Application Admin Interfaces (OTG-CONFIG-005)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Enumerate_Infrastructure_and_Application_Admin_Interfaces_(OTG-CONFIG-005)&amp;diff=36987"/>
				<updated>2008-08-23T05:08:25Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Gray Box testing and example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
'''This is a draft of a section of the new Testing Guide v3'''&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Administrator interfaces may be present in the application or on the application server to allow certain users to undertake privileged activities on the site. Tests should be undertaken to reveal if and how this privileged functionality can be accessed by an unauthorized or standard user.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
An application may require an administrator interface to enable a privileged user to access functionality that may make changes to how the site functions. Such changes may include:&lt;br /&gt;
&lt;br /&gt;
- user account provisioning&amp;lt;br&amp;gt;&lt;br /&gt;
- Site design and layout&amp;lt;br&amp;gt;&lt;br /&gt;
- data manipultion&amp;lt;br&amp;gt;&lt;br /&gt;
- configuration changes&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In many instances, such interfaces are usually implemented with little thought of how to separate them from the normal users of the site. Testing is aimed at discovering these administrator interfaces and accessing functionality intended for the privileged users. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
The following describes vectors that may be used to test for the presence of administrative interfaces. These techniques may also be used for testing for related issues including privilege escalation and are described elsewhere in this guide in greater detail:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Directory and file Enumeration - An administrative interface may be present but not visibly available to the tester. Attempting to guess the path of the administrative interface may be as simple as requesting: &lt;br /&gt;
/admin or /administrator etc..&amp;lt;br&amp;gt;&lt;br /&gt;
A tester may have to also identify the filename of the administration page. Forcible browsing to the identified page may provide access to the interface.&lt;br /&gt;
&lt;br /&gt;
* Comments and links in Source - Many sites use common code that is loaded for all site users. By examining all source sent to the client, links to administrator functionality may be discovered and should be investigated. &lt;br /&gt;
&lt;br /&gt;
* Reviewing Server and Application Documentation - If the application server or application is deployed in its default configuration it may be possible&lt;br /&gt;
to access the administration interface using information described in configuration or help documentation. Default password lists should be consulted if an administrative interface is found and credentials are required.&lt;br /&gt;
&lt;br /&gt;
* Alternative Server Port - Administration interfaces may be seen on a different port on the host. For example Apache Tomcat Administration interface can often &lt;br /&gt;
be seen on port 8080.&lt;br /&gt;
&lt;br /&gt;
* Parameter Tampering - A GET or POST parameter or a cookie variable may be required to enable the administrator functionality. Clues to this&lt;br /&gt;
include the presence of hidden fields such as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;admin&amp;quot; value=&amp;quot;no&amp;quot;&amp;gt; or: Cookie: session_cookie; useradmin=0&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Once an administrative interface has been discovered, a combination of the above techniques may be used to attempt to bypass authentication. If this fails, the&lt;br /&gt;
tester may wish to attempt a brute force attack. In such an instance the tester should be aware of the potential for administrative account lockout if such functionality is present.&lt;br /&gt;
&lt;br /&gt;
== Gray Box testing and example == &lt;br /&gt;
Code should be examined to ensure clear separation of duties and enforcement of user authorization and administration function access. The server and application components should be verified to ensure hardening and validation that they are not configured as the default.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Enumerate_Infrastructure_and_Application_Admin_Interfaces_(OTG-CONFIG-005)&amp;diff=36984</id>
		<title>Enumerate Infrastructure and Application Admin Interfaces (OTG-CONFIG-005)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Enumerate_Infrastructure_and_Application_Admin_Interfaces_(OTG-CONFIG-005)&amp;diff=36984"/>
				<updated>2008-08-23T04:19:17Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Black Box testing and example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
'''This is a draft of a section of the new Testing Guide v3'''&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Administrator interfaces may be present in the application or on the application server to allow certain users to undertake privileged activities on the site. Tests should be undertaken to reveal if and how this privileged functionality can be accessed by an unauthorized or standard user.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
An application may require an administrator interface to enable a privileged user to access functionality that may make changes to how the site functions. Such changes may include:&lt;br /&gt;
&lt;br /&gt;
- user account provisioning&amp;lt;br&amp;gt;&lt;br /&gt;
- Site design and layout&amp;lt;br&amp;gt;&lt;br /&gt;
- data manipultion&amp;lt;br&amp;gt;&lt;br /&gt;
- configuration changes&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In many instances, such interfaces are usually implemented with little thought of how to separate them from the normal users of the site. Testing is aimed at discovering these administrator interfaces and accessing functionality intended for the privileged users. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
The following describes vectors that may be used to test for the presence of administrative interfaces. These techniques may also be used for testing for related issues including privilege escalation and are described elsewhere in this guide in greater detail:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Directory and file Enumeration - An administrative interface may be present but not visibly available to the tester. Attempting to guess the path of the administrative interface may be as simple as requesting: &lt;br /&gt;
/admin or /administrator etc..&amp;lt;br&amp;gt;&lt;br /&gt;
A tester may have to also identify the filename of the administration page. Forcible browsing to the identified page may provide access to the interface.&lt;br /&gt;
&lt;br /&gt;
* Comments and links in Source - Many sites use common code that is loaded for all site users. By examining all source sent to the client, links to administrator functionality may be discovered and should be investigated. &lt;br /&gt;
&lt;br /&gt;
* Reviewing Server and Application Documentation - If the application server or application is deployed in its default configuration it may be possible&lt;br /&gt;
to access the administration interface using information described in configuration or help documentation. Default password lists should be consulted if an administrative interface is found and credentials are required.&lt;br /&gt;
&lt;br /&gt;
* Alternative Server Port - Administration interfaces may be seen on a different port on the host. For example Apache Tomcat Administration interface can often &lt;br /&gt;
be seen on port 8080.&lt;br /&gt;
&lt;br /&gt;
* Parameter Tampering - A GET or POST parameter or a cookie variable may be required to enable the administrator functionality. Clues to this&lt;br /&gt;
include the presence of hidden fields such as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;admin&amp;quot; value=&amp;quot;no&amp;quot;&amp;gt; or: Cookie: session_cookie; useradmin=0&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Once an administrative interface has been discovered, a combination of the above techniques may be used to attempt to bypass authentication. If this fails, the&lt;br /&gt;
tester may wish to attempt a brute force attack. In such an instance the tester should be aware of the potential for administrative account lockout if such functionality is present.&lt;br /&gt;
&lt;br /&gt;
== Gray Box testing and example == &lt;br /&gt;
'''Testing for Topic X vulnerabilities:'''&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Enumerate_Infrastructure_and_Application_Admin_Interfaces_(OTG-CONFIG-005)&amp;diff=36807</id>
		<title>Enumerate Infrastructure and Application Admin Interfaces (OTG-CONFIG-005)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Enumerate_Infrastructure_and_Application_Admin_Interfaces_(OTG-CONFIG-005)&amp;diff=36807"/>
				<updated>2008-08-22T04:05:42Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Description of the Issue */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
'''This is a draft of a section of the new Testing Guide v3'''&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Administrator interfaces may be present in the application or on the application server to allow certain users to undertake privileged activities on the site. Tests should be undertaken to reveal if and how this privileged functionality can be accessed by an unauthorized or standard user.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
An application may require an administrator interface to enable a privileged user to access functionality that may make changes to how the site functions. Such changes may include:&lt;br /&gt;
&lt;br /&gt;
- user account provisioning&amp;lt;br&amp;gt;&lt;br /&gt;
- Site design and layout&amp;lt;br&amp;gt;&lt;br /&gt;
- data manipultion&amp;lt;br&amp;gt;&lt;br /&gt;
- configuration changes&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In many instances, such interfaces are usually implemented with little thought of how to separate them from the normal users of the site. Testing is aimed at discovering these administrator interfaces and accessing functionality intended for the privileged users. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
'''Testing for Topic X vulnerabilities:''' &amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Gray Box testing and example == &lt;br /&gt;
'''Testing for Topic X vulnerabilities:'''&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Enumerate_Infrastructure_and_Application_Admin_Interfaces_(OTG-CONFIG-005)&amp;diff=36806</id>
		<title>Enumerate Infrastructure and Application Admin Interfaces (OTG-CONFIG-005)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Enumerate_Infrastructure_and_Application_Admin_Interfaces_(OTG-CONFIG-005)&amp;diff=36806"/>
				<updated>2008-08-22T04:05:09Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Description of the Issue */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
'''This is a draft of a section of the new Testing Guide v3'''&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Administrator interfaces may be present in the application or on the application server to allow certain users to undertake privileged activities on the site. Tests should be undertaken to reveal if and how this privileged functionality can be accessed by an unauthorized or standard user.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
An application may require an administrator interface to enable a privileged user to access functionality that may make changes to how the site functions. Such changes may include:&lt;br /&gt;
&lt;br /&gt;
- user account provisioning&lt;br /&gt;
- Site design and layout&lt;br /&gt;
- data manipultion &lt;br /&gt;
- configuration changes&lt;br /&gt;
&lt;br /&gt;
In many instances, such interfaces are usually implemented with little thought of how to separate them from the normal users of the site. Testing is aimed at discovering these administrator interfaces and accessing functionality intended for the privileged users. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
'''Testing for Topic X vulnerabilities:''' &amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Gray Box testing and example == &lt;br /&gt;
'''Testing for Topic X vulnerabilities:'''&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Enumerate_Infrastructure_and_Application_Admin_Interfaces_(OTG-CONFIG-005)&amp;diff=36805</id>
		<title>Enumerate Infrastructure and Application Admin Interfaces (OTG-CONFIG-005)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Enumerate_Infrastructure_and_Application_Admin_Interfaces_(OTG-CONFIG-005)&amp;diff=36805"/>
				<updated>2008-08-22T03:55:41Z</updated>
		
		<summary type="html">&lt;p&gt;Mr fusion: /* Brief Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v3}}&lt;br /&gt;
&lt;br /&gt;
'''This is a draft of a section of the new Testing Guide v3'''&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Administrator interfaces may be present in the application or on the application server to allow certain users to undertake privileged activities on the site. Tests should be undertaken to reveal if and how this privileged functionality can be accessed by an unauthorized or standard user.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
...here: Short Description of the Issue: Topic and Explanation&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
'''Testing for Topic X vulnerabilities:''' &amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Gray Box testing and example == &lt;br /&gt;
'''Testing for Topic X vulnerabilities:'''&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mr fusion</name></author>	</entry>

	</feed>