<?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=Eduardo+Castellanos</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=Eduardo+Castellanos"/>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php/Special:Contributions/Eduardo_Castellanos"/>
		<updated>2026-04-17T20:43:17Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.2</generator>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=User:Eduardo_Castellanos&amp;diff=194133</id>
		<title>User:Eduardo Castellanos</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=User:Eduardo_Castellanos&amp;diff=194133"/>
				<updated>2015-04-28T10:24:39Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Former Web Application Developer. &lt;br /&gt;
&lt;br /&gt;
Graduated from Universidad del Valle de Guatemala in 2009. &lt;br /&gt;
Obtained the title of: Licenciatura en Ingeniería en Ciencias de la Computación. &lt;br /&gt;
&lt;br /&gt;
Worked as a Security Analyst for Sistemas Aplicativos S.A. / Verizon Business Security Solutions.&lt;/div&gt;</summary>
		<author><name>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=194132</id>
		<title>Test RIA cross domain policy (OTG-CONFIG-008)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=194132"/>
				<updated>2015-04-28T10:22:30Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
Rich Internet Applications (RIA) have adopted Adobe's crossdomain.xml policy files to allow for controlled cross domain access to data and service consumption using technologies such as Oracle Java, Silverlight, and Adobe Flash. Therefore, a domain can grant remote access to its services from a different domain. However, often the policy files that describe the access restrictions are poorly configured. Poor configuration of the policy files enables Cross-site Request Forgery attacks, and may allow third parties to access sensitive data meant for the user. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== What are cross-domain policy files? ===&lt;br /&gt;
A cross-domain policy file specifies the permissions that a web client such as Java, Adobe Flash, Adobe Reader, etc. use to access data across different domains. For Silverlight, Microsoft adopted a subset of the Adobe's crossdomain.xml, and additionally created it's own cross-domain policy file: clientaccesspolicy.xml.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Whenever a web client detects that a resource has to be requested from other domain, it will first look for a policy file in the target domain to determine if performing cross-domain requests, including headers, and socket-based connections are allowed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Master policy files are located at the domain's root. A client may be instructed to load a different policy file but it will always check the master policy file first to ensure that the master policy file permits the requested policy file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Crossdomain.xml vs. Clientaccesspolicy.xml ====&lt;br /&gt;
Most RIA applications support crossdomain.xml. However in the case of Silverlight, it will only work if the crossdomain.xml specifies that access is allowed from any domain. For more granular control with Silverlight, clientaccesspolicy.xml must be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Policy files grant several types of permissions:&lt;br /&gt;
* Accepted policy files (Master policy files can disable or restrict specific policy files)&lt;br /&gt;
* Sockets permissions&lt;br /&gt;
* Header permissions&lt;br /&gt;
* HTTP/HTTPS access permissions&lt;br /&gt;
* Allowing access based on cryptographic credentials&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An example of an overly permissive policy file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE cross-domain-policy SYSTEM&lt;br /&gt;
&amp;quot;http://www.adobe.com/xml/dtds/cross-domain-policy.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cross-domain-policy&amp;gt;&lt;br /&gt;
   &amp;lt;site-control permitted-cross-domain-policies=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-http-request-headers-from domain=&amp;quot;*&amp;quot; headers=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How can cross domain policy files can be abused? ===&lt;br /&gt;
* Overly permissive cross-domain policies.&lt;br /&gt;
* Generating server responses that may be treated as cross-domain policy files.&lt;br /&gt;
* Using file upload functionality to upload files that may be treated as cross-domain policy files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Impact of abusing cross-domain access ===&lt;br /&gt;
* Defeat CSRF protections.&lt;br /&gt;
* Read data restricted or otherwise protected by cross-origin policies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Test ==&lt;br /&gt;
'''Testing for RIA policy files weakness:''' &amp;lt;br&amp;gt;&lt;br /&gt;
To test for RIA policy file weakness the tester should try to retrieve the policy files crossdomain.xml and clientaccesspolicy.xml from the application's root, and from every folder found.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For example, if the application's URL is http://www.owasp.org, the tester should try to download the files http://www.owasp.org/crossdomain.xml and http://www.owasp.org/clientaccesspolicy.xml.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
After retrieving all the policy files, the permissions allowed should be be checked under the least privilege principle. Requests should only come from the domains, ports, or protocols that are necessary. Overly permissive policies should be avoided. Policies with &amp;quot;*&amp;quot; in them should be closely examined.  &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;cross-domain-policy&amp;gt; &lt;br /&gt;
 &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; /&amp;gt; &lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
*A list of policy files found. &amp;lt;br&amp;gt;&lt;br /&gt;
*A list of weak settings in the policies.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
* Nikto&lt;br /&gt;
* OWASP Zed Attack Proxy Project&lt;br /&gt;
* W3af&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
* UCSD: &amp;quot;Analyzing the Crossdomain Policies of Flash Applications&amp;quot; - http://cseweb.ucsd.edu/~hovav/dist/crossdomain.pdf&lt;br /&gt;
* Adobe: &amp;quot;Cross-domain policy file specification&amp;quot; - http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html&lt;br /&gt;
* Adobe: &amp;quot;Cross-domain policy file usage recommendations for Flash Player&amp;quot; - http://www.adobe.com/devnet/flashplayer/articles/cross_domain_policy.html&lt;br /&gt;
* Oracle: &amp;quot;Cross-Domain XML Support&amp;quot; - http://www.oracle.com/technetwork/java/javase/plugin2-142482.html#CROSSDOMAINXML&lt;br /&gt;
* MSDN: &amp;quot;Making a Service Available Across Domain Boundaries&amp;quot; - http://msdn.microsoft.com/en-us/library/cc197955(v=vs.95).aspx&lt;br /&gt;
* MSDN: &amp;quot;Network Security Access Restrictions in Silverlight&amp;quot; - http://msdn.microsoft.com/en-us/library/cc645032(v=vs.95).aspx&lt;br /&gt;
* Stefan Esser: &amp;quot;Poking new holes with Flash Crossdomain Policy Files&amp;quot; http://www.hardened-php.net/library/poking_new_holes_with_flash_crossdomain_policy_files.html&lt;br /&gt;
* Jeremiah Grossman: &amp;quot;Crossdomain.xml Invites Cross-site Mayhem&amp;quot; http://jeremiahgrossman.blogspot.com/2008/05/crossdomainxml-invites-cross-site.html&lt;br /&gt;
* Google Doctype: &amp;quot;Introduction to Flash security &amp;quot; - http://code.google.com/p/doctype-mirror/wiki/ArticleFlashSecurity&lt;/div&gt;</summary>
		<author><name>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Review_webpage_comments_and_metadata_for_information_leakage_(OTG-INFO-005)&amp;diff=170071</id>
		<title>Review webpage comments and metadata for information leakage (OTG-INFO-005)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Review_webpage_comments_and_metadata_for_information_leakage_(OTG-INFO-005)&amp;diff=170071"/>
				<updated>2014-03-13T22:40:28Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
It is very common, and even recommended, for programmers to include detailed comments and metadata on their source code. However, comments and metadata included into the HTML code might reveal, to a potential attacker, internal information that should not be available to them. Comments and metadata review should be done in order to determine if any information is being leaked.&lt;br /&gt;
&lt;br /&gt;
== Test Objectives ==&lt;br /&gt;
&lt;br /&gt;
Review webpage comments and metadata to better understand the application and to find any information leakage.&lt;br /&gt;
&lt;br /&gt;
HTML comments are also used by the developers to include debugging information about the application. Sometimes they forget about the comments and they leave them on in production. You should look for HTML comments which start with &amp;quot;&amp;amp;lt;!--&amp;quot; and end with &amp;quot;--&amp;amp;gt;&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
== How to Test ==&lt;br /&gt;
&lt;br /&gt;
=== Black Box testing and example ===&lt;br /&gt;
&lt;br /&gt;
Check HTML source code for comments containing sensitive information which can help the attacker gain more insight about the application. It might be SQL code, usernames and passwords, internal IP addresses, or debugging information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;table2&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col1&amp;quot;&amp;gt;1&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col2&amp;quot;&amp;gt;Mary&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col1&amp;quot;&amp;gt;2&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col2&amp;quot;&amp;gt;Peter&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col1&amp;quot;&amp;gt;3&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col2&amp;quot;&amp;gt;Joe&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Query: SELECT id, name FROM app.users WHERE active='1' --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You could even find something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- Use the DB administrator password for testing:  f@keP@a$$w0rD --&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check HTML version information for valid version numbers and Data Type Definition (DTD) URLs&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01//EN&amp;quot; &amp;quot;http://www.w3.org/TR/html4/strict.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;strict.dtd&amp;quot; -- default strict DTD &lt;br /&gt;
* &amp;quot;loose.dtd&amp;quot; -- loose DTD &lt;br /&gt;
* &amp;quot;frameset.dtd&amp;quot; -- DTD for frameset documents &lt;br /&gt;
&lt;br /&gt;
Some Meta tags do not provide active attack vectors but instead allow an attacker to profile an application to &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;META name=&amp;quot;Author&amp;quot; content=&amp;quot;Andrew Muller&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some Meta tags alter HTTP response headers, such as http-equiv which sets an HTTP response header based on the the content attribute of a meta element, such as:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;META http-equiv=&amp;quot;Expires&amp;quot; content=&amp;quot;Fri, 21 Dec 2012 12:34:56 GMT&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which will result in the HTTP header:&lt;br /&gt;
&lt;br /&gt;
 Expires: Fri, 21 Dec 2012 12:34:56 GMT&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;META http-equiv=&amp;quot;Cache-Control&amp;quot; content=&amp;quot;no-cache&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will result in &lt;br /&gt;
&lt;br /&gt;
 Cache-Control: no-cache&lt;br /&gt;
&lt;br /&gt;
Test to see if this can be used to conduct injection attacks (e.g. CRLF attack). It can also help determine the level of data leakage via the browser cache.&lt;br /&gt;
&lt;br /&gt;
A common (but not WCAG compliant) Meta tag is the refresh.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;META http-equiv=&amp;quot;Refresh&amp;quot; content=&amp;quot;15;URL=https://www.owasp.org/index.html&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A common use for Meta tag is to specify keywords that a search engine may use to improve the quality of search results. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;META name=&amp;quot;keywords&amp;quot; lang=&amp;quot;en-us&amp;quot; content=&amp;quot;OWASP, security, sunshine, lollipops&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although most webservers manage search engine indexing via the robots.txt file, it can also be managed by Meta tags. The tag below will advise robots to not index and not follow links on the HTML page containing the tag. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;META name=&amp;quot;robots&amp;quot; content=&amp;quot;none&amp;quot;&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The Platform for Internet Content Selection (PICS) and Protocol for Web Description Resources (POWDER) provide infrastructure for associating meta data with Internet content.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Gray Box testing and example === &lt;br /&gt;
Not applicable. &lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
* Wget&lt;br /&gt;
* Browser &amp;quot;view source&amp;quot; function&lt;br /&gt;
* Eyeballs&lt;br /&gt;
* Curl&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&lt;br /&gt;
&lt;br /&gt;
[1] http://www.w3.org/TR/1999/REC-html401-19991224 HTML version 4.01&lt;br /&gt;
&lt;br /&gt;
[2] http://www.w3.org/TR/2010/REC-xhtml-basic-20101123/ XHTML (for small devices)&lt;br /&gt;
&lt;br /&gt;
[3] http://www.w3.org/TR/html5/ HTML version 5&lt;/div&gt;</summary>
		<author><name>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Review_webpage_comments_and_metadata_for_information_leakage_(OTG-INFO-005)&amp;diff=170069</id>
		<title>Review webpage comments and metadata for information leakage (OTG-INFO-005)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Review_webpage_comments_and_metadata_for_information_leakage_(OTG-INFO-005)&amp;diff=170069"/>
				<updated>2014-03-13T22:36:12Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
It is very common, and even recommended, for programmers to include detailed comments and metadata on their source code. However, comments and metadata included into the HTML code might reveal, to a potential attacker, internal information that should not be available to them. Comments and metadata review should be done in order to determine if any information is being leaked.&lt;br /&gt;
&lt;br /&gt;
== Test Objectives ==&lt;br /&gt;
&lt;br /&gt;
Review webpage comments and metadata to better understand the application and to find any information leakage.&lt;br /&gt;
&lt;br /&gt;
HTML comments are also used by the developers to include debugging information about the application. Sometimes they forget about the comments and they leave them on in production. You should look for HTML comments which start with &amp;quot;&amp;amp;lt;!--&amp;quot; and end with &amp;quot;--&amp;amp;gt;&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
== How to Test ==&lt;br /&gt;
&lt;br /&gt;
=== Black Box testing and example ===&lt;br /&gt;
&lt;br /&gt;
Check HTML source code for comments containing sensitive information which can help the attacker gain more insight about the application. It might be SQL code, usernames and passwords, internal IP addresses, or debugging information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;table2&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col1&amp;quot;&amp;gt;1&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col2&amp;quot;&amp;gt;Mary&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col1&amp;quot;&amp;gt;2&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col2&amp;quot;&amp;gt;Peter&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col1&amp;quot;&amp;gt;3&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col2&amp;quot;&amp;gt;Joe&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Query: SELECT id, name FROM app.users WHERE active='1' --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Check HTML version information for valid version numbers and Data Type Definition (DTD) URLs&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01//EN&amp;quot; &amp;quot;http://www.w3.org/TR/html4/strict.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;strict.dtd&amp;quot; -- default strict DTD &lt;br /&gt;
* &amp;quot;loose.dtd&amp;quot; -- loose DTD &lt;br /&gt;
* &amp;quot;frameset.dtd&amp;quot; -- DTD for frameset documents &lt;br /&gt;
&lt;br /&gt;
Some Meta tags do not provide active attack vectors but instead allow an attacker to profile an application to &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;META name=&amp;quot;Author&amp;quot; content=&amp;quot;Andrew Muller&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some Meta tags alter HTTP response headers, such as http-equiv which sets an HTTP response header based on the the content attribute of a meta element, such as:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;META http-equiv=&amp;quot;Expires&amp;quot; content=&amp;quot;Fri, 21 Dec 2012 12:34:56 GMT&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which will result in the HTTP header:&lt;br /&gt;
&lt;br /&gt;
 Expires: Fri, 21 Dec 2012 12:34:56 GMT&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;META http-equiv=&amp;quot;Cache-Control&amp;quot; content=&amp;quot;no-cache&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will result in &lt;br /&gt;
&lt;br /&gt;
 Cache-Control: no-cache&lt;br /&gt;
&lt;br /&gt;
Test to see if this can be used to conduct injection attacks (e.g. CRLF attack). It can also help determine the level of data leakage via the browser cache.&lt;br /&gt;
&lt;br /&gt;
A common (but not WCAG compliant) Meta tag is the refresh.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;META http-equiv=&amp;quot;Refresh&amp;quot; content=&amp;quot;15;URL=https://www.owasp.org/index.html&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A common use for Meta tag is to specify keywords that a search engine may use to improve the quality of search results. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;META name=&amp;quot;keywords&amp;quot; lang=&amp;quot;en-us&amp;quot; content=&amp;quot;OWASP, security, sunshine, lollipops&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although most webservers manage search engine indexing via the robots.txt file, it can also be managed by Meta tags. The tag below will advise robots to not index and not follow links on the HTML page containing the tag. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;META name=&amp;quot;robots&amp;quot; content=&amp;quot;none&amp;quot;&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The Platform for Internet Content Selection (PICS) and Protocol for Web Description Resources (POWDER) provide infrastructure for associating meta data with Internet content.&lt;br /&gt;
&lt;br /&gt;
 examples&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Gray Box testing and example === &lt;br /&gt;
Not applicable. &lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
* Wget&lt;br /&gt;
* Browser &amp;quot;view source&amp;quot; function&lt;br /&gt;
* Eyeballs&lt;br /&gt;
* Curl&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&lt;br /&gt;
&lt;br /&gt;
[1] http://www.w3.org/TR/1999/REC-html401-19991224 HTML version 4.01&lt;br /&gt;
&lt;br /&gt;
[2] http://www.w3.org/TR/2010/REC-xhtml-basic-20101123/ XHTML (for small devices)&lt;br /&gt;
&lt;br /&gt;
[3] http://www.w3.org/TR/html5/ HTML version 5&lt;/div&gt;</summary>
		<author><name>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Review_webpage_comments_and_metadata_for_information_leakage_(OTG-INFO-005)&amp;diff=170068</id>
		<title>Review webpage comments and metadata for information leakage (OTG-INFO-005)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Review_webpage_comments_and_metadata_for_information_leakage_(OTG-INFO-005)&amp;diff=170068"/>
				<updated>2014-03-13T22:34:25Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
It is very common, and even recommended, for programmers to include detailed comments and metadata on their source code. However, comments and metadata included into the HTML code might reveal, to a potential attacker, internal information that should not be available to them. Comments and metadata review should be done in order to determine if any information is being leaked.&lt;br /&gt;
&lt;br /&gt;
== Test Objectives ==&lt;br /&gt;
&lt;br /&gt;
Review webpage comments and metadata to better understand the application and to find any information leakage.&lt;br /&gt;
&lt;br /&gt;
HTML comments are also used by the developers to include debugging information about the application. Sometimes they forget about the comments and they leave them on in production. You should look for HTML comments which start with &amp;quot;&amp;amp;lt;!--&amp;quot; and end with &amp;quot;--&amp;amp;gt;&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
== How to Test ==&lt;br /&gt;
&lt;br /&gt;
=== Black Box testing and example ===&lt;br /&gt;
&lt;br /&gt;
Check HTML comments for sensitive information which can help the attacker gain more insight about the application.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;table2&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col1&amp;quot;&amp;gt;1&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col2&amp;quot;&amp;gt;Mary&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col1&amp;quot;&amp;gt;2&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col2&amp;quot;&amp;gt;Peter&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col1&amp;quot;&amp;gt;3&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col2&amp;quot;&amp;gt;Joe&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Query: SELECT id, name FROM app.users WHERE active='1' --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Check HTML version information for valid version numbers and Data Type Definition (DTD) URLs&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01//EN&amp;quot; &amp;quot;http://www.w3.org/TR/html4/strict.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;strict.dtd&amp;quot; -- default strict DTD &lt;br /&gt;
* &amp;quot;loose.dtd&amp;quot; -- loose DTD &lt;br /&gt;
* &amp;quot;frameset.dtd&amp;quot; -- DTD for frameset documents &lt;br /&gt;
&lt;br /&gt;
Some Meta tags do not provide active attack vectors but instead allow an attacker to profile an application to &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;META name=&amp;quot;Author&amp;quot; content=&amp;quot;Andrew Muller&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some Meta tags alter HTTP response headers, such as http-equiv which sets an HTTP response header based on the the content attribute of a meta element, such as:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;META http-equiv=&amp;quot;Expires&amp;quot; content=&amp;quot;Fri, 21 Dec 2012 12:34:56 GMT&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which will result in the HTTP header:&lt;br /&gt;
&lt;br /&gt;
 Expires: Fri, 21 Dec 2012 12:34:56 GMT&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;META http-equiv=&amp;quot;Cache-Control&amp;quot; content=&amp;quot;no-cache&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will result in &lt;br /&gt;
&lt;br /&gt;
 Cache-Control: no-cache&lt;br /&gt;
&lt;br /&gt;
Test to see if this can be used to conduct injection attacks (e.g. CRLF attack). It can also help determine the level of data leakage via the browser cache.&lt;br /&gt;
&lt;br /&gt;
A common (but not WCAG compliant) Meta tag is the refresh.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;META http-equiv=&amp;quot;Refresh&amp;quot; content=&amp;quot;15;URL=https://www.owasp.org/index.html&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A common use for Meta tag is to specify keywords that a search engine may use to improve the quality of search results. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;META name=&amp;quot;keywords&amp;quot; lang=&amp;quot;en-us&amp;quot; content=&amp;quot;OWASP, security, sunshine, lollipops&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although most webservers manage search engine indexing via the robots.txt file, it can also be managed by Meta tags. The tag below will advise robots to not index and not follow links on the HTML page containing the tag. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;META name=&amp;quot;robots&amp;quot; content=&amp;quot;none&amp;quot;&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The Platform for Internet Content Selection (PICS) and Protocol for Web Description Resources (POWDER) provide infrastructure for associating meta data with Internet content.&lt;br /&gt;
&lt;br /&gt;
 examples&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Gray Box testing and example === &lt;br /&gt;
Not applicable. &lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
* Wget&lt;br /&gt;
* Browser &amp;quot;view source&amp;quot; function&lt;br /&gt;
* Eyeballs&lt;br /&gt;
* Curl&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&lt;br /&gt;
&lt;br /&gt;
[1] http://www.w3.org/TR/1999/REC-html401-19991224 HTML version 4.01&lt;br /&gt;
&lt;br /&gt;
[2] http://www.w3.org/TR/2010/REC-xhtml-basic-20101123/ XHTML (for small devices)&lt;br /&gt;
&lt;br /&gt;
[3] http://www.w3.org/TR/html5/ HTML version 5&lt;/div&gt;</summary>
		<author><name>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Review_webpage_comments_and_metadata_for_information_leakage_(OTG-INFO-005)&amp;diff=170067</id>
		<title>Review webpage comments and metadata for information leakage (OTG-INFO-005)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Review_webpage_comments_and_metadata_for_information_leakage_(OTG-INFO-005)&amp;diff=170067"/>
				<updated>2014-03-13T22:33:26Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
It is very common, and even recommended, for programmers to include detailed comments and metadata on their source code. However, comments and metadata included into the HTML code might reveal, to a potential attacker, internal information that should not be available to them. Comments and metadata review should be done in order to determine if any information is being leaked.&lt;br /&gt;
&lt;br /&gt;
== Test Objectives ==&lt;br /&gt;
&lt;br /&gt;
Review webpage comments and metadata to better understand the application and to find any information leakage.&lt;br /&gt;
&lt;br /&gt;
HTML comments are also used by the developers to include debugging information about the application. Sometimes they forget about the comments and they leave them on in production. You should look for HTML comments which start with &amp;quot;&amp;lt;!--&amp;quot; and end with &amp;quot;--&amp;gt;&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
== How to Test ==&lt;br /&gt;
&lt;br /&gt;
=== Black Box testing and example ===&lt;br /&gt;
&lt;br /&gt;
Check HTML comments for sensitive information which can help the attacker gain more insight about the application.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;table2&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col1&amp;quot;&amp;gt;1&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col2&amp;quot;&amp;gt;Mary&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col1&amp;quot;&amp;gt;2&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col2&amp;quot;&amp;gt;Peter&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col1&amp;quot;&amp;gt;3&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col2&amp;quot;&amp;gt;Joe&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Query: SELECT id, name FROM app.users WHERE active='1' --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Check HTML version information for valid version numbers and Data Type Definition (DTD) URLs&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01//EN&amp;quot; &amp;quot;http://www.w3.org/TR/html4/strict.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;strict.dtd&amp;quot; -- default strict DTD &lt;br /&gt;
* &amp;quot;loose.dtd&amp;quot; -- loose DTD &lt;br /&gt;
* &amp;quot;frameset.dtd&amp;quot; -- DTD for frameset documents &lt;br /&gt;
&lt;br /&gt;
Some Meta tags do not provide active attack vectors but instead allow an attacker to profile an application to &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;META name=&amp;quot;Author&amp;quot; content=&amp;quot;Andrew Muller&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some Meta tags alter HTTP response headers, such as http-equiv which sets an HTTP response header based on the the content attribute of a meta element, such as:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;META http-equiv=&amp;quot;Expires&amp;quot; content=&amp;quot;Fri, 21 Dec 2012 12:34:56 GMT&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which will result in the HTTP header:&lt;br /&gt;
&lt;br /&gt;
 Expires: Fri, 21 Dec 2012 12:34:56 GMT&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;META http-equiv=&amp;quot;Cache-Control&amp;quot; content=&amp;quot;no-cache&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will result in &lt;br /&gt;
&lt;br /&gt;
 Cache-Control: no-cache&lt;br /&gt;
&lt;br /&gt;
Test to see if this can be used to conduct injection attacks (e.g. CRLF attack). It can also help determine the level of data leakage via the browser cache.&lt;br /&gt;
&lt;br /&gt;
A common (but not WCAG compliant) Meta tag is the refresh.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;META http-equiv=&amp;quot;Refresh&amp;quot; content=&amp;quot;15;URL=https://www.owasp.org/index.html&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A common use for Meta tag is to specify keywords that a search engine may use to improve the quality of search results. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;META name=&amp;quot;keywords&amp;quot; lang=&amp;quot;en-us&amp;quot; content=&amp;quot;OWASP, security, sunshine, lollipops&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although most webservers manage search engine indexing via the robots.txt file, it can also be managed by Meta tags. The tag below will advise robots to not index and not follow links on the HTML page containing the tag. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;META name=&amp;quot;robots&amp;quot; content=&amp;quot;none&amp;quot;&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The Platform for Internet Content Selection (PICS) and Protocol for Web Description Resources (POWDER) provide infrastructure for associating meta data with Internet content.&lt;br /&gt;
&lt;br /&gt;
 examples&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Gray Box testing and example === &lt;br /&gt;
Not applicable. &lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
* Wget&lt;br /&gt;
* Browser &amp;quot;view source&amp;quot; function&lt;br /&gt;
* Eyeballs&lt;br /&gt;
* Curl&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&lt;br /&gt;
&lt;br /&gt;
[1] http://www.w3.org/TR/1999/REC-html401-19991224 HTML version 4.01&lt;br /&gt;
&lt;br /&gt;
[2] http://www.w3.org/TR/2010/REC-xhtml-basic-20101123/ XHTML (for small devices)&lt;br /&gt;
&lt;br /&gt;
[3] http://www.w3.org/TR/html5/ HTML version 5&lt;/div&gt;</summary>
		<author><name>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=170057</id>
		<title>Test RIA cross domain policy (OTG-CONFIG-008)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=170057"/>
				<updated>2014-03-13T21:03:41Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
Rich Internet Applications (RIA) have adopted Adobe's crossdomain.xml policy files in order to allow for controlled cross domain access to data and service consumption using technologies such as Oracle Java, Silverlight, and Adobe Flash. Therefore, a domain can grant remote access to its services from a different domain. However, often the policy files that describe the access restrictions are poorly configured. Poor configuration of the policy files enables Cross-site Request Forgery attacks, and may allow third parties to access sensitive data meant for the user. &lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
=== What are cross-domain policy files ===&lt;br /&gt;
A cross-domain policy file specifies the permissions that a web client such as Java, Adobe Flash, Adobe Reader, etc. to access data across different domains. For Silverlight, Microsoft adopted a subset of the Adobe's crossdomain.xml, and additionally created it's own cross-domain policy file: clientaccesspolicy.xml.&lt;br /&gt;
&lt;br /&gt;
Whenever a web client detects that a resource has to be requested from other domain, it will first look for a policy file in the target domain in order to determine if performing cross-domain requests, including headers, and socket-based connections are allowed.&lt;br /&gt;
&lt;br /&gt;
Master policy files are located at the domain's root. A client may be instructed to load a different policy file, however, it will always check the master policy file first to ensure that the master policy file permits the requested policy file.&lt;br /&gt;
&lt;br /&gt;
==== Crossdomain.xml vs. Clientaccesspolicy.xml ====&lt;br /&gt;
Most RIA applications support crossdomain.xml. However in the case of Silverlight, it will only work if the crossdomain.xml specifies that access is allowed from any domain. For more granular control with Silverlight, clientaccesspolicy.xml must be used.&lt;br /&gt;
&lt;br /&gt;
Policy files grant several types of permissions:&lt;br /&gt;
* Accepted policy files (Master policy files can disable or restrict specific policy files)&lt;br /&gt;
* Sockets permissions&lt;br /&gt;
* Header permissions&lt;br /&gt;
* HTTP/HTTPS access permissions&lt;br /&gt;
* Allowing access based on cryptographic credentials&lt;br /&gt;
&lt;br /&gt;
An example of an overly permissive policy file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE cross-domain-policy SYSTEM&lt;br /&gt;
&amp;quot;http://www.adobe.com/xml/dtds/cross-domain-policy.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cross-domain-policy&amp;gt;&lt;br /&gt;
   &amp;lt;site-control permitted-cross-domain-policies=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-http-request-headers-from domain=&amp;quot;*&amp;quot; headers=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How can cross domain policy files can be abused ===&lt;br /&gt;
* Overly permissive cross-domain policies&lt;br /&gt;
* Generating server responses that may be treated as cross-domain policy files&lt;br /&gt;
* Using file upload functionality to upload files that may be treated as cross-domain policy files.&lt;br /&gt;
&lt;br /&gt;
=== Impact of abusing cross-domain access ===&lt;br /&gt;
* Defeat CSRF protections&lt;br /&gt;
* Read data restricted or otherwise protected by cross-origin policies.&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
'''Testing for RIA policy files weakness:''' &amp;lt;br&amp;gt;&lt;br /&gt;
In order to test for RIA policy file weakness you should try to retrieve the policy files crossdomain.xml and clientaccesspolicy.xml from the application's root, and from every folder found.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For example, if the application's URL is http://www.owasp.org, you should try to download the files http://www.owasp.org/crossdomain.xml and http://www.owasp.org/clientaccesspolicy.xml.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
After retrieving all the policy files, the permissions allowed should be be checked under the least privilege principle. Requests should only come from the domains, ports, or protocols that are necessary. Overly permissive policies should be avoided. Policies with &amp;quot;*&amp;quot; in them should be closely examined.  &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;cross-domain-policy&amp;gt; &lt;br /&gt;
 &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; /&amp;gt; &lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
A list of policy files found. &amp;lt;br&amp;gt;&lt;br /&gt;
A weak settings in the policies.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
* UCSD: &amp;quot;Analyzing the Crossdomain Policies of Flash Applications&amp;quot; - http://cseweb.ucsd.edu/~hovav/dist/crossdomain.pdf&lt;br /&gt;
* Adobe: &amp;quot;Cross-domain policy file specification&amp;quot; - http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html&lt;br /&gt;
* Adobe: &amp;quot;Cross-domain policy file usage recommendations for Flash Player&amp;quot; - http://www.adobe.com/devnet/flashplayer/articles/cross_domain_policy.html&lt;br /&gt;
* Oracle: &amp;quot;Cross-Domain XML Support&amp;quot; - http://www.oracle.com/technetwork/java/javase/plugin2-142482.html#CROSSDOMAINXML&lt;br /&gt;
* MSDN: &amp;quot;Making a Service Available Across Domain Boundaries&amp;quot; - http://msdn.microsoft.com/en-us/library/cc197955(v=vs.95).aspx&lt;br /&gt;
* MSDN: &amp;quot;Network Security Access Restrictions in Silverlight&amp;quot; - http://msdn.microsoft.com/en-us/library/cc645032(v=vs.95).aspx&lt;br /&gt;
* Stefan Esser: &amp;quot;Poking new holes with Flash Crossdomain Policy Files&amp;quot; http://www.hardened-php.net/library/poking_new_holes_with_flash_crossdomain_policy_files.html&lt;br /&gt;
* Jeremiah Grossman: &amp;quot;Crossdomain.xml Invites Cross-site Mayhem&amp;quot; http://jeremiahgrossman.blogspot.com/2008/05/crossdomainxml-invites-cross-site.html&lt;br /&gt;
* Google Doctype: &amp;quot;Introduction to Flash security &amp;quot; - http://code.google.com/p/doctype-mirror/wiki/ArticleFlashSecurity&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Nikto&lt;br /&gt;
* OWASP Zed Attack Proxy Project&lt;br /&gt;
* W3af&lt;/div&gt;</summary>
		<author><name>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Talk:Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=170056</id>
		<title>Talk:Test RIA cross domain policy (OTG-CONFIG-008)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Talk:Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=170056"/>
				<updated>2014-03-13T21:02:18Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: Created page with &amp;quot;Removing anything that has to do with CORS since it's already covered here: Test Cross Origin Resource Sharing (OTG-CLIENT-002)&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Removing anything that has to do with CORS since it's already covered here: Test Cross Origin Resource Sharing (OTG-CLIENT-002)&lt;/div&gt;</summary>
		<author><name>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=170032</id>
		<title>Test RIA cross domain policy (OTG-CONFIG-008)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=170032"/>
				<updated>2014-03-13T11:29:04Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
Rich Internet Applications (RIA) have adopted Adobe's crossdomain.xml policy files in order to allow for controlled cross domain access to data and service consumption using technologies such as Oracle Java, Silverlight, and Adobe Flash. Therefore, a domain can grant remote access to its services from a different domain. However, often the policy files that describe the access restrictions are poorly configured. Poor configuration of the policy files enables Cross-site Request Forgery attacks, and may allow third parties to access sensitive data meant for the user. &lt;br /&gt;
&lt;br /&gt;
HTML5 also incorporates a new way of performing cross domain requests: Cross Origin Resource Sharing (CORS). These can also be improperly configured and enable an attacker to perform similar attacks. &lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
=== What are cross-domain policy files ===&lt;br /&gt;
A cross-domain policy file specifies the permissions that a web client such as Java, Adobe Flash, Adobe Reader, etc. to access data across different domains. For Silverlight, Microsoft adopted a subset of the Adobe's crossdomain.xml, and additionally created it's own cross-domain policy file: clientaccesspolicy.xml.&lt;br /&gt;
&lt;br /&gt;
Whenever a web client detects that a resource has to be requested from other domain, it will first look for a policy file in the target domain in order to determine if performing cross-domain requests, including headers, and socket-based connections are allowed.&lt;br /&gt;
&lt;br /&gt;
Master policy files are located at the domain's root. A client may be instructed to load a different policy file, however, it will always check the master policy file first to ensure that the master policy file permits the requested policy file.&lt;br /&gt;
&lt;br /&gt;
==== Crossdomain.xml vs. Clientaccesspolicy.xml ====&lt;br /&gt;
Most RIA applications support crossdomain.xml. However in the case of Silverlight, it will only work if the crossdomain.xml specifies that access is allowed from any domain. For more granular control with Silverlight, clientaccesspolicy.xml must be used.&lt;br /&gt;
&lt;br /&gt;
Policy files grant several types of permissions:&lt;br /&gt;
* Accepted policy files (Master policy files can disable or restrict specific policy files)&lt;br /&gt;
* Sockets permissions&lt;br /&gt;
* Header permissions&lt;br /&gt;
* HTTP/HTTPS access permissions&lt;br /&gt;
* Allowing access based on cryptographic credentials&lt;br /&gt;
&lt;br /&gt;
An example of an overly permissive policy file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE cross-domain-policy SYSTEM&lt;br /&gt;
&amp;quot;http://www.adobe.com/xml/dtds/cross-domain-policy.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cross-domain-policy&amp;gt;&lt;br /&gt;
   &amp;lt;site-control permitted-cross-domain-policies=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-http-request-headers-from domain=&amp;quot;*&amp;quot; headers=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== What is CORS===&lt;br /&gt;
CORS is HTML5's way of enabling web applications to perform cross-domain requests. CORS works by appending an &amp;quot;Origin&amp;quot; header to the HTTP request, then the server responds with a &amp;quot;Access-Control-Allow-Origin&amp;quot; header stating which website can issue cross domain requests. The server may answer with the Access-Control-Allow-Origin header set to * to indicate that it is a public resource. &lt;br /&gt;
&lt;br /&gt;
=== How can cross domain policies can be abused ===&lt;br /&gt;
* Overly permissive cross-domain policies&lt;br /&gt;
* Generating server responses that may be treated as cross-domain policy files&lt;br /&gt;
* Using file upload functionality to upload files that may be treated as cross-domain policy files.&lt;br /&gt;
* Being able to set custom response headers to indicate cross domain access. (Access-Control-Allow-Origin: *)&lt;br /&gt;
&lt;br /&gt;
=== Impact of abusing cross-domain access ===&lt;br /&gt;
* Defeat CSRF protections&lt;br /&gt;
* Read data restricted or otherwise protected by cross-origin policies.&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
'''Testing for RIA policy files weakness:''' &amp;lt;br&amp;gt;&lt;br /&gt;
In order to test for RIA policy file weakness you should try to retrieve the policy files crossdomain.xml and clientaccesspolicy.xml from the application's root, and from every folder found.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For example, if the application's URL is http://www.owasp.org, you should try to download the files http://www.owasp.org/crossdomain.xml and http://www.owasp.org/clientaccesspolicy.xml.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
After retrieving all the policy files, the permissions allowed should be be checked under the least privilege principle. Requests should only come from the domains, ports, or protocols that are necessary. Overly permissive policies should be avoided. Policies with &amp;quot;*&amp;quot; in them should be closely examined.  &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;cross-domain-policy&amp;gt; &lt;br /&gt;
 &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; /&amp;gt; &lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
A list of policy files found. &amp;lt;br&amp;gt;&lt;br /&gt;
A weak settings in the policies.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Testing for CORS policy weakness:''' &amp;lt;br&amp;gt;&lt;br /&gt;
User your favorite interception proxy to issue an OPTIONS request to the server with the following headers set):&amp;lt;br&amp;gt;&lt;br /&gt;
* Origin: Origin can be any URL other than the website you are testing on or null.&lt;br /&gt;
* Access-Control-Request-Method: This can be GET, POST, PUT, DELETE, etc. You should try with different values. &lt;br /&gt;
* Access-Control-Request-Headers: This can be almost any request header. You should try to with sensitive headers. (This is optional)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
A request will then look like this:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPTIONS /resources/target HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Connection: keep-alive&lt;br /&gt;
Access-Control-Request-Method: POST&lt;br /&gt;
Origin: http://owasp.org&lt;br /&gt;
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5&lt;br /&gt;
Access-Control-Request-Headers: x-extraheader, content-type&lt;br /&gt;
Accept: */*&lt;br /&gt;
Referer: http://example.com/page.html&lt;br /&gt;
Accept-Encoding: gzip,deflate,sdch&lt;br /&gt;
Accept-Language: en-US,en;q=0.8,es;q=0.6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A successful response would look like this: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Date: Thu, 13 Mar 2014 10:18:45 GMT&lt;br /&gt;
Server: Apache&lt;br /&gt;
Access-Control-Allow-Origin: http://example.com&lt;br /&gt;
Access-Control-Allow-Methods: POST, GET, OPTIONS&lt;br /&gt;
Access-Control-Allow-Headers: X-EXTRAHEADER, CONTENT-TYPE&lt;br /&gt;
Access-Control-Max-Age: 1728000&lt;br /&gt;
Vary: Accept-Encoding&lt;br /&gt;
Content-Encoding: gzip&lt;br /&gt;
Content-Length: 20&lt;br /&gt;
Keep-Alive: timeout=2, max=100&lt;br /&gt;
Connection: Keep-Alive&lt;br /&gt;
Content-Type: text/plain&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should carefully inspect the &amp;quot;Access-Control-Allow-Origin&amp;quot;, &amp;quot;Access-Control-Allow-Methods&amp;quot;, &amp;quot;Access-Control-Allow-Credentials&amp;quot;, &amp;quot;Access-Control-Allow-Headers&amp;quot;, &amp;quot;Access-Control-Allow-Expose-Headers&amp;quot;, and any other header that starts with &amp;quot;Access-Control-Allow-&amp;quot;. The value of each of this headers should be set to the most restrictive setting. For example a specific domain for &amp;quot;Access-Control-Allow-Origin&amp;quot;. &lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
* UCSD: &amp;quot;Analyzing the Crossdomain Policies of Flash Applications&amp;quot; - http://cseweb.ucsd.edu/~hovav/dist/crossdomain.pdf&lt;br /&gt;
* Adobe: &amp;quot;Cross-domain policy file specification&amp;quot; - http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html&lt;br /&gt;
* Adobe: &amp;quot;Cross-domain policy file usage recommendations for Flash Player&amp;quot; - http://www.adobe.com/devnet/flashplayer/articles/cross_domain_policy.html&lt;br /&gt;
* Oracle: &amp;quot;Cross-Domain XML Support&amp;quot; - http://www.oracle.com/technetwork/java/javase/plugin2-142482.html#CROSSDOMAINXML&lt;br /&gt;
* MSDN: &amp;quot;Making a Service Available Across Domain Boundaries&amp;quot; - http://msdn.microsoft.com/en-us/library/cc197955(v=vs.95).aspx&lt;br /&gt;
* MSDN: &amp;quot;Network Security Access Restrictions in Silverlight&amp;quot; - http://msdn.microsoft.com/en-us/library/cc645032(v=vs.95).aspx&lt;br /&gt;
* Stefan Esser: &amp;quot;Poking new holes with Flash Crossdomain Policy Files&amp;quot; http://www.hardened-php.net/library/poking_new_holes_with_flash_crossdomain_policy_files.html&lt;br /&gt;
* Jeremiah Grossman: &amp;quot;Crossdomain.xml Invites Cross-site Mayhem&amp;quot; http://jeremiahgrossman.blogspot.com/2008/05/crossdomainxml-invites-cross-site.html&lt;br /&gt;
* Google Doctype: &amp;quot;Introduction to Flash security &amp;quot; - http://code.google.com/p/doctype-mirror/wiki/ArticleFlashSecurity&lt;br /&gt;
* http://www.html5rocks.com/en/tutorials/cors/&lt;br /&gt;
* Krzysztof Kotowicz: &amp;quot;How to upload arbitrary file contents cross-domain&amp;quot;- http://blog.kotowicz.net/2011/04/how-to-upload-arbitrary-file-contents.html&lt;br /&gt;
* W3C: &amp;quot;Cross-Origin Resource Sharing&amp;quot; - http://www.w3.org/TR/cors/&lt;br /&gt;
* Secureideas: &amp;quot;Grab a CORS Light&amp;quot; - http://blog.secureideas.com/2013/02/grab-cors-light.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Nikto&lt;br /&gt;
* OWASP Zed Attack Proxy Project&lt;br /&gt;
* W3af&lt;/div&gt;</summary>
		<author><name>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=170031</id>
		<title>Test RIA cross domain policy (OTG-CONFIG-008)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=170031"/>
				<updated>2014-03-13T11:28:39Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
Rich Internet Applications (RIA) have adopted Adobe's crossdomain.xml policy files in order to allow for controlled cross domain access to data and service consumption using technologies such as Oracle Java, Silverlight, and Adobe Flash. Therefore, a domain can grant remote access to its services from a different domain. However, often the policy files that describe the access restrictions are poorly configured. Poor configuration of the policy files enables Cross-site Request Forgery attacks, and may allow third parties to access sensitive data meant for the user. &lt;br /&gt;
&lt;br /&gt;
HTML5 also incorporates a new way of performing cross domain requests: Cross Origin Resource Sharing (CORS). These can also be improperly configured and enable an attacker to perform similar attacks. &lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
=== What are cross-domain policy files ===&lt;br /&gt;
A cross-domain policy file specifies the permissions that a web client such as Java, Adobe Flash, Adobe Reader, etc. to access data across different domains. For Silverlight, Microsoft adopted a subset of the Adobe's crossdomain.xml, and additionally created it's own cross-domain policy file: clientaccesspolicy.xml.&lt;br /&gt;
&lt;br /&gt;
Whenever a web client detects that a resource has to be requested from other domain, it will first look for a policy file in the target domain in order to determine if performing cross-domain requests, including headers, and socket-based connections are allowed.&lt;br /&gt;
&lt;br /&gt;
Master policy files are located at the domain's root. A client may be instructed to load a different policy file, however, it will always check the master policy file first to ensure that the master policy file permits the requested policy file.&lt;br /&gt;
&lt;br /&gt;
==== Crossdomain.xml vs. Clientaccesspolicy.xml ====&lt;br /&gt;
Most RIA applications support crossdomain.xml. However in the case of Silverlight, it will only work if the crossdomain.xml specifies that access is allowed from any domain. For more granular control with Silverlight, clientaccesspolicy.xml must be used.&lt;br /&gt;
&lt;br /&gt;
Policy files grant several types of permissions:&lt;br /&gt;
* Accepted policy files (Master policy files can disable or restrict specific policy files)&lt;br /&gt;
* Sockets permissions&lt;br /&gt;
* Header permissions&lt;br /&gt;
* HTTP/HTTPS access permissions&lt;br /&gt;
* Allowing access based on cryptographic credentials&lt;br /&gt;
&lt;br /&gt;
An example of an overly permissive policy file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE cross-domain-policy SYSTEM&lt;br /&gt;
&amp;quot;http://www.adobe.com/xml/dtds/cross-domain-policy.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cross-domain-policy&amp;gt;&lt;br /&gt;
   &amp;lt;site-control permitted-cross-domain-policies=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-http-request-headers-from domain=&amp;quot;*&amp;quot; headers=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== What is CORS===&lt;br /&gt;
CORS is HTML5's way of enabling web applications to perform cross-domain requests. CORS works by appending an &amp;quot;Origin&amp;quot; header to the HTTP request, then the server responds with a &amp;quot;Access-Control-Allow-Origin&amp;quot; header stating which website can issue cross domain requests. The server may answer with the Access-Control-Allow-Origin header set to * to indicate that it is a public resource. &lt;br /&gt;
&lt;br /&gt;
=== How can cross domain policies can be abused ===&lt;br /&gt;
* Overly permissive cross-domain policies&lt;br /&gt;
* Generating server responses that may be treated as cross-domain policy files&lt;br /&gt;
* Using file upload functionality to upload files that may be treated as cross-domain policy files.&lt;br /&gt;
* Being able to set custom response headers to indicate cross domain access. (Access-Control-Allow-Origin: *)&lt;br /&gt;
&lt;br /&gt;
=== Impact of abusing cross-domain access ===&lt;br /&gt;
* Defeat CSRF protections&lt;br /&gt;
* Read data restricted or otherwise protected by cross-origin policies.&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
'''Testing for RIA policy files weakness:''' &amp;lt;br&amp;gt;&lt;br /&gt;
In order to test for RIA policy file weakness you should try to retrieve the policy files crossdomain.xml and clientaccesspolicy.xml from the application's root, and from every folder found.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For example, if the application's URL is http://www.owasp.org, you should try to download the files http://www.owasp.org/crossdomain.xml and http://www.owasp.org/clientaccesspolicy.xml.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
After retrieving all the policy files, the permissions allowed should be be checked under the least privilege principle. Requests should only come from the domains, ports, or protocols that are necessary. Overly permissive policies should be avoided. Policies with &amp;quot;*&amp;quot; in them should be closely examined.  &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;cross-domain-policy&amp;gt; &lt;br /&gt;
 &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; /&amp;gt; &lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
A list of policy files found. &amp;lt;br&amp;gt;&lt;br /&gt;
A weak settings in the policies.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Testing for CORS policy weakness:''' &amp;lt;br&amp;gt;&lt;br /&gt;
User your favorite interception proxy to issue an OPTIONS request to the server with the following headers set):&amp;lt;br&amp;gt;&lt;br /&gt;
* Origin: Origin can be any URL other than the website you are testing on or null.&lt;br /&gt;
* Access-Control-Request-Method: This can be GET, POST, PUT, DELETE, etc. You should try with different values. &lt;br /&gt;
* Access-Control-Request-Headers: This can be almost any request header. You should try to with sensitive headers. (This is optional)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
A request will then look like this:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPTIONS /resources/target HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Connection: keep-alive&lt;br /&gt;
Access-Control-Request-Method: POST&lt;br /&gt;
Origin: http://owasp.org&lt;br /&gt;
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5&lt;br /&gt;
Access-Control-Request-Headers: x-extraheader, content-type&lt;br /&gt;
Accept: */*&lt;br /&gt;
Referer: http://example.com/page.html&lt;br /&gt;
Accept-Encoding: gzip,deflate,sdch&lt;br /&gt;
Accept-Language: en-US,en;q=0.8,es;q=0.6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A successful response would look like this: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Date: Thu, 13 Mar 2014 10:18:45 GMT&lt;br /&gt;
Server: Apache&lt;br /&gt;
Access-Control-Allow-Origin: http://example.com&lt;br /&gt;
Access-Control-Allow-Methods: POST, GET, OPTIONS&lt;br /&gt;
Access-Control-Allow-Headers: X-EXTRAHEADER, CONTENT-TYPE&lt;br /&gt;
Access-Control-Max-Age: 1728000&lt;br /&gt;
Vary: Accept-Encoding&lt;br /&gt;
Content-Encoding: gzip&lt;br /&gt;
Content-Length: 20&lt;br /&gt;
Keep-Alive: timeout=2, max=100&lt;br /&gt;
Connection: Keep-Alive&lt;br /&gt;
Content-Type: text/plain&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should carefully inspect the &amp;quot;Access-Control-Allow-Origin&amp;quot;, &amp;quot;Access-Control-Allow-Methods&amp;quot;, &amp;quot;Access-Control-Allow-Credentials&amp;quot;, &amp;quot;Access-Control-Allow-Headers&amp;quot;, &amp;quot;Access-Control-Allow-Expose-Headers&amp;quot;, and any other header that starts with &amp;quot;Access-Control-Allow-&amp;quot;. The value of each of this headers should be set to the most restrictive setting. For example a specific domain for &amp;quot;Access-Control-Allow-Origin&amp;quot;. &lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
* UCSD: &amp;quot;Analyzing the Crossdomain Policies of Flash Applications&amp;quot; - http://cseweb.ucsd.edu/~hovav/dist/crossdomain.pdf&lt;br /&gt;
* Adobe: &amp;quot;Cross-domain policy file specification&amp;quot; - http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html&lt;br /&gt;
* Adobe: &amp;quot;Cross-domain policy file usage recommendations for Flash Player&amp;quot; - http://www.adobe.com/devnet/flashplayer/articles/cross_domain_policy.html&lt;br /&gt;
* Oracle: &amp;quot;Cross-Domain XML Support&amp;quot; - http://www.oracle.com/technetwork/java/javase/plugin2-142482.html#CROSSDOMAINXML&lt;br /&gt;
* MSDN: &amp;quot;Making a Service Available Across Domain Boundaries&amp;quot; - http://msdn.microsoft.com/en-us/library/cc197955(v=vs.95).aspx&lt;br /&gt;
* MSDN: &amp;quot;Network Security Access Restrictions in Silverlight&amp;quot; - http://msdn.microsoft.com/en-us/library/cc645032(v=vs.95).aspx&lt;br /&gt;
* Stefan Esser: &amp;quot;Poking new holes with Flash Crossdomain Policy Files&amp;quot; http://www.hardened-php.net/library/poking_new_holes_with_flash_crossdomain_policy_files.html&lt;br /&gt;
* Jeremiah Grossman: &amp;quot;Crossdomain.xml Invites Cross-site Mayhem&amp;quot; http://jeremiahgrossman.blogspot.com/2008/05/crossdomainxml-invites-cross-site.html&lt;br /&gt;
* Google Doctype: &amp;quot;Introduction to Flash security &amp;quot; - http://code.google.com/p/doctype-mirror/wiki/ArticleFlashSecurity&lt;br /&gt;
* http://www.html5rocks.com/en/tutorials/cors/&lt;br /&gt;
* Krzysztof Kotowicz: &amp;quot;How to upload arbitrary file contents cross-domain&amp;quot;- http://blog.kotowicz.net/2011/04/how-to-upload-arbitrary-file-contents.html&lt;br /&gt;
* W3C: &amp;quot;Cross-Origin Resource Sharing&amp;quot; - http://www.w3.org/TR/cors/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Secureideas: &amp;quot;Grab a CORS Light&amp;quot; - http://blog.secureideas.com/2013/02/grab-cors-light.html&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Nikto&lt;br /&gt;
* OWASP Zed Attack Proxy Project&lt;br /&gt;
* W3af&lt;/div&gt;</summary>
		<author><name>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=170025</id>
		<title>Test RIA cross domain policy (OTG-CONFIG-008)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=170025"/>
				<updated>2014-03-13T11:13:29Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
Rich Internet Applications (RIA) have adopted Adobe's crossdomain.xml policy files in order to allow for controlled cross domain access to data and service consumption using technologies such as Oracle Java, Silverlight, and Adobe Flash. Therefore, a domain can grant remote access to its services from a different domain. However, often the policy files that describe the access restrictions are poorly configured. Poor configuration of the policy files enables Cross-site Request Forgery attacks, and may allow third parties to access sensitive data meant for the user. &lt;br /&gt;
&lt;br /&gt;
HTML5 also incorporates a new way of performing cross domain requests: Cross Origin Resource Sharing (CORS). These can also be improperly configured and enable an attacker to perform similar attacks. &lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
=== What are cross-domain policy files ===&lt;br /&gt;
A cross-domain policy file specifies the permissions that a web client such as Java, Adobe Flash, Adobe Reader, etc. to access data across different domains. For Silverlight, Microsoft adopted a subset of the Adobe's crossdomain.xml, and additionally created it's own cross-domain policy file: clientaccesspolicy.xml.&lt;br /&gt;
&lt;br /&gt;
Whenever a web client detects that a resource has to be requested from other domain, it will first look for a policy file in the target domain in order to determine if performing cross-domain requests, including headers, and socket-based connections are allowed.&lt;br /&gt;
&lt;br /&gt;
Master policy files are located at the domain's root. A client may be instructed to load a different policy file, however, it will always check the master policy file first to ensure that the master policy file permits the requested policy file.&lt;br /&gt;
&lt;br /&gt;
==== Crossdomain.xml vs. Clientaccesspolicy.xml ====&lt;br /&gt;
Most RIA applications support crossdomain.xml. However in the case of Silverlight, it will only work if the crossdomain.xml specifies that access is allowed from any domain. For more granular control with Silverlight, clientaccesspolicy.xml must be used.&lt;br /&gt;
&lt;br /&gt;
Policy files grant several types of permissions:&lt;br /&gt;
* Accepted policy files (Master policy files can disable or restrict specific policy files)&lt;br /&gt;
* Sockets permissions&lt;br /&gt;
* Header permissions&lt;br /&gt;
* HTTP/HTTPS access permissions&lt;br /&gt;
* Allowing access based on cryptographic credentials&lt;br /&gt;
&lt;br /&gt;
An example of an overly permissive policy file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE cross-domain-policy SYSTEM&lt;br /&gt;
&amp;quot;http://www.adobe.com/xml/dtds/cross-domain-policy.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cross-domain-policy&amp;gt;&lt;br /&gt;
   &amp;lt;site-control permitted-cross-domain-policies=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-http-request-headers-from domain=&amp;quot;*&amp;quot; headers=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== What is CORS===&lt;br /&gt;
CORS is HTML5's way of enabling web applications to perform cross-domain requests. CORS works by appending an &amp;quot;Origin&amp;quot; header to the HTTP request, then the server responds with a &amp;quot;Access-Control-Allow-Origin&amp;quot; header stating which website can issue cross domain requests. The server may answer with the Access-Control-Allow-Origin header set to * to indicate that it is a public resource. &lt;br /&gt;
&lt;br /&gt;
=== How can cross domain policies can be abused ===&lt;br /&gt;
* Overly permissive cross-domain policies&lt;br /&gt;
* Generating server responses that may be treated as cross-domain policy files&lt;br /&gt;
* Using file upload functionality to upload files that may be treated as cross-domain policy files.&lt;br /&gt;
* Being able to set custom response headers to indicate cross domain access. (Access-Control-Allow-Origin: *)&lt;br /&gt;
&lt;br /&gt;
=== Impact of abusing cross-domain access ===&lt;br /&gt;
* Defeat CSRF protections&lt;br /&gt;
* Read data restricted or otherwise protected by cross-origin policies.&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
'''Testing for RIA policy files weakness:''' &amp;lt;br&amp;gt;&lt;br /&gt;
In order to test for RIA policy file weakness you should try to retrieve the policy files crossdomain.xml and clientaccesspolicy.xml from the application's root, and from every folder found.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For example, if the application's URL is http://www.owasp.org, you should try to download the files http://www.owasp.org/crossdomain.xml and http://www.owasp.org/clientaccesspolicy.xml.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
After retrieving all the policy files, the permissions allowed should be be checked under the least privilege principle. Requests should only come from the domains, ports, or protocols that are necessary. Overly permissive policies should be avoided. Policies with &amp;quot;*&amp;quot; in them should be closely examined.  &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;cross-domain-policy&amp;gt; &lt;br /&gt;
 &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; /&amp;gt; &lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
A list of policy files found. &amp;lt;br&amp;gt;&lt;br /&gt;
A weak settings in the policies.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Testing for CORS policy weakness:''' &amp;lt;br&amp;gt;&lt;br /&gt;
User your favorite interception proxy to issue an OPTIONS request to the server with the following headers set):&amp;lt;br&amp;gt;&lt;br /&gt;
* Origin: Origin can be any URL other than the website you are testing on or null.&lt;br /&gt;
* Access-Control-Request-Method: This can be GET, POST, PUT, DELETE, etc. You should try with different values. &lt;br /&gt;
* Access-Control-Request-Headers: This can be almost any request header. You should try to with sensitive headers. (This is optional)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
A request will then look like this:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPTIONS /resources/target HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Connection: keep-alive&lt;br /&gt;
Access-Control-Request-Method: POST&lt;br /&gt;
Origin: http://owasp.org&lt;br /&gt;
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5&lt;br /&gt;
Access-Control-Request-Headers: x-extraheader, content-type&lt;br /&gt;
Accept: */*&lt;br /&gt;
Referer: http://example.com/page.html&lt;br /&gt;
Accept-Encoding: gzip,deflate,sdch&lt;br /&gt;
Accept-Language: en-US,en;q=0.8,es;q=0.6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A successful response would look like this: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Date: Thu, 13 Mar 2014 10:18:45 GMT&lt;br /&gt;
Server: Apache&lt;br /&gt;
Access-Control-Allow-Origin: http://example.com&lt;br /&gt;
Access-Control-Allow-Methods: POST, GET, OPTIONS&lt;br /&gt;
Access-Control-Allow-Headers: X-EXTRAHEADER, CONTENT-TYPE&lt;br /&gt;
Access-Control-Max-Age: 1728000&lt;br /&gt;
Vary: Accept-Encoding&lt;br /&gt;
Content-Encoding: gzip&lt;br /&gt;
Content-Length: 20&lt;br /&gt;
Keep-Alive: timeout=2, max=100&lt;br /&gt;
Connection: Keep-Alive&lt;br /&gt;
Content-Type: text/plain&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should carefully inspect the &amp;quot;Access-Control-Allow-Origin&amp;quot;, &amp;quot;Access-Control-Allow-Methods&amp;quot;, &amp;quot;Access-Control-Allow-Credentials&amp;quot;, &amp;quot;Access-Control-Allow-Headers&amp;quot;, &amp;quot;Access-Control-Allow-Expose-Headers&amp;quot;, and any other header that starts with &amp;quot;Access-Control-Allow-&amp;quot;. The value of each of this headers should be set to the most restrictive setting. For example a specific domain for &amp;quot;Access-Control-Allow-Origin&amp;quot;. &lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
* UCSD: &amp;quot;Analyzing the Crossdomain Policies of Flash Applications&amp;quot; - http://cseweb.ucsd.edu/~hovav/dist/crossdomain.pdf&lt;br /&gt;
* Adobe: &amp;quot;Cross-domain policy file specification&amp;quot; - http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html&lt;br /&gt;
* Adobe: &amp;quot;Cross-domain policy file usage recommendations for Flash Player&amp;quot; - http://www.adobe.com/devnet/flashplayer/articles/cross_domain_policy.html&lt;br /&gt;
* Oracle: &amp;quot;Cross-Domain XML Support&amp;quot; - http://www.oracle.com/technetwork/java/javase/plugin2-142482.html#CROSSDOMAINXML&lt;br /&gt;
* MSDN: &amp;quot;Making a Service Available Across Domain Boundaries&amp;quot; - http://msdn.microsoft.com/en-us/library/cc197955(v=vs.95).aspx&lt;br /&gt;
* MSDN: &amp;quot;Network Security Access Restrictions in Silverlight&amp;quot; - http://msdn.microsoft.com/en-us/library/cc645032(v=vs.95).aspx&lt;br /&gt;
* Stefan Esser: &amp;quot;Poking new holes with Flash Crossdomain Policy Files&amp;quot; http://www.hardened-php.net/library/poking_new_holes_with_flash_crossdomain_policy_files.html&lt;br /&gt;
* Jeremiah Grossman: &amp;quot;Crossdomain.xml Invites Cross-site Mayhem&amp;quot; http://jeremiahgrossman.blogspot.com/2008/05/crossdomainxml-invites-cross-site.html&lt;br /&gt;
* Google Doctype: &amp;quot;Introduction to Flash security &amp;quot; - http://code.google.com/p/doctype-mirror/wiki/ArticleFlashSecurity&lt;br /&gt;
* http://www.html5rocks.com/en/tutorials/cors/&lt;br /&gt;
* Krzysztof Kotowicz: &amp;quot;How to upload arbitrary file contents cross-domain&amp;quot;- http://blog.kotowicz.net/2011/04/how-to-upload-arbitrary-file-contents.html&lt;br /&gt;
* W3C: &amp;quot;Cross-Origin Resource Sharing&amp;quot; - http://www.w3.org/TR/cors/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Nikto&lt;br /&gt;
* OWASP Zed Attack Proxy Project&lt;br /&gt;
* W3af&lt;/div&gt;</summary>
		<author><name>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=170024</id>
		<title>Test RIA cross domain policy (OTG-CONFIG-008)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=170024"/>
				<updated>2014-03-13T11:12:21Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
Rich Internet Applications (RIA) have adopted Adobe's crossdomain.xml policy files in order to allow for controlled cross domain access to data and service consumption using technologies such as Oracle Java, Silverlight, and Adobe Flash. Therefore, a domain can grant remote access to its services from a different domain. However, often the policy files that describe the access restrictions are poorly configured. Poor configuration of the policy files enables Cross-site Request Forgery attacks, and may allow third parties to access sensitive data meant for the user. &lt;br /&gt;
&lt;br /&gt;
HTML5 also incorporates a new way of performing cross domain requests: Cross Origin Resource Sharing (CORS). These can also be improperly configured and enable an attacker to perform similar attacks. &lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
=== What are cross-domain policy files ===&lt;br /&gt;
A cross-domain policy file specifies the permissions that a web client such as Java, Adobe Flash, Adobe Reader, etc. to access data across different domains. For Silverlight, Microsoft adopted a subset of the Adobe's crossdomain.xml, and additionally created it's own cross-domain policy file: clientaccesspolicy.xml.&lt;br /&gt;
&lt;br /&gt;
Whenever a web client detects that a resource has to be requested from other domain, it will first look for a policy file in the target domain in order to determine if performing cross-domain requests, including headers, and socket-based connections are allowed.&lt;br /&gt;
&lt;br /&gt;
Master policy files are located at the domain's root. A client may be instructed to load a different policy file, however, it will always check the master policy file first to ensure that the master policy file permits the requested policy file.&lt;br /&gt;
&lt;br /&gt;
==== Crossdomain.xml vs. Clientaccesspolicy.xml ====&lt;br /&gt;
Most RIA applications support crossdomain.xml. However in the case of Silverlight, it will only work if the crossdomain.xml specifies that access is allowed from any domain. For more granular control with Silverlight, clientaccesspolicy.xml must be used.&lt;br /&gt;
&lt;br /&gt;
Policy files grant several types of permissions:&lt;br /&gt;
* Accepted policy files (Master policy files can disable or restrict specific policy files)&lt;br /&gt;
* Sockets permissions&lt;br /&gt;
* Header permissions&lt;br /&gt;
* HTTP/HTTPS access permissions&lt;br /&gt;
* Allowing access based on cryptographic credentials&lt;br /&gt;
&lt;br /&gt;
An example of an overly permissive policy file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE cross-domain-policy SYSTEM&lt;br /&gt;
&amp;quot;http://www.adobe.com/xml/dtds/cross-domain-policy.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cross-domain-policy&amp;gt;&lt;br /&gt;
   &amp;lt;site-control permitted-cross-domain-policies=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-http-request-headers-from domain=&amp;quot;*&amp;quot; headers=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== What is CORS===&lt;br /&gt;
CORS is HTML5's way of enabling web applications to perform cross-domain requests. CORS works by appending an &amp;quot;Origin&amp;quot; header to the HTTP request, then the server responds with a &amp;quot;Access-Control-Allow-Origin&amp;quot; header stating which website can issue cross domain requests. The server may answer with the Access-Control-Allow-Origin header set to * to indicate that it is a public resource. &lt;br /&gt;
&lt;br /&gt;
=== How can cross domain policies can be abused ===&lt;br /&gt;
* Overly permissive cross-domain policies&lt;br /&gt;
* Generating server responses that may be treated as cross-domain policy files&lt;br /&gt;
* Using file upload functionality to upload files that may be treated as cross-domain policy files.&lt;br /&gt;
* Being able to set custom response headers to indicate cross domain access. (Access-Control-Allow-Origin: *)&lt;br /&gt;
&lt;br /&gt;
=== Impact of abusing cross-domain access ===&lt;br /&gt;
* Defeat CSRF protections&lt;br /&gt;
* Read data restricted or otherwise protected by cross-origin policies.&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
'''Testing for RIA policy files weakness:''' &amp;lt;br&amp;gt;&lt;br /&gt;
In order to test for RIA policy file weakness you should try to retrieve the policy files crossdomain.xml and clientaccesspolicy.xml from the application's root, and from every folder found.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For example, if the application's URL is http://www.owasp.org, you should try to download the files http://www.owasp.org/crossdomain.xml and http://www.owasp.org/clientaccesspolicy.xml.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
After retrieving all the policy files, the permissions allowed should be be checked under the least privilege principle. Requests should only come from the domains, ports, or protocols that are necessary. Overly permissive policies should be avoided. Policies with &amp;quot;*&amp;quot; in them should be closely examined.  &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;cross-domain-policy&amp;gt; &lt;br /&gt;
 &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; /&amp;gt; &lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
A list of policy files found. &amp;lt;br&amp;gt;&lt;br /&gt;
A weak settings in the policies.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Testing for CORS policy weakness:''' &amp;lt;br&amp;gt;&lt;br /&gt;
Issue an OPTIONS request to the server with the following headers set:&amp;lt;br&amp;gt;&lt;br /&gt;
* Origin: Origin can be any URL other than the website you are testing on or null.&lt;br /&gt;
* Access-Control-Request-Method: This can be GET, POST, PUT, DELETE, etc. You should try with different values. &lt;br /&gt;
* Access-Control-Request-Headers: This can be almost any request header. You should try to with sensitive headers. (This is optional)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
A request will then look like this:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPTIONS /resources/target HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Connection: keep-alive&lt;br /&gt;
Access-Control-Request-Method: POST&lt;br /&gt;
Origin: http://owasp.org&lt;br /&gt;
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5&lt;br /&gt;
Access-Control-Request-Headers: x-extraheader, content-type&lt;br /&gt;
Accept: */*&lt;br /&gt;
Referer: http://example.com/page.html&lt;br /&gt;
Accept-Encoding: gzip,deflate,sdch&lt;br /&gt;
Accept-Language: en-US,en;q=0.8,es;q=0.6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A successful response would look like this: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Date: Thu, 13 Mar 2014 10:18:45 GMT&lt;br /&gt;
Server: Apache&lt;br /&gt;
Access-Control-Allow-Origin: http://example.com&lt;br /&gt;
Access-Control-Allow-Methods: POST, GET, OPTIONS&lt;br /&gt;
Access-Control-Allow-Headers: X-EXTRAHEADER, CONTENT-TYPE&lt;br /&gt;
Access-Control-Max-Age: 1728000&lt;br /&gt;
Vary: Accept-Encoding&lt;br /&gt;
Content-Encoding: gzip&lt;br /&gt;
Content-Length: 20&lt;br /&gt;
Keep-Alive: timeout=2, max=100&lt;br /&gt;
Connection: Keep-Alive&lt;br /&gt;
Content-Type: text/plain&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should carefully inspect the &amp;quot;Access-Control-Allow-Origin&amp;quot;, &amp;quot;Access-Control-Allow-Methods&amp;quot;, &amp;quot;Access-Control-Allow-Credentials&amp;quot;, &amp;quot;Access-Control-Allow-Headers&amp;quot;, &amp;quot;Access-Control-Allow-Expose-Headers&amp;quot;, and any other header that starts with &amp;quot;Access-Control-Allow-&amp;quot;. The value of each of this headers should be set to the most restrictive setting. For example a specific domain for &amp;quot;Access-Control-Allow-Origin&amp;quot;. &lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
* UCSD: &amp;quot;Analyzing the Crossdomain Policies of Flash Applications&amp;quot; - http://cseweb.ucsd.edu/~hovav/dist/crossdomain.pdf&lt;br /&gt;
* Adobe: &amp;quot;Cross-domain policy file specification&amp;quot; - http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html&lt;br /&gt;
* Adobe: &amp;quot;Cross-domain policy file usage recommendations for Flash Player&amp;quot; - http://www.adobe.com/devnet/flashplayer/articles/cross_domain_policy.html&lt;br /&gt;
* Oracle: &amp;quot;Cross-Domain XML Support&amp;quot; - http://www.oracle.com/technetwork/java/javase/plugin2-142482.html#CROSSDOMAINXML&lt;br /&gt;
* MSDN: &amp;quot;Making a Service Available Across Domain Boundaries&amp;quot; - http://msdn.microsoft.com/en-us/library/cc197955(v=vs.95).aspx&lt;br /&gt;
* MSDN: &amp;quot;Network Security Access Restrictions in Silverlight&amp;quot; - http://msdn.microsoft.com/en-us/library/cc645032(v=vs.95).aspx&lt;br /&gt;
* Stefan Esser: &amp;quot;Poking new holes with Flash Crossdomain Policy Files&amp;quot; http://www.hardened-php.net/library/poking_new_holes_with_flash_crossdomain_policy_files.html&lt;br /&gt;
* Jeremiah Grossman: &amp;quot;Crossdomain.xml Invites Cross-site Mayhem&amp;quot; http://jeremiahgrossman.blogspot.com/2008/05/crossdomainxml-invites-cross-site.html&lt;br /&gt;
* Google Doctype: &amp;quot;Introduction to Flash security &amp;quot; - http://code.google.com/p/doctype-mirror/wiki/ArticleFlashSecurity&lt;br /&gt;
* http://www.html5rocks.com/en/tutorials/cors/&lt;br /&gt;
* Krzysztof Kotowicz: &amp;quot;How to upload arbitrary file contents cross-domain&amp;quot;- http://blog.kotowicz.net/2011/04/how-to-upload-arbitrary-file-contents.html&lt;br /&gt;
* W3C: &amp;quot;Cross-Origin Resource Sharing&amp;quot; - http://www.w3.org/TR/cors/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Nikto&lt;br /&gt;
* OWASP Zed Attack Proxy Project&lt;br /&gt;
* W3af&lt;/div&gt;</summary>
		<author><name>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=170023</id>
		<title>Test RIA cross domain policy (OTG-CONFIG-008)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=170023"/>
				<updated>2014-03-13T11:06:09Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
Rich Internet Applications (RIA) have adopted Adobe's crossdomain.xml policy files in order to allow for controlled cross domain access to data and service consumption using technologies such as Oracle Java, Silverlight, and Adobe Flash. Therefore, a domain can grant remote access to its services from a different domain. However, often the policy files that describe the access restrictions are poorly configured. Poor configuration of the policy files enables Cross-site Request Forgery attacks, and may allow third parties to access sensitive data meant for the user. &lt;br /&gt;
&lt;br /&gt;
HTML5 also incorporates a new way of performing cross domain requests: Cross Origin Resource Sharing (CORS). These can also be improperly configured and enable an attacker to perform similar attacks. &lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
=== What are cross-domain policy files ===&lt;br /&gt;
A cross-domain policy file specifies the permissions that a web client such as Java, Adobe Flash, Adobe Reader, etc. to access data across different domains. For Silverlight, Microsoft adopted a subset of the Adobe's crossdomain.xml, and additionally created it's own cross-domain policy file: clientaccesspolicy.xml.&lt;br /&gt;
&lt;br /&gt;
Whenever a web client detects that a resource has to be requested from other domain, it will first look for a policy file in the target domain in order to determine if performing cross-domain requests, including headers, and socket-based connections are allowed.&lt;br /&gt;
&lt;br /&gt;
Master policy files are located at the domain's root. A client may be instructed to load a different policy file, however, it will always check the master policy file first to ensure that the master policy file permits the requested policy file.&lt;br /&gt;
&lt;br /&gt;
==== Crossdomain.xml vs. Clientaccesspolicy.xml ====&lt;br /&gt;
Most RIA applications support crossdomain.xml. However in the case of Silverlight, it will only work if the crossdomain.xml specifies that access is allowed from any domain. For more granular control with Silverlight, clientaccesspolicy.xml must be used.&lt;br /&gt;
&lt;br /&gt;
Policy files grant several types of permissions:&lt;br /&gt;
* Accepted policy files (Master policy files can disable or restrict specific policy files)&lt;br /&gt;
* Sockets permissions&lt;br /&gt;
* Header permissions&lt;br /&gt;
* HTTP/HTTPS access permissions&lt;br /&gt;
* Allowing access based on cryptographic credentials&lt;br /&gt;
&lt;br /&gt;
An example of an overly permissive policy file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE cross-domain-policy SYSTEM&lt;br /&gt;
&amp;quot;http://www.adobe.com/xml/dtds/cross-domain-policy.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cross-domain-policy&amp;gt;&lt;br /&gt;
   &amp;lt;site-control permitted-cross-domain-policies=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-http-request-headers-from domain=&amp;quot;*&amp;quot; headers=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== What is CORS===&lt;br /&gt;
CORS is HTML5's way of enabling web applications to perform cross-domain requests. CORS works by appending an &amp;quot;Origin&amp;quot; header to the HTTP request, then the server responds with a &amp;quot;Access-Control-Allow-Origin&amp;quot; header stating which website can issue cross domain requests. The server may answer with the Access-Control-Allow-Origin header set to * to indicate that it is a public resource. &lt;br /&gt;
&lt;br /&gt;
=== How can cross domain policies can be abused ===&lt;br /&gt;
* Overly permissive cross-domain policies&lt;br /&gt;
* Generating server responses that may be treated as cross-domain policy files&lt;br /&gt;
* Using file upload functionality to upload files that may be treated as cross-domain policy files.&lt;br /&gt;
* Being able to set custom response headers to indicate cross domain access. (Access-Control-Allow-Origin: *)&lt;br /&gt;
&lt;br /&gt;
=== Impact of abusing cross-domain access ===&lt;br /&gt;
* Defeat CSRF protections&lt;br /&gt;
* Read data restricted or otherwise protected by cross-origin policies.&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
'''Testing for RIA policy files weakness:''' &amp;lt;br&amp;gt;&lt;br /&gt;
In order to test for RIA policy file weakness you should try to retrieve the policy files crossdomain.xml and clientaccesspolicy.xml from the application's root, and from every folder found.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For example, if the application's URL is http://www.owasp.org, you should try to download the files http://www.owasp.org/crossdomain.xml and http://www.owasp.org/clientaccesspolicy.xml.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
After retrieving all the policy files, the permissions allowed should be be checked under the least privilege principle. Requests should only come from the domains, ports, or protocols that are necessary. Overly permissive policies should be avoided. Policies with &amp;quot;*&amp;quot; in them should be closely examined.  &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;cross-domain-policy&amp;gt; &lt;br /&gt;
 &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; /&amp;gt; &lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
A list of policy files found. &amp;lt;br&amp;gt;&lt;br /&gt;
A weak settings in the policies.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Testing for CORS policy weakness:''' &amp;lt;br&amp;gt;&lt;br /&gt;
Issue an OPTIONS request to the server with the following headers set:&amp;lt;br&amp;gt;&lt;br /&gt;
* Origin: Origin can be any URL other than the website you are testing on or null.&lt;br /&gt;
* Access-Control-Request-Method: This can be GET, POST, PUT, DELETE, etc. You should try with different values. &lt;br /&gt;
* Access-Control-Request-Headers: This can be almost any request header. You should try to with sensitive headers. (This is optional)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
A request will then look like this:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OPTIONS /resources/target HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Connection: keep-alive&lt;br /&gt;
Access-Control-Request-Method: POST&lt;br /&gt;
Origin: http://owasp.org&lt;br /&gt;
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5&lt;br /&gt;
Access-Control-Request-Headers: x-extraheader, content-type&lt;br /&gt;
Accept: */*&lt;br /&gt;
Referer: http://example.com/page.html&lt;br /&gt;
Accept-Encoding: gzip,deflate,sdch&lt;br /&gt;
Accept-Language: en-US,en;q=0.8,es;q=0.6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A successful response would look like this: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK&lt;br /&gt;
Date: Thu, 13 Mar 2014 10:18:45 GMT&lt;br /&gt;
Server: Apache&lt;br /&gt;
Access-Control-Allow-Origin: http://example.com&lt;br /&gt;
Access-Control-Allow-Methods: POST, GET, OPTIONS&lt;br /&gt;
Access-Control-Allow-Headers: X-EXTRAHEADER, CONTENT-TYPE&lt;br /&gt;
Access-Control-Max-Age: 1728000&lt;br /&gt;
Vary: Accept-Encoding&lt;br /&gt;
Content-Encoding: gzip&lt;br /&gt;
Content-Length: 20&lt;br /&gt;
Keep-Alive: timeout=2, max=100&lt;br /&gt;
Connection: Keep-Alive&lt;br /&gt;
Content-Type: text/plain&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should carefully inspect the &amp;quot;Access-Control-Allow-Origin&amp;quot;, &amp;quot;Access-Control-Allow-Methods&amp;quot;, &amp;quot;Access-Control-Allow-Credentials&amp;quot;, &amp;quot;Access-Control-Allow-Headers&amp;quot;, &amp;quot;Access-Control-Allow-Expose-Headers&amp;quot;, and any other header that starts with &amp;quot;Access-Control-Allow-&amp;quot;. The value of each of this headers should be set to the most restrictive setting. For example a specific domain for &amp;quot;Access-Control-Allow-Origin&amp;quot;. &lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
* UCSD: &amp;quot;Analyzing the Crossdomain Policies of Flash Applications&amp;quot; - http://cseweb.ucsd.edu/~hovav/dist/crossdomain.pdf&lt;br /&gt;
* Adobe: &amp;quot;Cross-domain policy file specification&amp;quot; - http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html&lt;br /&gt;
* Adobe: &amp;quot;Cross-domain policy file usage recommendations for Flash Player&amp;quot; - http://www.adobe.com/devnet/flashplayer/articles/cross_domain_policy.html&lt;br /&gt;
* Oracle: &amp;quot;Cross-Domain XML Support&amp;quot; - http://www.oracle.com/technetwork/java/javase/plugin2-142482.html#CROSSDOMAINXML&lt;br /&gt;
* MSDN: &amp;quot;Making a Service Available Across Domain Boundaries&amp;quot; - http://msdn.microsoft.com/en-us/library/cc197955(v=vs.95).aspx&lt;br /&gt;
* MSDN: &amp;quot;Network Security Access Restrictions in Silverlight&amp;quot; - http://msdn.microsoft.com/en-us/library/cc645032(v=vs.95).aspx&lt;br /&gt;
* Stefan Esser: &amp;quot;Poking new holes with Flash Crossdomain Policy Files&amp;quot; http://www.hardened-php.net/library/poking_new_holes_with_flash_crossdomain_policy_files.html&lt;br /&gt;
* Jeremiah Grossman: &amp;quot;Crossdomain.xml Invites Cross-site Mayhem&amp;quot; http://jeremiahgrossman.blogspot.com/2008/05/crossdomainxml-invites-cross-site.html&lt;br /&gt;
* Google Doctype: &amp;quot;Introduction to Flash security &amp;quot; - http://code.google.com/p/doctype-mirror/wiki/ArticleFlashSecurity&lt;br /&gt;
* http://www.html5rocks.com/en/tutorials/cors/&lt;br /&gt;
* Krzysztof Kotowicz: &amp;quot;How to upload arbitrary file contents cross-domain&amp;quot;- http://blog.kotowicz.net/2011/04/how-to-upload-arbitrary-file-contents.html&lt;br /&gt;
* W3C: &amp;quot;Cross-Origin Resource Sharing&amp;quot; - http://www.w3.org/TR/cors/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Nikto&lt;br /&gt;
* OWASP Zed Attack Proxy Project&lt;/div&gt;</summary>
		<author><name>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Testing_for_Weak_SSL/TLS_Ciphers,_Insufficient_Transport_Layer_Protection_(OTG-CRYPST-001)&amp;diff=169829</id>
		<title>Testing for Weak SSL/TLS Ciphers, Insufficient Transport Layer Protection (OTG-CRYPST-001)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Testing_for_Weak_SSL/TLS_Ciphers,_Insufficient_Transport_Layer_Protection_(OTG-CRYPST-001)&amp;diff=169829"/>
				<updated>2014-03-10T13:26:51Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
Sensitive data must be protected when it is transmitted through the network. These data includes credentials and credit cards. As a rule of thumb if data must be protected when it is stored, it must be protected also during transmission. &lt;br /&gt;
&lt;br /&gt;
HTTP is a clear-text protocol and it is normally secured via an SSL/TLS tunnel, resulting in HTTPS traffic [1]. Use of these protocols ensure not only confidentiality but also authentication. Servers are authenticated using digital certificates, and it is also possibile to use client certificate for mutual authentication. &lt;br /&gt;
&lt;br /&gt;
Even if high grade ciphers are today supported and normally used, some misconfiguration in server can be used to force the use of a weak cipher - or at worst no encryption - permitting to an attacker to gain access to the supposed secure communication channel. Other misconfiguration can be used for a Denial of Service attack.&lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
If control is missed and HTTP protocol is used to transmit sensitive information is a vulnerability [2] (e.g. credentials transmitted over HTTP [3]) and there are a specific OWASP Testing Guide v4’s test.&lt;br /&gt;
&lt;br /&gt;
If SSL/TLS service is present it is good but it increments the attack surface and some vulnerabilities insist on it, such as:&lt;br /&gt;
* SSL/TLS protocols, ciphers, keys and renegotiation must be properly configured.&lt;br /&gt;
* Certificate validity must be ensured.&lt;br /&gt;
Other vulnerabilities linked to this is:&lt;br /&gt;
* Software exposed must be updated due to possibility of known vulnerabilities [4].&lt;br /&gt;
* Usage of Secure flag for Session Cookies [5].&lt;br /&gt;
* Usage of HTTP Strict Transport Security (HSTS) [6].&lt;br /&gt;
* The presence of HTTP and HTTPS both, which can be used to intercept traffic [7], [8].&lt;br /&gt;
* The presence of mixed HTTPS and HTTP content in the same page, which can be used to Leak information.&lt;br /&gt;
&lt;br /&gt;
===Sensitive data transmitted in clear-text===&lt;br /&gt;
If the application transmits sensitive information via unencrypted channels - e.g. HTTP - it is a vulnerability. Typically it is possible to find BASIC authentication over HTTP, input password or session cookie sent via HTTP and, in general, other information considered by regulations, laws or organization policy.&lt;br /&gt;
&lt;br /&gt;
===Weak SSL/TLS Ciphers/Protocols/Keys===&lt;br /&gt;
Historically, there have been limitations set in place by the U.S. government to allow cryptosystems to be exported only for key sizes of at most 40 bits, a key length which could be broken and would allow the decryption of communications. Since then cryptographic export regulations have been relaxed the maximum key size is 128 bits.&lt;br /&gt;
It is important to check the SSL configuration being used to avoid putting in place cryptographic support which could be easily defeated. To reach this goal SSL-based services should not offer the possibility to choose weak cipher suite. A cipher suite is specified by an encryption protocol (e.g. DES, RC4, AES), the encryption key length (e.g. 40, 56, or 128 bits), and a hash algorithm (e.g. SHA, MD5) used for integrity checking.&lt;br /&gt;
Briefly, the key points for the cipher suite determination are the following: &lt;br /&gt;
# The client sends to the server a ClientHello message specifying, among other information, the protocol and the cipher suites that it is able to handle. Note that a client is usually a web browser (most popular SSL client nowadays), but not necessarily, since it can be any SSL-enabled application; the same holds for the server, which needs not to be a web server, though this is the most common case [9].&lt;br /&gt;
#The server responds with a ServerHello message, containing the chosen protocol and cipher suite that will be used for that session (in general the server selects the strongest protocol and cipher suite supported by both the client and server). &lt;br /&gt;
&lt;br /&gt;
It is possible (for example, by means of configuration directives) to specify which cipher suites the server will honor. In this way you may control, for example, whether or not conversations with clients will support 40-bit encryption only.&lt;br /&gt;
&lt;br /&gt;
#The server sends its Certificate message and, if client authentication is required, also sends a CertificateRequest message to the client.&lt;br /&gt;
#The server sends a ServerHelloDone message and waits for a client response.&lt;br /&gt;
#Upon receipt of the ServerHelloDone message, the client verifies the validity of the server's digital certificate.&lt;br /&gt;
&lt;br /&gt;
===SSL certificate validity – client and server===&lt;br /&gt;
&lt;br /&gt;
When accessing a web application via the HTTPS protocol, a secure channel is established between the client and the server. The identity of one (the server) or both parties (client and server) is then established by means of digital certificates. So, once the cipher suite is determined, the “SSL Handshake” continues with the exchange of the certificates, like follow:&lt;br /&gt;
# The server sends its Certificate message and, if client authentication is required, also sends a CertificateRequest message to the client.&lt;br /&gt;
# The server sends a ServerHelloDone message and waits for a client response.&lt;br /&gt;
# Upon receipt of the ServerHelloDone message, the client verifies the validity of the server's digital certificate.&lt;br /&gt;
&lt;br /&gt;
In order for the communication to be set up, a number of checks on the certificates must be passed. While discussing SSL and certificate based authentication is beyond the scope of this Guide, we will focus on the main criteria involved in ascertaining certificate validity: &lt;br /&gt;
&lt;br /&gt;
* Checking if the Certificate Authority (CA) is a known one (meaning one considered trusted);&lt;br /&gt;
* Checking that the certificate is currently valid;&lt;br /&gt;
* Checking that the name of the site and the name reported in the certificate match.&lt;br /&gt;
&lt;br /&gt;
Let is examine each check more in detail. &lt;br /&gt;
&lt;br /&gt;
* Each browser comes with a preloaded list of trusted CAs, against which the certificate signing CA is compared (this list can be customized and expanded at will). During the initial negotiations with an HTTPS server, if the server certificate relates to a CA unknown to the browser, a warning is usually raised. This happens most often because a web application relies on a certificate signed by a self-established CA. Whether this is to be considered a concern depends on several factors. For example, this may be fine for an Intranet environment (think of corporate web email being provided via HTTPS; here, obviously all users recognize the internal CA as a trusted CA). When a service is provided to the general public via the Internet, however (i.e. when it is important to positively verify the identity of the server we are talking to), it is usually imperative to rely on a trusted CA, one which is recognized by all the user base (and here we stop with our considerations; we won’t delve deeper in the implications of the trust model being used by digital certificates). &lt;br /&gt;
&lt;br /&gt;
* Certificates have an associated period of validity, therefore they may expire. Again, we are warned by the browser about this. A public service needs a temporally valid certificate; otherwise, it means we are talking with a server whose certificate was issued by someone we trust, but has expired without being renewed. &lt;br /&gt;
&lt;br /&gt;
* What if the name on the certificate and the name of the server do not match? If this happens, it might sound suspicious. For a number of reasons, this is not so rare to see. A system may host a number of name-based virtual hosts, which share the same IP address and are identified by means of the HTTP 1.1 Host: header information. In this case, since the SSL handshake checks the server certificate before the HTTP request is processed, it is not possible to assign different certificates to each virtual server. Therefore, if the name of the site and the name reported in the certificate do not match, we have a condition which is typically signaled by the browser. To avoid this, IP-based virtual servers must be used. [33] and [34] describe techniques to deal with this problem and allow name-based virtual hosts to be correctly referenced. &lt;br /&gt;
&lt;br /&gt;
===Other vulnerabilities===&lt;br /&gt;
The presence of a new service, listening in a separate tcp port may introduce vulnerabilities such as Infrastructure vulnerability if software is not up to date [4]. Futhermore for a correct protection of data during transmission Session Cookie must use the Secure flag [5] and some directives should be sent to the browser to accept only secure traffic (e.g. HSTS [6], CSP [9]). &lt;br /&gt;
&lt;br /&gt;
Also there are some attacks can be used to intercept traffic if the web server exposes the application on both HTTP and HTTPS [6], [7] or in case of mixed HTTP and HTTPS resources in the same page.&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
&lt;br /&gt;
===Testing for sensitive data transmitted in clear-text===&lt;br /&gt;
Various typologies of information which must be protected can be also transmitted in clear text. It is possible to check if these information is transmitted over HTTP instead of HTTPS.&lt;br /&gt;
&lt;br /&gt;
Please refer to specific Tests for full details, for credentials [3] and other kind of data [2].  &lt;br /&gt;
&lt;br /&gt;
=====Example 1. Basic Authentication over HTTP=====&lt;br /&gt;
A typical example is the usage of Basic Authentication over HTTP. Also because with Basic Authentication, after login, credentials are encoded - and not encrypted - into HTTP Headers.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl -kis http://example.com/restricted/&lt;br /&gt;
HTTP/1.1 401 Authorization Required&lt;br /&gt;
Date: Fri, 01 Aug 2013 00:00:00 GMT&lt;br /&gt;
WWW-Authenticate: Basic realm=&amp;quot;Restricted Area&amp;quot;&lt;br /&gt;
Accept-Ranges: bytes&lt;br /&gt;
Vary: Accept-Encoding&lt;br /&gt;
Content-Length: 162&lt;br /&gt;
Content-Type: text/html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;401 Authorization Required&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body bgcolor=white&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;401 Authorization Required&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Invalid login credentials!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Testing for Weak SSL/TLS Ciphers/Protocols/Keys vulnerabilities===&lt;br /&gt;
Large number of available cipher suites and quick progress in cryptanalysis makes judging a SSL server a non-trivial task. At the time of writing these criteria are widely recognized as minimum checklist:&lt;br /&gt;
* Weak ciphers must not be used (e.g. less than 128 bits [10]; no NULL ciphers suite, due to no encryption used; no Anonymous Diffie-Hellmann, due to not provides authentication).&lt;br /&gt;
* Weak protocols must be disabled (e.g. SSLv2 must be disabled, due to known weaknesses in protocol design [11]).&lt;br /&gt;
* Renegotiation must be properly configured (e.g. Insecure Renegotiation must be disabled, due to MiTM attacks [12] and Client-initiated Renegotiation must be disabled, due to Denial of Service vulnerability [13]).&lt;br /&gt;
* No Export (EXP) level cipher suites, due to can be easly broken [10].&lt;br /&gt;
* X.509 certificates key length must be strong (e.g. if RSA or DSA is used the key must be at least 1024 bits).&lt;br /&gt;
* X.509 certificates must be signed only with secure hashing algoritms (e.g. not signed using MD5 hash, due to known collision attacks on this hash).&lt;br /&gt;
* Keys must be generated with proper entropy (e.g, Weak Key Generated with Debian) [14].&lt;br /&gt;
A most complete checklist includes:&lt;br /&gt;
* Secure Renegotiation should be enabled.&lt;br /&gt;
* MD5 should not be used, due to known collision attacks. [35]&lt;br /&gt;
* RC4 should not be used, due to crypto-analytical attacks [15].&lt;br /&gt;
* Server should be protected from BEAST Attack [16].&lt;br /&gt;
* Server should be protected from CRIME attack, TLS compression must be disabled [17].&lt;br /&gt;
* Server should support Forward Secrecy [18].&lt;br /&gt;
&lt;br /&gt;
Following standards can be used as reference while assessing SSL servers:&lt;br /&gt;
* PCI-DSS v2.0 in point 4.1 requires compliant parties to use &amp;quot;strong cryptography&amp;quot; without precisely defining key lengths and algorithms. Common interpretation, partially based on previous versions of the standard, is that at least 128 bit key cipher, no export strength algorithms and no SSLv2 should be used [19].&lt;br /&gt;
* Qualys SSL Labs Server Rating Guide [14], Depoloyment best practice [10] and SSL Threat Model [20] has been proposed to standardize SSL server assessment and configuration. But is less updated than the SSL Server tool [21].&lt;br /&gt;
* OWASP has a lot of resources about SSL/TLS Security [22], [23], [24], [25]. [26].&lt;br /&gt;
&lt;br /&gt;
Some tools and scanners both free - e.g. SSLAudit [28] or SSLScan [29] and commercial - e.g. Tenable Nessus [27], and other used into examples - can be used to assess SSL/TLS vulnerabilities. But due to evolution of these vulnerabilities a good way is also to check them manually with openssl [30] or using tool’s output as an input for manual evaluation using the references on the bottom on the Test to stay updated.&lt;br /&gt;
&lt;br /&gt;
Sometimes the SSL/TLS enabled service is not directly accessible and you can access it only via HTTP proxy using CONNECT method [36]. Most of the tools will try to connect to desired tcp port in order to start SSL/TLS handshake. This will obviously not work since desired port is accessible only via HTTP proxy. You can easily circumvent this by using relaying software such as socat [37].&lt;br /&gt;
&lt;br /&gt;
====Example 2. SSL service recognition via nmap====&lt;br /&gt;
First step is to identify ports which have SSL/TLS wrapped services. Typically tcp ports with SSL for web and mail services are -  but not limited to - 443 (https), 465 (ssmtp), 585 (imap4-ssl), 993 (imaps), 995 (ssl-pop).&lt;br /&gt;
In this example we search for SSL services using nmap with “-sV” option, used for identify services and it is also able to identify SSL services [31]. Other options are for this particular example and must be customized. Often in a Web Application Penetration Test scope is limited to port 80 and 443.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nmap -sV --reason -PN -n --top-ports 100 www.example.com&lt;br /&gt;
Starting Nmap 6.25 ( http://nmap.org ) at 2013-01-01 00:00 CEST&lt;br /&gt;
Nmap scan report for www.example.com (127.0.0.1)&lt;br /&gt;
Host is up, received user-set (0.20s latency).&lt;br /&gt;
Not shown: 89 filtered ports&lt;br /&gt;
Reason: 89 no-responses&lt;br /&gt;
PORT    STATE SERVICE  REASON  VERSION&lt;br /&gt;
21/tcp  open  ftp      syn-ack Pure-FTPd&lt;br /&gt;
22/tcp  open  ssh      syn-ack OpenSSH 5.3 (protocol 2.0)&lt;br /&gt;
25/tcp  open  smtp     syn-ack Exim smtpd 4.80&lt;br /&gt;
26/tcp  open  smtp     syn-ack Exim smtpd 4.80&lt;br /&gt;
80/tcp  open  http     syn-ack&lt;br /&gt;
110/tcp open  pop3     syn-ack Dovecot pop3d&lt;br /&gt;
143/tcp open  imap     syn-ack Dovecot imapd&lt;br /&gt;
443/tcp open  ssl/http syn-ack Apache&lt;br /&gt;
465/tcp open  ssl/smtp syn-ack Exim smtpd 4.80&lt;br /&gt;
993/tcp open  ssl/imap syn-ack Dovecot imapd&lt;br /&gt;
995/tcp open  ssl/pop3 syn-ack Dovecot pop3d&lt;br /&gt;
Service Info: Hosts: example.com&lt;br /&gt;
Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .&lt;br /&gt;
Nmap done: 1 IP address (1 host up) scanned in 131.38 seconds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Example 3. Checking for Certificate information, Weak Ciphers and SSLv2 via nmap====&lt;br /&gt;
nmap has two scripts for checking Certificate information, Weak Ciphers and SSLv2 [31].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nmap --script ssl-cert,ssl-enum-ciphers -p 443,465,993,995 www.example.com&lt;br /&gt;
Starting Nmap 6.25 ( http://nmap.org ) at 2013-01-01 00:00 CEST&lt;br /&gt;
Nmap scan report for www.example.com (127.0.0.1)&lt;br /&gt;
Host is up (0.090s latency).&lt;br /&gt;
rDNS record for 127.0.0.1: www.example.com&lt;br /&gt;
PORT    STATE SERVICE&lt;br /&gt;
443/tcp open  https&lt;br /&gt;
| ssl-cert: Subject: commonName=www.example.org&lt;br /&gt;
| Issuer: commonName=*******&lt;br /&gt;
| Public Key type: rsa&lt;br /&gt;
| Public Key bits: 1024&lt;br /&gt;
| Not valid before: 2010-01-23T00:00:00+00:00&lt;br /&gt;
| Not valid after:  2020-02-28T23:59:59+00:00&lt;br /&gt;
| MD5:   *******&lt;br /&gt;
|_SHA-1: *******&lt;br /&gt;
| ssl-enum-ciphers: &lt;br /&gt;
|   SSLv3: &lt;br /&gt;
|     ciphers: &lt;br /&gt;
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA - strong&lt;br /&gt;
|       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA - strong&lt;br /&gt;
|       TLS_RSA_WITH_RC4_128_SHA - strong&lt;br /&gt;
|     compressors: &lt;br /&gt;
|       NULL&lt;br /&gt;
|   TLSv1.0: &lt;br /&gt;
|     ciphers: &lt;br /&gt;
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA - strong&lt;br /&gt;
|       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA - strong&lt;br /&gt;
|       TLS_RSA_WITH_RC4_128_SHA - strong&lt;br /&gt;
|     compressors: &lt;br /&gt;
|       NULL&lt;br /&gt;
|_  least strength: strong&lt;br /&gt;
465/tcp open  smtps&lt;br /&gt;
| ssl-cert: Subject: commonName=*.exapmple.com&lt;br /&gt;
| Issuer: commonName=*******&lt;br /&gt;
| Public Key type: rsa&lt;br /&gt;
| Public Key bits: 2048&lt;br /&gt;
| Not valid before: 2010-01-23T00:00:00+00:00&lt;br /&gt;
| Not valid after:  2020-02-28T23:59:59+00:00&lt;br /&gt;
| MD5:   *******&lt;br /&gt;
|_SHA-1: *******&lt;br /&gt;
| ssl-enum-ciphers: &lt;br /&gt;
|   SSLv3: &lt;br /&gt;
|     ciphers: &lt;br /&gt;
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA - strong&lt;br /&gt;
|       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA - strong&lt;br /&gt;
|       TLS_RSA_WITH_RC4_128_SHA - strong&lt;br /&gt;
|     compressors: &lt;br /&gt;
|       NULL&lt;br /&gt;
|   TLSv1.0: &lt;br /&gt;
|     ciphers: &lt;br /&gt;
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA - strong&lt;br /&gt;
|       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA - strong&lt;br /&gt;
|       TLS_RSA_WITH_RC4_128_SHA - strong&lt;br /&gt;
|     compressors: &lt;br /&gt;
|       NULL&lt;br /&gt;
|_  least strength: strong&lt;br /&gt;
993/tcp open  imaps&lt;br /&gt;
| ssl-cert: Subject: commonName=*.exapmple.com&lt;br /&gt;
| Issuer: commonName=*******&lt;br /&gt;
| Public Key type: rsa&lt;br /&gt;
| Public Key bits: 2048&lt;br /&gt;
| Not valid before: 2010-01-23T00:00:00+00:00&lt;br /&gt;
| Not valid after:  2020-02-28T23:59:59+00:00&lt;br /&gt;
| MD5:   *******&lt;br /&gt;
|_SHA-1: *******&lt;br /&gt;
| ssl-enum-ciphers: &lt;br /&gt;
|   SSLv3: &lt;br /&gt;
|     ciphers: &lt;br /&gt;
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA - strong&lt;br /&gt;
|       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA - strong&lt;br /&gt;
|       TLS_RSA_WITH_RC4_128_SHA - strong&lt;br /&gt;
|     compressors: &lt;br /&gt;
|       NULL&lt;br /&gt;
|   TLSv1.0: &lt;br /&gt;
|     ciphers: &lt;br /&gt;
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA - strong&lt;br /&gt;
|       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA - strong&lt;br /&gt;
|       TLS_RSA_WITH_RC4_128_SHA - strong&lt;br /&gt;
|     compressors: &lt;br /&gt;
|       NULL&lt;br /&gt;
|_  least strength: strong&lt;br /&gt;
995/tcp open  pop3s&lt;br /&gt;
| ssl-cert: Subject: commonName=*.exapmple.com&lt;br /&gt;
| Issuer: commonName=*******&lt;br /&gt;
| Public Key type: rsa&lt;br /&gt;
| Public Key bits: 2048&lt;br /&gt;
| Not valid before: 2010-01-23T00:00:00+00:00&lt;br /&gt;
| Not valid after:  2020-02-28T23:59:59+00:00&lt;br /&gt;
| MD5:   *******&lt;br /&gt;
|_SHA-1: *******&lt;br /&gt;
| ssl-enum-ciphers: &lt;br /&gt;
|   SSLv3: &lt;br /&gt;
|     ciphers: &lt;br /&gt;
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA - strong&lt;br /&gt;
|       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA - strong&lt;br /&gt;
|       TLS_RSA_WITH_RC4_128_SHA - strong&lt;br /&gt;
|     compressors: &lt;br /&gt;
|       NULL&lt;br /&gt;
|   TLSv1.0: &lt;br /&gt;
|     ciphers: &lt;br /&gt;
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA - strong&lt;br /&gt;
|       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA - strong&lt;br /&gt;
|       TLS_RSA_WITH_RC4_128_SHA - strong&lt;br /&gt;
|     compressors: &lt;br /&gt;
|       NULL&lt;br /&gt;
|_  least strength: strong&lt;br /&gt;
Nmap done: 1 IP address (1 host up) scanned in 8.64 seconds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Example 4 Checking for Client-initiated Renegotiation and Secure Renegotiation via openssl (manually)====&lt;br /&gt;
openssl [30] can be used for testing manually SSL/TLS. In this example we try to initiate a renegotiation by client [m] connecting to server with openssl - writing the fist line of an HTTP request, in a new line typing “R”, waiting for renegotiaion and completing the HTTP request - and check if secure renegotiaion is supperted looking server output. Using manual request it is also possible to see if Compression is enabled for TLS in order to check for CRIME [13], check for ciphers and other vulnerabilities. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ openssl s_client -connect www2.example.com:443&lt;br /&gt;
CONNECTED(00000003)&lt;br /&gt;
depth=2 ******&lt;br /&gt;
verify error:num=20:unable to get local issuer certificate&lt;br /&gt;
verify return:0&lt;br /&gt;
---&lt;br /&gt;
Certificate chain&lt;br /&gt;
 0 s:******&lt;br /&gt;
   i:******&lt;br /&gt;
 1 s:******&lt;br /&gt;
   i:******&lt;br /&gt;
 2 s:******&lt;br /&gt;
   i:******&lt;br /&gt;
---&lt;br /&gt;
Server certificate&lt;br /&gt;
-----BEGIN CERTIFICATE-----&lt;br /&gt;
******&lt;br /&gt;
-----END CERTIFICATE-----&lt;br /&gt;
subject=******&lt;br /&gt;
issuer=******&lt;br /&gt;
---&lt;br /&gt;
No client certificate CA names sent&lt;br /&gt;
---&lt;br /&gt;
SSL handshake has read 3558 bytes and written 640 bytes&lt;br /&gt;
---&lt;br /&gt;
New, TLSv1/SSLv3, Cipher is DES-CBC3-SHA&lt;br /&gt;
Server public key is 2048 bit&lt;br /&gt;
Secure Renegotiation IS NOT supported&lt;br /&gt;
Compression: NONE&lt;br /&gt;
Expansion: NONE&lt;br /&gt;
SSL-Session:&lt;br /&gt;
    Protocol  : TLSv1&lt;br /&gt;
    Cipher    : DES-CBC3-SHA&lt;br /&gt;
    Session-ID: ******&lt;br /&gt;
    Session-ID-ctx: &lt;br /&gt;
    Master-Key: ******&lt;br /&gt;
    Key-Arg   : None&lt;br /&gt;
    PSK identity: None&lt;br /&gt;
    PSK identity hint: None&lt;br /&gt;
    SRP username: None&lt;br /&gt;
    Start Time: ******&lt;br /&gt;
    Timeout   : 300 (sec)&lt;br /&gt;
    Verify return code: 20 (unable to get local issuer certificate)&lt;br /&gt;
---&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now we can write the first line of an HTTP request and then R in a new line.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HEAD / HTTP/1.1&lt;br /&gt;
R&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Server is renegotiating&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
RENEGOTIATING&lt;br /&gt;
depth=2 C******&lt;br /&gt;
verify error:num=20:unable to get local issuer certificate&lt;br /&gt;
verify return:0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And we can complete our request, checking for response.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HEAD / HTTP/1.1&lt;br /&gt;
&lt;br /&gt;
HTTP/1.1 403 Forbidden ( The server denies the specified Uniform Resource Locator (URL). Contact the server administrator.  )&lt;br /&gt;
Connection: close&lt;br /&gt;
Pragma: no-cache&lt;br /&gt;
Cache-Control: no-cache&lt;br /&gt;
Content-Type: text/html&lt;br /&gt;
Content-Length: 1792  &lt;br /&gt;
&lt;br /&gt;
read:errno=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Even if the HEAD is not permitted, Client-intiated renegotiaion is permitted.&lt;br /&gt;
&lt;br /&gt;
====Example 5. Testing supported Cipher Suites, BEAST and CRIME attacks via TestSSLServer====&lt;br /&gt;
TestSSLServer [32] is a script which permits to check cipher suite and also BEAST and CRIME attacks. BEAST (Browser Exploit Against SSL/TLS)  exploits a vulnerability of CBC in TLS 1.0. CRIME (Compression Ratio Info-leak Made Easy) exploits a vulnerability of TLS Compression, that sould be disabled. It is really interesting a first fix for BEAST was the usage of RC4, but this is discouraged due to a crypto-analytical attack to RC4 [15].&lt;br /&gt;
&lt;br /&gt;
An online tool to check for these attacks is SSL Labs, but can be used only for internet facing servers. Also consider that target data will be stored on SSL Labs server and also will result some connection from SSL Labs server [21].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ java -jar TestSSLServer.jar www3.example.com 443&lt;br /&gt;
Supported versions: SSLv3 TLSv1.0 TLSv1.1 TLSv1.2&lt;br /&gt;
Deflate compression: no&lt;br /&gt;
Supported cipher suites (ORDER IS NOT SIGNIFICANT):&lt;br /&gt;
  SSLv3&lt;br /&gt;
     RSA_WITH_RC4_128_SHA&lt;br /&gt;
     RSA_WITH_3DES_EDE_CBC_SHA&lt;br /&gt;
     DHE_RSA_WITH_3DES_EDE_CBC_SHA&lt;br /&gt;
     RSA_WITH_AES_128_CBC_SHA&lt;br /&gt;
     DHE_RSA_WITH_AES_128_CBC_SHA&lt;br /&gt;
     RSA_WITH_AES_256_CBC_SHA&lt;br /&gt;
     DHE_RSA_WITH_AES_256_CBC_SHA&lt;br /&gt;
     RSA_WITH_CAMELLIA_128_CBC_SHA&lt;br /&gt;
     DHE_RSA_WITH_CAMELLIA_128_CBC_SHA&lt;br /&gt;
     RSA_WITH_CAMELLIA_256_CBC_SHA&lt;br /&gt;
     DHE_RSA_WITH_CAMELLIA_256_CBC_SHA&lt;br /&gt;
     TLS_RSA_WITH_SEED_CBC_SHA&lt;br /&gt;
     TLS_DHE_RSA_WITH_SEED_CBC_SHA&lt;br /&gt;
  (TLSv1.0: idem)&lt;br /&gt;
  (TLSv1.1: idem)&lt;br /&gt;
  TLSv1.2&lt;br /&gt;
     RSA_WITH_RC4_128_SHA&lt;br /&gt;
     RSA_WITH_3DES_EDE_CBC_SHA&lt;br /&gt;
     DHE_RSA_WITH_3DES_EDE_CBC_SHA&lt;br /&gt;
     RSA_WITH_AES_128_CBC_SHA&lt;br /&gt;
     DHE_RSA_WITH_AES_128_CBC_SHA&lt;br /&gt;
     RSA_WITH_AES_256_CBC_SHA&lt;br /&gt;
     DHE_RSA_WITH_AES_256_CBC_SHA&lt;br /&gt;
     RSA_WITH_AES_128_CBC_SHA256&lt;br /&gt;
     RSA_WITH_AES_256_CBC_SHA256&lt;br /&gt;
     RSA_WITH_CAMELLIA_128_CBC_SHA&lt;br /&gt;
     DHE_RSA_WITH_CAMELLIA_128_CBC_SHA&lt;br /&gt;
     DHE_RSA_WITH_AES_128_CBC_SHA256&lt;br /&gt;
     DHE_RSA_WITH_AES_256_CBC_SHA256&lt;br /&gt;
     RSA_WITH_CAMELLIA_256_CBC_SHA&lt;br /&gt;
     DHE_RSA_WITH_CAMELLIA_256_CBC_SHA&lt;br /&gt;
     TLS_RSA_WITH_SEED_CBC_SHA&lt;br /&gt;
     TLS_DHE_RSA_WITH_SEED_CBC_SHA&lt;br /&gt;
     TLS_RSA_WITH_AES_128_GCM_SHA256&lt;br /&gt;
     TLS_RSA_WITH_AES_256_GCM_SHA384&lt;br /&gt;
     TLS_DHE_RSA_WITH_AES_128_GCM_SHA256&lt;br /&gt;
     TLS_DHE_RSA_WITH_AES_256_GCM_SHA384&lt;br /&gt;
----------------------&lt;br /&gt;
Server certificate(s):&lt;br /&gt;
  ******&lt;br /&gt;
----------------------&lt;br /&gt;
Minimal encryption strength:     strong encryption (96-bit or more)&lt;br /&gt;
Achievable encryption strength:  strong encryption (96-bit or more)&lt;br /&gt;
BEAST status: vulnerable&lt;br /&gt;
CRIME status: protected&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Example 6.  Testing SSL/TLS vulnerabilities with sslyze====&lt;br /&gt;
sslyze [33] is a python script which permits also mass scan and XML output. Follows an example of a regular scan. Is one of the most complete and versatile tool for SSL/TLS testing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./sslyze.py --regular example.com:443&lt;br /&gt;
&lt;br /&gt;
 REGISTERING AVAILABLE PLUGINS&lt;br /&gt;
 -----------------------------&lt;br /&gt;
&lt;br /&gt;
  PluginHSTS&lt;br /&gt;
  PluginSessionRenegotiation&lt;br /&gt;
  PluginCertInfo&lt;br /&gt;
  PluginSessionResumption&lt;br /&gt;
  PluginOpenSSLCipherSuites&lt;br /&gt;
  PluginCompression&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 CHECKING HOST(S) AVAILABILITY&lt;br /&gt;
 -----------------------------&lt;br /&gt;
&lt;br /&gt;
  example.com:443                      =&amp;gt; 127.0.0.1:443&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 SCAN RESULTS FOR EXAMPLE.COM:443 - 127.0.0.1:443&lt;br /&gt;
 ---------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
  * Compression :&lt;br /&gt;
        Compression Support:      Disabled&lt;br /&gt;
&lt;br /&gt;
  * Session Renegotiation :&lt;br /&gt;
      Client-initiated Renegotiations:    Rejected&lt;br /&gt;
      Secure Renegotiation:               Supported&lt;br /&gt;
&lt;br /&gt;
  * Certificate :&lt;br /&gt;
      Validation w/ Mozilla's CA Store:  Certificate is NOT Trusted: unable to get local issuer certificate&lt;br /&gt;
      Hostname Validation:               MISMATCH                           &lt;br /&gt;
      SHA1 Fingerprint:                  ******&lt;br /&gt;
&lt;br /&gt;
      Common Name:                       www.example.com                     &lt;br /&gt;
      Issuer:                            ******&lt;br /&gt;
      Serial Number:                     ****                               &lt;br /&gt;
      Not Before:                        Sep 26 00:00:00 2010 GMT           &lt;br /&gt;
      Not After:                         Sep 26 23:59:59 2020 GMT   &lt;br /&gt;
       &lt;br /&gt;
      Signature Algorithm:               sha1WithRSAEncryption              &lt;br /&gt;
      Key Size:                          1024 bit                           &lt;br /&gt;
      X509v3 Subject Alternative Name:   {'othername': ['&amp;lt;unsupported&amp;gt;'], 'DNS': ['www.example.com']}&lt;br /&gt;
&lt;br /&gt;
  * OCSP Stapling :&lt;br /&gt;
      Server did not send back an OCSP response.                                   &lt;br /&gt;
&lt;br /&gt;
  * Session Resumption :&lt;br /&gt;
      With Session IDs:           Supported (5 successful, 0 failed, 0 errors, 5 total attempts).&lt;br /&gt;
      With TLS Session Tickets:   Supported&lt;br /&gt;
&lt;br /&gt;
  * SSLV2 Cipher Suites :&lt;br /&gt;
&lt;br /&gt;
      Rejected Cipher Suite(s): Hidden &lt;br /&gt;
&lt;br /&gt;
      Preferred Cipher Suite: None     &lt;br /&gt;
&lt;br /&gt;
      Accepted Cipher Suite(s): None   &lt;br /&gt;
&lt;br /&gt;
      Undefined - An unexpected error happened: None &lt;br /&gt;
&lt;br /&gt;
  * SSLV3 Cipher Suites :&lt;br /&gt;
&lt;br /&gt;
      Rejected Cipher Suite(s): Hidden &lt;br /&gt;
&lt;br /&gt;
      Preferred Cipher Suite:          &lt;br /&gt;
        RC4-SHA                       128 bits      HTTP 200 OK                        &lt;br /&gt;
&lt;br /&gt;
      Accepted Cipher Suite(s):        &lt;br /&gt;
        CAMELLIA256-SHA               256 bits      HTTP 200 OK                        &lt;br /&gt;
        RC4-SHA                       128 bits      HTTP 200 OK                        &lt;br /&gt;
        CAMELLIA128-SHA               128 bits      HTTP 200 OK                        &lt;br /&gt;
&lt;br /&gt;
      Undefined - An unexpected error happened: None &lt;br /&gt;
&lt;br /&gt;
  * TLSV1_1 Cipher Suites :&lt;br /&gt;
&lt;br /&gt;
      Rejected Cipher Suite(s): Hidden &lt;br /&gt;
&lt;br /&gt;
      Preferred Cipher Suite: None     &lt;br /&gt;
&lt;br /&gt;
      Accepted Cipher Suite(s): None   &lt;br /&gt;
&lt;br /&gt;
      Undefined - An unexpected error happened: &lt;br /&gt;
        ECDH-RSA-AES256-SHA             socket.timeout - timed out         &lt;br /&gt;
        ECDH-ECDSA-AES256-SHA           socket.timeout - timed out         &lt;br /&gt;
&lt;br /&gt;
  * TLSV1_2 Cipher Suites :&lt;br /&gt;
&lt;br /&gt;
      Rejected Cipher Suite(s): Hidden &lt;br /&gt;
&lt;br /&gt;
      Preferred Cipher Suite: None     &lt;br /&gt;
&lt;br /&gt;
      Accepted Cipher Suite(s): None   &lt;br /&gt;
&lt;br /&gt;
      Undefined - An unexpected error happened: &lt;br /&gt;
        ECDH-RSA-AES256-GCM-SHA384      socket.timeout - timed out         &lt;br /&gt;
        ECDH-ECDSA-AES256-GCM-SHA384    socket.timeout - timed out         &lt;br /&gt;
&lt;br /&gt;
  * TLSV1 Cipher Suites :&lt;br /&gt;
&lt;br /&gt;
      Rejected Cipher Suite(s): Hidden &lt;br /&gt;
&lt;br /&gt;
      Preferred Cipher Suite:          &lt;br /&gt;
        RC4-SHA                       128 bits      Timeout on HTTP GET                &lt;br /&gt;
&lt;br /&gt;
      Accepted Cipher Suite(s):        &lt;br /&gt;
        CAMELLIA256-SHA               256 bits      HTTP 200 OK                        &lt;br /&gt;
        RC4-SHA                       128 bits      HTTP 200 OK                        &lt;br /&gt;
        CAMELLIA128-SHA               128 bits      HTTP 200 OK                        &lt;br /&gt;
&lt;br /&gt;
      Undefined - An unexpected error happened: &lt;br /&gt;
        ADH-CAMELLIA256-SHA             socket.timeout - timed out         &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 SCAN COMPLETED IN 9.68 S&lt;br /&gt;
 ------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Testing SSL certificate validity – client and server===&lt;br /&gt;
Firstly upgrade your browser because also CA certs expire and, in every release of the browser, these are been renewed.&lt;br /&gt;
Examine the validity of the certificates used by the application. Browsers will issue a warning when encountering expired certificates, certificates issued by untrusted CAs, and certificates which do not match namewise with the site to which they should refer. By clicking on the padlock which appears in the browser window when visiting an HTTPS site, you can look at information related to the certificate – including the issuer, period of validity, encryption characteristics, etc. If the application requires a client certificate, you probably have installed one to access it. Certificate information is available in the browser by inspecting the relevant certificate(s) in the list of the installed certificates. &lt;br /&gt;
These checks must be applied to all visible SSL-wrapped communication channels used by the application. Though this is the usual https service running on port 443, there may be additional services involved depending on the web application architecture and on deployment issues (an HTTPS administrative port left open, HTTPS services on non-standard ports, etc.). Therefore, apply these checks to all SSL-wrapped ports which have been discovered. For example, the nmap scanner features a scanning mode (enabled by the –sV command line switch) which identifies SSL-wrapped services. The Nessus vulnerability scanner has the capability of performing SSL checks on all SSL/TLS-wrapped services. &lt;br /&gt;
&lt;br /&gt;
Some tools, as in previous examples, check also for certificate validity.&lt;br /&gt;
&lt;br /&gt;
====Example 7. Testing for certificate validity (manually)====&lt;br /&gt;
Rather than providing a fictitious example, we have inserted an anonymized real-life example to stress how frequently one stumbles on https sites whose certificates are inaccurate with respect to naming. &lt;br /&gt;
The following screenshots refer to a regional site of a high-profile IT company. &lt;br /&gt;
&lt;br /&gt;
We are visiting an .it site and the certificate was issued to a .com site! Internet Explorer warns that the name on the certificate does not match the name of the site. &lt;br /&gt;
&lt;br /&gt;
[[Image:SSL Certificate Validity Testing IE Warning.gif]]&lt;br /&gt;
''Warning issued by Microsoft Internet Explorer''&lt;br /&gt;
&lt;br /&gt;
The message issued by Firefox is different – Firefox complains because it cannot ascertain the identity of the .com site the certificate refers to because it does not know the CA which signed the certificate. In fact, Internet Explorer and Firefox do not come preloaded with the same list of CAs. Therefore, the behavior experienced with various browsers may differ.&lt;br /&gt;
&lt;br /&gt;
[[Image:SSL Certificate Validity Testing Firefox Warning.gif]]&lt;br /&gt;
''Warning issued by Mozilla Firefox''&lt;br /&gt;
&lt;br /&gt;
===Testing for other vulnerabilities===&lt;br /&gt;
As mentioned previously there are other types of vulnerabilities that are not related with the SSL/TLS protocol used, the cipher suites or Certificates. A part from others discussed in other parts of the Guide, the another one is possible when the server provide the website both with the HTTP and HTTPS protocols, and permit to an attacker to force a victim into using a non-secure channel instead of a secure one.&lt;br /&gt;
&lt;br /&gt;
====Surf Jacking====&lt;br /&gt;
Surf Jacking attack [7] was first presented by Sandro Gauci and permits to an attacker to hijack an HTTP session even when the victim’s connection is encrypted using SSL or TLS.&lt;br /&gt;
The following is a scenario of how the attack can take place:&lt;br /&gt;
&lt;br /&gt;
The following is a scenario of how the attack can take place:&lt;br /&gt;
* Victim logs into the secure website at https://somesecuresite/.&lt;br /&gt;
* The secure site issues a session cookie as the client logs in.&lt;br /&gt;
* While logged in, the victim opens a new browser window and goes to http:// examplesite/&lt;br /&gt;
* An attacker sitting on the same network is able to see the clear text traffic to http://examplesite.&lt;br /&gt;
* The attacker sends back a &amp;quot;301 Moved Permanently&amp;quot; in response to the clear text traffic to http://examplesite. The response contains the header “Location: http://somesecuresite /”, which makes it appear that examplesite is sending the web browser to somesecuresite. Notice that the URL scheme is HTTP not HTTPS.&lt;br /&gt;
* The victim's browser starts a new clear text connection to http://somesecuresite/ and sends an HTTP request containing cookie in the HTTP header in clear text&lt;br /&gt;
* The attacker sees this traffic and logs the cookie for later (ab)use.&lt;br /&gt;
To test if a website is vulnerable is sufficient to proceed like follow:&lt;br /&gt;
# Check if website supports both HTTP and HTTPS protocol&lt;br /&gt;
# Check if cookies do not have the “Secure” flag&lt;br /&gt;
&lt;br /&gt;
====SSL Strip====&lt;br /&gt;
Often applications supports both HTTP and HTTPS. As for usability or because users do not use to type “https://www.example.com”. Often users go into an HTTPS website from link or a redirect. Typically also home banking site have a similar configuration with an iframed login or a form with action attribute over HTTPS but the page under HTTP.&lt;br /&gt;
An attacker in a privileged position - as described in SSL strip [8] - can incercept traffic when user is into HTTP and manipulate it to get a Man-In-The-Middle attack under HTTPS.&lt;br /&gt;
To test if application is vulnerable is sufficient the website supports both HTTP and HTTPS.&lt;br /&gt;
&lt;br /&gt;
===Testing via HTTP proxy===&lt;br /&gt;
&lt;br /&gt;
Inside corporate environment you can see services that are not directly accessible and you can access them only via HTTP proxy using CONNECT method [36]. Most of the tools will not work in this scenario because they try to connect to desired tcp port in order to start SSL/TLS handshake. With the help of relaying software such as socat [37] you can re-enable those tools for use with services behind HTTP proxy.&lt;br /&gt;
&lt;br /&gt;
====Example 8. Testing via HTTP proxy==== &lt;br /&gt;
&lt;br /&gt;
To connect to destined.application.lan:443 via proxy 10.13.37.100:3128 run socat as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ socat TCP-LISTEN:9999,reuseaddr,fork PROXY:10.13.37.100:destined.application.lan:443,proxyport=3128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can target all other tools to localhost:9999:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ openssl s_client -connect localhost:9999&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All connections to localhost:9999 will be effectively relayed by socat via proxy to destined.application.lan:443.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Gray Box testing and example ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Testing for Weak SSL/TLS Cipher Suites===&lt;br /&gt;
Check the configuration of the web servers which provide https services. If the web application provides other SSL/TLS wrapped services, these should be checked as well. &lt;br /&gt;
&lt;br /&gt;
====Example 9. Windows Server==== &lt;br /&gt;
Check the configuration on a Microsoft Windows Server (2000, 2003 and 2008) using the registry key:&lt;br /&gt;
&amp;lt;pre&amp;gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\&amp;lt;/pre&amp;gt;&lt;br /&gt;
which has some sub-keys like Ciphers, Protocols and KeyExchangeAlgorithms.&lt;br /&gt;
&lt;br /&gt;
====Example 10: Apache====&lt;br /&gt;
To check the cipher suites and protocols supported by Apache2 web server open the ssl.conf file and search for the SSLCipherSuite, SSLProtocol, SSLHonorCipherOrder,SSLInsecureRenegotiation and SSLCompression directives.&lt;br /&gt;
&lt;br /&gt;
===Testing SSL certificate validity – client and server===&lt;br /&gt;
Examine the validity of the certificates used by the application at both server and client levels. The usage of certificates is primarily at the web server level; however, there may be additional communication paths protected by SSL (for example, towards the DBMS). You should check the application architecture to identify all SSL protected channels.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
'''OWASP Resources'''&lt;br /&gt;
* [5] [OWASP Testing Guide - Testing for cookie attributes (OTG-SESS-002)|https://www.owasp.org/index.php/Testing_for_cookies_attributes_(OWASP-SM-002)]&lt;br /&gt;
* [4][OWASP Testing Guide - Test Network/Infrastructure Configuration (OTG-CONFIG-001)|https://www.owasp.org/index.php/Testing_for_infrastructure_configuration_management_(OWASP-CM-003)]&lt;br /&gt;
* [6] [OWASP Testing |https://www.owasp.org/index.php/Testing_for_cookies_attributes_(OWASP-SM-002)][Guide - Testing for Missing HSTS header (OTG-CONFIG-009)|https://www.owasp.org/index.php/Testing_for_Missing_HSTS_header]&lt;br /&gt;
* [2] [OWASP Testing Guide - Testing for Sensitive information sent via unencrypted channels (OTG-CRYPST-007)|https://www.owasp.org/index.php?title=Testing_for_Sensitive_information_sent_via_unencrypted_channels_(OTG-CRYPST-007)&amp;amp;action=edit&amp;amp;redlink=1]&lt;br /&gt;
* [3] [OWASP Testing Guide - Testing for Credentials Transported over an Encrypted Channel (OWASP-AT-001)|https://www.owasp.org/index.php/Testing_for_Credentials_Transported_over_an_Encrypted_Channel_(OWASP-AT-001)]&lt;br /&gt;
* [9] [OWASP Testing Guide - Test Content Security Policy (OTG-CONFIG-008)|https://www.owasp.org/index.php/Testing_for_Content_Security_Policy_weakness]&lt;br /&gt;
* [22] [OWASP Cheat sheet - Transport Layer Protection|https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet]&lt;br /&gt;
* [23] [OWASP TOP 10 2013 - A6 Sensitive Data Exposure|https://www.owasp.org/index.php/Top_10_2013-A6-Sensitive_Data_Exposure]&lt;br /&gt;
* [24] [OWASP TOP 10 2010 - A9 Insufficient Transport Layer Protection|https://www.owasp.org/index.php/Top_10_2010-A9-Insufficient_Transport_Layer_Protection]&lt;br /&gt;
* [25] [OWASP ASVS 2009 - Verification 10|https://code.google.com/p/owasp-asvs/wiki/Verification_V10]&lt;br /&gt;
* [26] [OWASP Application Security FAQ - Cryptography/SSL|https://www.owasp.org/index.php/OWASP_Application_Security_FAQ#Cryptography.2FSSL]&lt;br /&gt;
&lt;br /&gt;
'''Whitepapers'''&lt;br /&gt;
* [1] [RFC5246 - The Transport Layer Security (TLS) Protocol Version 1.2 (Updated by RFC 5746, RFC 5878, RFC 6176)|http://www.ietf.org/rfc/rfc5246.txt]&lt;br /&gt;
* [36] [RFC2817 - Upgrading to TLS Within HTTP/1.1|]&lt;br /&gt;
* [34] [RFC6066 - Transport Layer Security (TLS) Extensions: Extension Definitions|http://www.ietf.org/rfc/rfc6066.txt]&lt;br /&gt;
* [11] [SSLv2 Protocol Multiple Weaknesses |http://osvdb.org/56387]&lt;br /&gt;
* [12] [Mitre - TLS Renegotiation MiTM|http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3555]&lt;br /&gt;
* [13] [Qualys SSL Labs - TLS Renegotiation DoS|https://community.qualys.com/blogs/securitylabs/2011/10/31/tls-renegotiation-and-denial-of-service-attacks]&lt;br /&gt;
* [10] [Qualys SSL Labs - SSL/TLS Deployment Best Practices|https://www.ssllabs.com/projects/best-practices/index.html]&lt;br /&gt;
* [14] [Qualys SSL Labs - SSL Server Rating Guide|https://www.ssllabs.com/projects/rating-guide/index.html]&lt;br /&gt;
* [20] [Qualys SSL Labs - SSL Threat Model|https://www.ssllabs.com/projects/ssl-threat-model/index.html]&lt;br /&gt;
* [18] [Qualys SSL Labs - Forward Secrecy|https://community.qualys.com/blogs/securitylabs/2013/06/25/ssl-labs-deploying-forward-secrecy]&lt;br /&gt;
* [15] [Qualys SSL Labs - RC4 Usage|https://community.qualys.com/blogs/securitylabs/2013/03/19/rc4-in-tls-is-broken-now-what]&lt;br /&gt;
* [16] [Qualys SSL Labs - BEAST|https://community.qualys.com/blogs/securitylabs/2011/10/17/mitigating-the-beast-attack-on-tls]&lt;br /&gt;
* [17] [Qualys SSL Labs - CRIME|https://community.qualys.com/blogs/securitylabs/2012/09/14/crime-information-leakage-attack-against-ssltls]&lt;br /&gt;
* [7] [SurfJacking attack|https://resources.enablesecurity.com/resources/Surf%20Jacking.pdf]&lt;br /&gt;
* [8] [SSLStrip attack|http://www.thoughtcrime.org/software/sslstrip/]&lt;br /&gt;
* [19] [PCI-DSS v2.0|https://www.pcisecuritystandards.org/security_standards/documents.php]&lt;br /&gt;
* [35] [Xiaoyun Wang, Hongbo Yu: How to Break MD5 and Other Hash Functions| http://link.springer.com/chapter/10.1007/11426639_2]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Tools'''&lt;br /&gt;
* [21][Qualys SSL Labs - SSL Server Test|https://www.ssllabs.com/ssltest/index.html]: internet facing scanner&lt;br /&gt;
* [27] [Tenable - Nessus Vulnerability Scanner|http://www.tenable.com/products/nessus]: includes some plugins to test different SSL related vulnerabilities, Certificates and the presence of HTTP Basic authentication without SSL.&lt;br /&gt;
* [32] [TestSSLServer|http://www.bolet.org/TestSSLServer/]: a java scanner - and also windows executable - includes tests for cipher suites, CRIME and BEAST&lt;br /&gt;
* [33] [sslyze|https://github.com/iSECPartners/sslyze]: is a python script to check vulnerabilities in SSL/TLS.&lt;br /&gt;
* [28] [SSLAudit|https://code.google.com/p/sslaudit/]: a perl script/windows executable scanner which follows Qualys SSL Labs Rating Guide.&lt;br /&gt;
* [29] [SSLScan|http://sourceforge.net/projects/sslscan/] with [SSL Tests|http://www.pentesterscripting.com/discovery/ssl_tests]: a SSL Scanner and a wrapper in order to enumerate SSL vulnerabilities.&lt;br /&gt;
* [31] [nmap|http://nmap.org/]: can be used primary to identify SSL-based services and then to check Certificate and SSL/TLS vulnerabilities. In particular it has some scripts to check [Certificate and SSLv2|http://nmap.org/nsedoc/scripts/ssl-cert.html] and supported [SSL/TLS protocols/ciphers|http://nmap.org/nsedoc/scripts/ssl-enum-ciphers.html] with an internal rating.&lt;br /&gt;
* [30] [curl|http://curl.haxx.se/] and [openssl|http://www.openssl.org/]: can be used to query manually SSL/TLS services&lt;br /&gt;
* [9] [Stunnel|http://www.stunnel.org]: a noteworthy class of SSL clients is that of SSL proxies such as stunnel available at which can be used to allow non-SSL enabled tools to talk to SSL services)&lt;br /&gt;
* [37] [socat| http://www.dest-unreach.org/socat/]: Multipurpose relay&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
[[Category:Cryptographic Vulnerability]]&lt;br /&gt;
[[Category:SSL]]&lt;/div&gt;</summary>
		<author><name>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=158010</id>
		<title>Test RIA cross domain policy (OTG-CONFIG-008)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=158010"/>
				<updated>2013-09-05T22:06:05Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
Rich Internet Applications (RIA) have adopted Adobe's crossdomain.xml policy files in order to allow for controlled cross domain access to data and service consumption using technologies such as Oracle Java, Silverlight, and Adobe Flash. Therefore, a domain can grant remote access to its services from a different domain. However, often the policy files that describe the access restrictions are poorly configured. Poor configuration of the policy files enables Cross-site Request Forgery attacks, and may allow third parties to access sensitive data meant for the user. &lt;br /&gt;
&lt;br /&gt;
HTML5 also incorporates a new way of performing cross domain requests: Cross Origin Resource Sharing (CORS). These can also be improperly configured and enable an attacker to perform similar attacks. &lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
=== What are cross-domain policy files ===&lt;br /&gt;
A cross-domain policy file specifies the permissions that a web client such as Java, Adobe Flash, Adobe Reader, etc. to access data across different domains. For Silverlight, Microsoft adopted a subset of the Adobe's crossdomain.xml, and additionally created it's own cross-domain policy file: clientaccesspolicy.xml.&lt;br /&gt;
&lt;br /&gt;
Whenever a web client detects that a resource has to be requested from other domain, it will first look for a policy file in the target domain in order to determine if performing cross-domain requests, including headers, and socket-based connections are allowed.&lt;br /&gt;
&lt;br /&gt;
Master policy files are located at the domain's root. A client may be instructed to load a different policy file, however, it will always check the master policy file first to ensure that the master policy file permits the requested policy file.&lt;br /&gt;
=== What is CORS===&lt;br /&gt;
CORS is HTML5's way of enabling web applications to perform cross-domain requests. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Crossdomain.xml vs. Clientaccesspolicy.xml ====&lt;br /&gt;
Most RIA applications support crossdomain.xml. However in the case of Silverlight, it will only work if the crossdomain.xml specifies that access is allowed from any domain. For more granular control with Silverlight, clientaccesspolicy.xml must be used.&lt;br /&gt;
&lt;br /&gt;
Policy files grant several types of permissions:&lt;br /&gt;
* Accepted policy files (Master policy files can disable or restrict specific policy files)&lt;br /&gt;
* Sockets permissions&lt;br /&gt;
* Header permissions&lt;br /&gt;
* HTTP/HTTPS access permissions&lt;br /&gt;
* Allowing access based on cryptographic credentials&lt;br /&gt;
&lt;br /&gt;
An example of an overly permissive policy file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE cross-domain-policy SYSTEM&lt;br /&gt;
&amp;quot;http://www.adobe.com/xml/dtds/cross-domain-policy.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cross-domain-policy&amp;gt;&lt;br /&gt;
   &amp;lt;site-control permitted-cross-domain-policies=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-http-request-headers-from domain=&amp;quot;*&amp;quot; headers=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How can RIA policy files be abused ===&lt;br /&gt;
* Overly permissive RIA policy files&lt;br /&gt;
* Generating server responses that may be treated as cross-domain policy files&lt;br /&gt;
* Using file upload functionality to upload files that may be treated as cross-domain policy files.&lt;br /&gt;
&lt;br /&gt;
=== Impact of abusing crossdomain.xml policy files ===&lt;br /&gt;
* Cross-domain access to site&lt;br /&gt;
* Defeat CSRF protections&lt;br /&gt;
* Read data restricted or otherwise protected by cross-origin policies.&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
'''Testing for RIA policy files weakness:''' &amp;lt;br&amp;gt;&lt;br /&gt;
In order to test for RIA policy file weakness you should try to retrieve the policy files crossdomain.xml and clientaccesspolicy.xml from the application's root, and from every folder found.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For example, if the application's URL is http://www.owasp.org, you should try to download the files http://www.owasp.org/crossdomain.xml and http://www.owasp.org/clientaccesspolicy.xml.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
After retrieving all the policy files, the permissions allowed should be be checked under the least privilege principle. Requests should only come from the domains, ports, or protocols that are necessary. Overly permissive policies should be avoided. Policies with &amp;quot;*&amp;quot; in them should be closely examined.  &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;cross-domain-policy&amp;gt; &lt;br /&gt;
 &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; /&amp;gt; &lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
A list of policy files found. &amp;lt;br&amp;gt;&lt;br /&gt;
A weak settings in the policies.&amp;lt;br&amp;gt;&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
* UCSD: &amp;quot;Analyzing the Crossdomain Policies of Flash Applications&amp;quot; - http://cseweb.ucsd.edu/~hovav/dist/crossdomain.pdf&lt;br /&gt;
* Adobe: &amp;quot;Cross-domain policy file specification&amp;quot; - http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html&lt;br /&gt;
* Adobe: &amp;quot;Cross-domain policy file usage recommendations for Flash Player&amp;quot; - http://www.adobe.com/devnet/flashplayer/articles/cross_domain_policy.html&lt;br /&gt;
* Oracle: &amp;quot;Cross-Domain XML Support&amp;quot; - http://www.oracle.com/technetwork/java/javase/plugin2-142482.html#CROSSDOMAINXML&lt;br /&gt;
* MSDN: &amp;quot;Making a Service Available Across Domain Boundaries&amp;quot; - http://msdn.microsoft.com/en-us/library/cc197955(v=vs.95).aspx&lt;br /&gt;
* MSDN: &amp;quot;Network Security Access Restrictions in Silverlight&amp;quot; - http://msdn.microsoft.com/en-us/library/cc645032(v=vs.95).aspx&lt;br /&gt;
* Stefan Esser: &amp;quot;Poking new holes with Flash Crossdomain Policy Files&amp;quot; http://www.hardened-php.net/library/poking_new_holes_with_flash_crossdomain_policy_files.html&lt;br /&gt;
* Jeremiah Grossman: &amp;quot;Crossdomain.xml Invites Cross-site Mayhem&amp;quot; http://jeremiahgrossman.blogspot.com/2008/05/crossdomainxml-invites-cross-site.html&lt;br /&gt;
* http://code.google.com/p/doctype-mirror/wiki/ArticleFlashSecurity&lt;br /&gt;
* http://www.html5rocks.com/en/tutorials/cors/&lt;br /&gt;
* http://omarrr.com/cors-html5-approach-to-crossdomain-policies/&lt;br /&gt;
* http://www.w3.org/TR/cors/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Nikto&lt;/div&gt;</summary>
		<author><name>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=158009</id>
		<title>Test RIA cross domain policy (OTG-CONFIG-008)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=158009"/>
				<updated>2013-09-05T21:52:57Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
Rich Internet Applications (RIA) have adopted Adobe's crossdomain.xml policy files in order to allow for controlled cross domain access to data and service consumption using technologies such as Oracle Java, Silverlight, and Adobe Flash. Therefore, a domain can grant remote access to its services from a different domain. However, often the policy files that describe the access restrictions are poorly configured. Poor configuration of the policy files enables Cross-site Request Forgery attacks, and may allow third parties to access sensitive data meant for the user. &lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
=== What are cross-domain policy files ===&lt;br /&gt;
A cross-domain policy file specifies the permissions that a web client such as Java, Adobe Flash, Adobe Reader, etc. to access data across different domains. For Silverlight, Microsoft adopted a subset of the Adobe's crossdomain.xml, and additionally created it's own cross-domain policy file: clientaccesspolicy.xml.&lt;br /&gt;
&lt;br /&gt;
Whenever a web client detects that a resource has to be requested from other domain, it will first look for a policy file in the target domain in order to determine if performing cross-domain requests, including headers, and socket-based connections are allowed.&lt;br /&gt;
&lt;br /&gt;
Master policy files are located at the domain's root. A client may be instructed to load a different policy file, however, it will always check the master policy file first to ensure that the master policy file permits the requested policy file.&lt;br /&gt;
&lt;br /&gt;
==== Crossdomain.xml vs. Clientaccesspolicy.xml ====&lt;br /&gt;
Most RIA applications support crossdomain.xml. However in the case of Silverlight, it will only work if the crossdomain.xml specifies that access is allowed from any domain. For more granular control with Silverlight, clientaccesspolicy.xml must be used.&lt;br /&gt;
&lt;br /&gt;
Policy files grant several types of permissions:&lt;br /&gt;
* Accepted policy files (Master policy files can disable or restrict specific policy files)&lt;br /&gt;
* Sockets permissions&lt;br /&gt;
* Header permissions&lt;br /&gt;
* HTTP/HTTPS access permissions&lt;br /&gt;
* Allowing access based on cryptographic credentials&lt;br /&gt;
&lt;br /&gt;
An example of an overly permissive policy file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE cross-domain-policy SYSTEM&lt;br /&gt;
&amp;quot;http://www.adobe.com/xml/dtds/cross-domain-policy.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cross-domain-policy&amp;gt;&lt;br /&gt;
   &amp;lt;site-control permitted-cross-domain-policies=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-http-request-headers-from domain=&amp;quot;*&amp;quot; headers=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How can RIA policy files be abused ===&lt;br /&gt;
* Overly permissive RIA policy files&lt;br /&gt;
* Generating server responses that may be treated as cross-domain policy files&lt;br /&gt;
* Using file upload functionality to upload files that may be treated as cross-domain policy files.&lt;br /&gt;
&lt;br /&gt;
=== Impact of abusing crossdomain.xml policy files ===&lt;br /&gt;
* Cross-domain access to site&lt;br /&gt;
* Defeat CSRF protections&lt;br /&gt;
* Read data restricted or otherwise protected by cross-origin policies.&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
'''Testing for RIA policy files weakness:''' &amp;lt;br&amp;gt;&lt;br /&gt;
In order to test for RIA policy file weakness you should try to retrieve the policy files crossdomain.xml and clientaccesspolicy.xml from the application's root, and from every folder found.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For example, if the application's URL is http://www.owasp.org, you should try to download the files http://www.owasp.org/crossdomain.xml and http://www.owasp.org/clientaccesspolicy.xml.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
After retrieving all the policy files, the permissions allowed should be be checked under the least privilege principle. Requests should only come from the domains, ports, or protocols that are necessary. Overly permissive policies should be avoided. Policies with &amp;quot;*&amp;quot; in them should be closely examined.  &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;cross-domain-policy&amp;gt; &lt;br /&gt;
 &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; /&amp;gt; &lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
A list of policy files found. &amp;lt;br&amp;gt;&lt;br /&gt;
A weak settings in the policies.&amp;lt;br&amp;gt;&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
* UCSD: &amp;quot;Analyzing the Crossdomain Policies of Flash Applications&amp;quot; - http://cseweb.ucsd.edu/~hovav/dist/crossdomain.pdf&lt;br /&gt;
* Adobe: &amp;quot;Cross-domain policy file specification&amp;quot; - http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html&lt;br /&gt;
* Adobe: &amp;quot;Cross-domain policy file usage recommendations for Flash Player&amp;quot; - http://www.adobe.com/devnet/flashplayer/articles/cross_domain_policy.html&lt;br /&gt;
* Oracle: &amp;quot;Cross-Domain XML Support&amp;quot; - http://www.oracle.com/technetwork/java/javase/plugin2-142482.html#CROSSDOMAINXML&lt;br /&gt;
* MSDN: &amp;quot;Making a Service Available Across Domain Boundaries&amp;quot; - http://msdn.microsoft.com/en-us/library/cc197955(v=vs.95).aspx&lt;br /&gt;
* MSDN: &amp;quot;Network Security Access Restrictions in Silverlight&amp;quot; - http://msdn.microsoft.com/en-us/library/cc645032(v=vs.95).aspx&lt;br /&gt;
* Stefan Esser: &amp;quot;Poking new holes with Flash Crossdomain Policy Files&amp;quot; http://www.hardened-php.net/library/poking_new_holes_with_flash_crossdomain_policy_files.html&lt;br /&gt;
* Jeremiah Grossman: &amp;quot;Crossdomain.xml Invites Cross-site Mayhem&amp;quot; http://jeremiahgrossman.blogspot.com/2008/05/crossdomainxml-invites-cross-site.html&lt;br /&gt;
* http://code.google.com/p/doctype-mirror/wiki/ArticleFlashSecurity&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Nikto&lt;/div&gt;</summary>
		<author><name>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=157985</id>
		<title>Test RIA cross domain policy (OTG-CONFIG-008)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=157985"/>
				<updated>2013-09-05T17:02:11Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
Rich Internet Applications (RIA) have adopted Adobe's crossdomain.xml policy files in order to allow for controlled cross domain access to data and service consumption using technologies such as Oracle Java, Silverlight, and Adobe Flash. Therefore, a domain can grant remote access to its services from a different domain. However, often the policy files that describe the access restrictions are poorly configured. Poor configuration of the policy files enables Cross-site Request Forgery attacks, and may allow third parties to access sensitive data meant for the user. &lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
=== What are cross-domain policy files ===&lt;br /&gt;
A cross-domain policy file specifies the permissions that a web client such as Java, Adobe Flash, Adobe Reader, etc. to access data across different domains. For Silverlight, Microsoft adopted a subset of the Adobe's crossdomain.xml, and additionally created it's own cross-domain policy file: clientaccesspolicy.xml.&lt;br /&gt;
&lt;br /&gt;
Whenever a web client detects that a resource has to be requested from other domain, it will first look for a policy file in the target domain in order to determine if performing cross-domain requests, including headers, and socket-based connections are allowed.&lt;br /&gt;
&lt;br /&gt;
Master policy files are located at the domain's root. A client may be instructed to load a different policy file, however, it will always check the master policy file first to ensure that the master policy file permits the requested policy file.&lt;br /&gt;
&lt;br /&gt;
==== Crossdomain.xml vs. Clientaccesspolicy.xml ====&lt;br /&gt;
Most RIA applications support crossdomain.xml. However in the case of Silverlight, it will only work if the crossdomain.xml specifies that access is allowed from any domain. For more granular control with Silverlight, clientaccesspolicy.xml must be used.&lt;br /&gt;
&lt;br /&gt;
Policy files grant several types of permissions:&lt;br /&gt;
* Accepted policy files (Master policy files can disable or restrict specific policy files)&lt;br /&gt;
* Sockets permissions&lt;br /&gt;
* Header permissions&lt;br /&gt;
* HTTP/HTTPS access permissions&lt;br /&gt;
* Allowing access based on cryptographic credentials&lt;br /&gt;
&lt;br /&gt;
An example of an overly permissive policy file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE cross-domain-policy SYSTEM&lt;br /&gt;
&amp;quot;http://www.adobe.com/xml/dtds/cross-domain-policy.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cross-domain-policy&amp;gt;&lt;br /&gt;
   &amp;lt;site-control permitted-cross-domain-policies=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-http-request-headers-from domain=&amp;quot;*&amp;quot; headers=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How can RIA policy files be abused ===&lt;br /&gt;
* Overly permissive RIA policy files&lt;br /&gt;
* Generating server responses that may be treated as cross-domain policy files&lt;br /&gt;
* Using file upload functionality to upload files that may be treated as cross-domain policy files.&lt;br /&gt;
&lt;br /&gt;
=== Impact of abusing crossdomain.xml policy files ===&lt;br /&gt;
* Cross-domain access to site&lt;br /&gt;
* Defeat CSRF protections&lt;br /&gt;
* Read data restricted or otherwise protected by cross-origin policies.&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
'''Testing for RIA policy files weakness:''' &amp;lt;br&amp;gt;&lt;br /&gt;
In order to test for RIA policy file weakness you should try to retrieve the policy files crossdomain.xml and clientaccesspolicy.xml from the application's root, and from every folder found.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For example, if the application's URL is http://www.owasp.org, you should try to download the files http://www.owasp.org/crossdomain.xml and http://www.owasp.org/clientaccesspolicy.xml.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
After retrieving all the policy files, the permissions allowed should be be checked under the least privilege principle. Requests should only come from the domains, ports, or protocols that are necessary. Overly permissive policies should be avoided. Policies with &amp;quot;*&amp;quot; in them should be closely examined.  &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
A list of policy files found. &amp;lt;br&amp;gt;&lt;br /&gt;
A weak settings in the policies.&amp;lt;br&amp;gt;&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Adobe: &amp;quot;Cross-domain policy file specification&amp;quot; - http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html&lt;br /&gt;
* Oracle: &amp;quot;Cross-Domain XML Support&amp;quot; - http://www.oracle.com/technetwork/java/javase/plugin2-142482.html#CROSSDOMAINXML&lt;br /&gt;
* MSDN: &amp;quot;Making a Service Available Across Domain Boundaries&amp;quot; - http://msdn.microsoft.com/en-us/library/cc197955(v=vs.95).aspx&lt;br /&gt;
* MSDN: &amp;quot;Network Security Access Restrictions in Silverlight&amp;quot; - http://msdn.microsoft.com/en-us/library/cc645032(v=vs.95).aspx&lt;br /&gt;
* Stefan Esser: &amp;quot;Poking new holes with Flash Crossdomain Policy Files&amp;quot; http://www.hardened-php.net/library/poking_new_holes_with_flash_crossdomain_policy_files.html&lt;br /&gt;
* Jeremiah Grossman: &amp;quot;Crossdomain.xml Invites Cross-site Mayhem&amp;quot; http://jeremiahgrossman.blogspot.com/2008/05/crossdomainxml-invites-cross-site.html&lt;br /&gt;
* http://code.google.com/p/doctype-mirror/wiki/ArticleFlashSecurity&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Nikto&lt;/div&gt;</summary>
		<author><name>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=157703</id>
		<title>Test RIA cross domain policy (OTG-CONFIG-008)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=157703"/>
				<updated>2013-09-03T06:49:10Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
Rich Internet Applications (RIA) have adopted Adobe's crossdomain.xml policy files in order to allow for controlled cross domain access to data and service consumption using technologies such as Oracle Java, Silverlight, and Adobe Flash. Therefore, a domain can grant remote access to its services from a different domain. However, often the policy files that describe the access restrictions are poorly configured. Poor configuration of the policy files enables Cross-site Request Forgery attacks, and may allow third parties to access sensitive data meant for the user. &lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
=== What are cross-domain policy files ===&lt;br /&gt;
A cross-domain policy file specifies the permissions that a web client such as Java, Adobe Flash, Adobe Reader, etc. to access data across different domains. For Silverlight, Microsoft adopted a subset of the Adobe's crossdomain.xml, and additionally created it's own cross-domain policy file: clientaccesspolicy.xml.&lt;br /&gt;
&lt;br /&gt;
Whenever a web client detects that a resource has to be requested from other domain, it will first look for a policy file in the target domain in order to determine if performing cross-domain requests, including headers, and socket-based connections are allowed.&lt;br /&gt;
&lt;br /&gt;
Master policy files are located at the domain's root. A client may be instructed to load a different policy file, however, it will always check the master policy file first to ensure that the master policy file permits the requested policy file.&lt;br /&gt;
&lt;br /&gt;
==== Crossdomain.xml vs. Clientaccesspolicy.xml ====&lt;br /&gt;
Most RIA applications support crossdomain.xml. However in the case of Silverlight, it will only work if the crossdomain.xml specifies that access is allowed from any domain. For more granular control with Silverlight, clientaccesspolicy.xml must be used.&lt;br /&gt;
&lt;br /&gt;
Policy files grant several types of permissions:&lt;br /&gt;
* Accepted policy files (Master policy files can disable or restrict specific policy files)&lt;br /&gt;
* Sockets permissions&lt;br /&gt;
* Header permissions&lt;br /&gt;
* HTTP/HTTPS access permissions&lt;br /&gt;
* Allowing access based on cryptographic credentials&lt;br /&gt;
&lt;br /&gt;
An example of an overly permissive policy file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE cross-domain-policy SYSTEM&lt;br /&gt;
&amp;quot;http://www.adobe.com/xml/dtds/cross-domain-policy.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cross-domain-policy&amp;gt;&lt;br /&gt;
   &amp;lt;site-control permitted-cross-domain-policies=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-http-request-headers-from domain=&amp;quot;*&amp;quot; headers=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How can RIA policy files be abused ===&lt;br /&gt;
* Overly permissive RIA policy files&lt;br /&gt;
* Generating server responses that may be treated as cross-domain policy files&lt;br /&gt;
* Using file upload functionality to upload files that may be treated as cross-domain policy files.&lt;br /&gt;
&lt;br /&gt;
=== Impact of abusing crossdomain.xml policy files ===&lt;br /&gt;
* Cross-domain access to site&lt;br /&gt;
* Defeat CSRF protections&lt;br /&gt;
* Read data restricted or otherwise protected by cross-origin policies.&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
'''Testing for RIA policy files weakness:''' &amp;lt;br&amp;gt;&lt;br /&gt;
In order to test for RIA policy file weakness you should try to retrieve the policy files crossdomain.xml and clientaccesspolicy.xml from the application's root, and from every folder found.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
After retrieving all the policy files, the permissions allowed should be be checked under the least privilege principle. Requests should only come from the domains, ports, or protocols that are necessary. Overly permissive policies should be avoided. Policies with &amp;quot;*&amp;quot; in them should be closely examined.  &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
A list of policy files found. &amp;lt;br&amp;gt;&lt;br /&gt;
A weak settings in the policies.&amp;lt;br&amp;gt;&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Adobe: &amp;quot;Cross-domain policy file specification&amp;quot; - http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html&lt;br /&gt;
* Oracle: &amp;quot;Cross-Domain XML Support&amp;quot; - http://www.oracle.com/technetwork/java/javase/plugin2-142482.html#CROSSDOMAINXML&lt;br /&gt;
* MSDN: &amp;quot;Making a Service Available Across Domain Boundaries&amp;quot; - http://msdn.microsoft.com/en-us/library/cc197955(v=vs.95).aspx&lt;br /&gt;
* MSDN: &amp;quot;Network Security Access Restrictions in Silverlight&amp;quot; - http://msdn.microsoft.com/en-us/library/cc645032(v=vs.95).aspx&lt;br /&gt;
* Stefan Esser: &amp;quot;Poking new holes with Flash Crossdomain Policy Files&amp;quot; http://www.hardened-php.net/library/poking_new_holes_with_flash_crossdomain_policy_files.html&lt;br /&gt;
* Jeremiah Grossman: &amp;quot;Crossdomain.xml Invites Cross-site Mayhem&amp;quot; http://jeremiahgrossman.blogspot.com/2008/05/crossdomainxml-invites-cross-site.html&lt;br /&gt;
* http://code.google.com/p/doctype-mirror/wiki/ArticleFlashSecurity&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Nikto&lt;/div&gt;</summary>
		<author><name>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=157702</id>
		<title>Test RIA cross domain policy (OTG-CONFIG-008)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=157702"/>
				<updated>2013-09-03T06:47:40Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
Rich Internet Applications (RIA) have adopted Adobe's crossdomain.xml policy files in order to allow for controlled cross domain access to data and service consumption using technologies such as Oracle Java, Silverlight, and Adobe Flash. Therefore, a domain can grant remote access to its services from a different domain. However, often the policy files that describe the access restrictions are poorly configured. Poor configuration of the policy files enables Cross-site Request Forgery attacks, and may allow third parties to access sensitive data meant for the user. &lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
=== What are cross-domain policy files ===&lt;br /&gt;
A cross-domain policy file specifies the permissions that a web client such as Java, Adobe Flash, Adobe Reader, etc. to access data across different domains. For Silverlight, Microsoft adopted a subset of the Adobe's crossdomain.xml, and additionally created it's own cross-domain policy file: clientaccesspolicy.xml.&lt;br /&gt;
&lt;br /&gt;
Whenever a web client detects that a resource has to be requested from other domain, it will first look for a policy file in the target domain in order to determine if performing cross-domain requests, including headers, and socket-based connections are allowed.&lt;br /&gt;
&lt;br /&gt;
Master policy files are located at the domain's root. A client may be instructed to load a different policy file, however, it will always check the master policy file first to ensure that the master policy file permits the requested policy file.&lt;br /&gt;
&lt;br /&gt;
==== Crossdomain.xml vs. Clientaccesspolicy.xml ====&lt;br /&gt;
Most RIA applications support crossdomain.xml. However in the case of Silverlight, it will only work if the crossdomain.xml specifies that access is allowed from any domain. For more granular control with Silverlight, clientaccesspolicy.xml must be used.&lt;br /&gt;
&lt;br /&gt;
Policy files grant several types of permissions:&lt;br /&gt;
* Accepted policy files (Master policy files can disable or restrict specific policy files)&lt;br /&gt;
* Sockets permissions&lt;br /&gt;
* Header permissions&lt;br /&gt;
* HTTP/HTTPS access permissions&lt;br /&gt;
* Allowing access based on cryptographic credentials&lt;br /&gt;
&lt;br /&gt;
An example of an overly permissive policy file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE cross-domain-policy SYSTEM&lt;br /&gt;
&amp;quot;http://www.adobe.com/xml/dtds/cross-domain-policy.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cross-domain-policy&amp;gt;&lt;br /&gt;
   &amp;lt;site-control permitted-cross-domain-policies=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-http-request-headers-from domain=&amp;quot;*&amp;quot; headers=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How can RIA policy files be abused ===&lt;br /&gt;
* Overly permissive RIA policy files&lt;br /&gt;
* Generating server responses that may be treated as cross-domain policy files&lt;br /&gt;
* Using file upload functionality to upload files that may be treated as cross-domain policy files.&lt;br /&gt;
&lt;br /&gt;
=== Impact of abusing crossdomain.xml policy files ===&lt;br /&gt;
* Cross-domain access to site&lt;br /&gt;
* Defeat CSRF protections&lt;br /&gt;
* Read data restricted or otherwise protected by cross-origin policies.&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
'''Testing for RIA policy files weakness:''' &amp;lt;br&amp;gt;&lt;br /&gt;
In order to test for RIA policy file weakness you should try to retrieve the policy files crossdomain.xml and clientaccesspolicy.xml from the application's root, and from every folder found.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
After retrieving all the policy files, the permissions allowed should be be checked under the least privilege principle. Requests should only come from the domains, ports, or protocols that are necessary. Overly permissive policies should be avoided. Policies with &amp;quot;*&amp;quot; in them should be closely examined.  &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
A list of policy files found. &amp;lt;br&amp;gt;&lt;br /&gt;
A weak settings in the policies.&amp;lt;br&amp;gt;&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Adobe: &amp;quot;Cross-domain policy file specification&amp;quot; - http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html&lt;br /&gt;
* Oracle: &amp;quot;Cross-Domain XML Support&amp;quot; - http://www.oracle.com/technetwork/java/javase/plugin2-142482.html#CROSSDOMAINXML&lt;br /&gt;
* MSDN: &amp;quot;Making a Service Available Across Domain Boundaries&amp;quot; - http://msdn.microsoft.com/en-us/library/cc197955(v=vs.95).aspx&lt;br /&gt;
* MSDN: &amp;quot;Network Security Access Restrictions in Silverlight&amp;quot; - http://msdn.microsoft.com/en-us/library/cc645032(v=vs.95).aspx&lt;br /&gt;
* Stefan Esser: &amp;quot;Poking new holes with Flash Crossdomain Policy Files&amp;quot; http://www.hardened-php.net/library/poking_new_holes_with_flash_crossdomain_policy_files.html&lt;br /&gt;
* Jeremiah Grossman: &amp;quot;Crossdomain.xml Invites Cross-site Mayhem&amp;quot; http://jeremiahgrossman.blogspot.com/2008/05/crossdomainxml-invites-cross-site.html&lt;br /&gt;
* http://code.google.com/p/doctype-mirror/wiki/ArticleFlashSecurity&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Nikto&lt;br /&gt;
* ZAP Proxy + Watcher checks&lt;/div&gt;</summary>
		<author><name>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=157701</id>
		<title>Test RIA cross domain policy (OTG-CONFIG-008)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=157701"/>
				<updated>2013-09-03T06:43:21Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
Rich Internet Applications (RIA) have adopted Adobe's crossdomain.xml policy files in order to allow for controlled cross domain access to data and service consumption using technologies such as Oracle Java, Silverlight, and Adobe Flash. Therefore, a domain can grant remote access to its services from a different domain. However, often the policy files that describe the access restrictions are poorly configured. Poor configuration of the policy files enables Cross-site Request Forgery attacks, and may allow third parties to access sensitive data meant for the user. &lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
=== What are cross-domain policy files ===&lt;br /&gt;
A cross-domain policy file specifies the permissions that a web client such as Java, Adobe Flash, Adobe Reader, etc. to access data across different domains. For Silverlight, Microsoft adopted a subset of the Adobe's crossdomain.xml, and additionally created it's own cross-domain policy file: clientaccesspolicy.xml.&lt;br /&gt;
&lt;br /&gt;
Whenever a web client detects that a resource has to be requested from other domain, it will first look for a policy file in the target domain in order to determine if performing cross-domain requests, including headers, and socket-based connections are allowed.&lt;br /&gt;
&lt;br /&gt;
Master policy files are located at the domain's root. A client may be instructed to load a different policy file, however, it will always check the master policy file first to ensure that the master policy file permits the requested policy file.&lt;br /&gt;
&lt;br /&gt;
==== Crossdomain.xml vs. Clientaccesspolicy.xml ====&lt;br /&gt;
Most RIA applications support crossdomain.xml. However in the case of Silverlight, it will only work if the crossdomain.xml specifies that access is allowed from any domain. For more granular control with Silverlight, clientaccesspolicy.xml must be used.&lt;br /&gt;
&lt;br /&gt;
Policy files grant several types of permissions:&lt;br /&gt;
* Accepted policy files (Master policy files can disable or restrict specific policy files)&lt;br /&gt;
* Sockets permissions&lt;br /&gt;
* Header permissions&lt;br /&gt;
* HTTP/HTTPS access permissions&lt;br /&gt;
* Allowing access based on cryptographic credentials&lt;br /&gt;
&lt;br /&gt;
An example of an overly permissive policy file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE cross-domain-policy SYSTEM&lt;br /&gt;
&amp;quot;http://www.adobe.com/xml/dtds/cross-domain-policy.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cross-domain-policy&amp;gt;&lt;br /&gt;
   &amp;lt;site-control permitted-cross-domain-policies=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-http-request-headers-from domain=&amp;quot;*&amp;quot; headers=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How can RIA policy files be abused ===&lt;br /&gt;
* Overly permissive RIA policy files&lt;br /&gt;
* Generating server responses that may be treated as cross-domain policy files&lt;br /&gt;
* Using file upload functionality to upload files that may be treated as cross-domain policy files.&lt;br /&gt;
&lt;br /&gt;
=== Impact of abusing crossdomain.xml policy files ===&lt;br /&gt;
* Cross-domain access to site&lt;br /&gt;
* Defeat CSRF protections&lt;br /&gt;
* Read data restricted or otherwise protected by cross-origin policies.&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
'''Testing for RIA policy files weakness:''' &amp;lt;br&amp;gt;&lt;br /&gt;
In order to test for RIA policy file weakness you should try to retrieve the policy files crossdomain.xml and clientaccesspolicy.xml from the application's root, and from every folder found.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
After retrieving all the policy files, the permissions allowed should be be checked under the least privilege principle. Requests should only come from the domains, ports, or protocols that are necessary. Overly permissive policies should be avoided. Policies with &amp;quot;*&amp;quot; in them should be closely examined.  &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
A list of policy files found. &amp;lt;br&amp;gt;&lt;br /&gt;
A weak settings in the policies.&amp;lt;br&amp;gt;&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Adobe: &amp;quot;Cross-domain policy file specification&amp;quot; - http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html&lt;br /&gt;
* Oracle: &amp;quot;Cross-Domain XML Support&amp;quot; - http://www.oracle.com/technetwork/java/javase/plugin2-142482.html#CROSSDOMAINXML&lt;br /&gt;
* MSDN: &amp;quot;Making a Service Available Across Domain Boundaries&amp;quot; - http://msdn.microsoft.com/en-us/library/cc197955(v=vs.95).aspx&lt;br /&gt;
* MSDN: &amp;quot;Network Security Access Restrictions in Silverlight&amp;quot; - http://msdn.microsoft.com/en-us/library/cc645032(v=vs.95).aspx&lt;br /&gt;
* Stefan Esser: &amp;quot;Poking new holes with Flash Crossdomain Policy Files&amp;quot; http://www.hardened-php.net/library/poking_new_holes_with_flash_crossdomain_policy_files.html&lt;br /&gt;
* Jeremiah Grossman: &amp;quot;Crossdomain.xml Invites Cross-site Mayhem&amp;quot; http://jeremiahgrossman.blogspot.com/2008/05/crossdomainxml-invites-cross-site.html&lt;br /&gt;
* http://code.google.com/p/doctype-mirror/wiki/ArticleFlashSecurity&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Nikto&lt;/div&gt;</summary>
		<author><name>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=157700</id>
		<title>Test RIA cross domain policy (OTG-CONFIG-008)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=157700"/>
				<updated>2013-09-03T06:42:43Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
Rich Internet Applications (RIA) have adopted Adobe's crossdomain.xml policy files in order to allow for controlled cross domain access to data and service consumption using technologies such as Oracle Java, Silverlight, and Adobe Flash. Therefore, a domain can grant remote access to its services from a different domain. However, often the policy files that describe the access restrictions are poorly configured. Poor configuration of the policy files enables Cross-site Request Forgery attacks, and may allow third parties to access sensitive data meant for the user. &lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
=== What are cross-domain policy files ===&lt;br /&gt;
A cross-domain policy file specifies the permissions that a web client such as Java, Adobe Flash, Adobe Reader, etc. to access data across different domains. For Silverlight, Microsoft adopted a subset of the Adobe's crossdomain.xml, and additionally created it's own cross-domain policy file: clientaccesspolicy.xml.&lt;br /&gt;
&lt;br /&gt;
Whenever a web client detects that a resource has to be requested from other domain, it will first look for a policy file in the target domain in order to determine if performing cross-domain requests, including headers, and socket-based connections are allowed.&lt;br /&gt;
&lt;br /&gt;
Master policy files are located at the domain's root. A client may be instructed to load a different policy file, however, it will always check the master policy file first to ensure that the master policy file permits the requested policy file.&lt;br /&gt;
&lt;br /&gt;
==== Crossdomain.xml vs. Clientaccesspolicy.xml ====&lt;br /&gt;
Most RIA applications support crossdomain.xml. However in the case of Silverlight, it will only work if the crossdomain.xml specifies that access is allowed from any domain. For more granular control with Silverlight, clientaccesspolicy.xml must be used.&lt;br /&gt;
&lt;br /&gt;
Policy files grant several types of permissions:&lt;br /&gt;
* Accepted policy files (Master policy files can disable or restrict specific policy files)&lt;br /&gt;
* Sockets permissions&lt;br /&gt;
* Header permissions&lt;br /&gt;
* HTTP/HTTPS access permissions&lt;br /&gt;
* Allowing access based on cryptographic credentials&lt;br /&gt;
&lt;br /&gt;
An example of an overly permissive policy file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE cross-domain-policy SYSTEM&lt;br /&gt;
&amp;quot;http://www.adobe.com/xml/dtds/cross-domain-policy.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cross-domain-policy&amp;gt;&lt;br /&gt;
   &amp;lt;site-control permitted-cross-domain-policies=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-http-request-headers-from domain=&amp;quot;*&amp;quot; headers=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How can RIA policy files be abused ===&lt;br /&gt;
* Overly permissive RIA policy files&lt;br /&gt;
* Generating server responses that may be treated as cross-domain policy files&lt;br /&gt;
* Using file upload functionality to upload files that may be treated as cross-domain policy files.&lt;br /&gt;
&lt;br /&gt;
=== Impact of abusing crossdomain.xml policy files ===&lt;br /&gt;
* Cross-domain access to site&lt;br /&gt;
* Defeat CSRF protections&lt;br /&gt;
* Read data restricted or otherwise protected by cross-origin policies.&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
'''Testing for RIA policy files weakness:''' &amp;lt;br&amp;gt;&lt;br /&gt;
In order to test for RIA policy file weakness you should try to retrieve the policy files crossdomain.xml and clientaccesspolicy.xml from the application's root, and from every folder found.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
After retrieving all the policy files, the permissions allowed should be be checked under the least privilege principle. Requests should only come from the domains, ports, or protocols that are necessary. Overly permissive policies should be avoided. Policies with &amp;quot;*&amp;quot; in them should be closely examined.  &lt;br /&gt;
'''Result Expected:'''&amp;lt;br&amp;gt;&lt;br /&gt;
A list of policy files found. &amp;lt;br&amp;gt;&lt;br /&gt;
A weak settings in the policies.&amp;lt;br&amp;gt;&lt;br /&gt;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Adobe: &amp;quot;Cross-domain policy file specification&amp;quot; - http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html&lt;br /&gt;
* Oracle: &amp;quot;Cross-Domain XML Support&amp;quot; - http://www.oracle.com/technetwork/java/javase/plugin2-142482.html#CROSSDOMAINXML&lt;br /&gt;
* MSDN: &amp;quot;Making a Service Available Across Domain Boundaries&amp;quot; - http://msdn.microsoft.com/en-us/library/cc197955(v=vs.95).aspx&lt;br /&gt;
* MSDN: &amp;quot;Network Security Access Restrictions in Silverlight&amp;quot; - http://msdn.microsoft.com/en-us/library/cc645032(v=vs.95).aspx&lt;br /&gt;
* Stefan Esser: &amp;quot;Poking new holes with Flash Crossdomain Policy Files&amp;quot; http://www.hardened-php.net/library/poking_new_holes_with_flash_crossdomain_policy_files.html&lt;br /&gt;
* Jeremiah Grossman: &amp;quot;Crossdomain.xml Invites Cross-site Mayhem&amp;quot; http://jeremiahgrossman.blogspot.com/2008/05/crossdomainxml-invites-cross-site.html&lt;br /&gt;
* http://code.google.com/p/doctype-mirror/wiki/ArticleFlashSecurity&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Nikto&lt;/div&gt;</summary>
		<author><name>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=145112</id>
		<title>Test RIA cross domain policy (OTG-CONFIG-008)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=145112"/>
				<updated>2013-02-19T22:49:33Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
Rich Internet Applications (RIA) have adopted Adobe's crossdomain.xml policy files in order to allow for controlled cross domain access to data and service consumption using technologies such as Oracle Java, Silverlight, and Adobe Flash. Therefore, a domain can grant remote access to its services from a different domain. However, often the policy files that describe the access restrictions are poorly configured. Poor configuration of the policy files enables Cross-site Request Forgery attacks, and may allow third parties to access sensitive data meant for the user. &lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
=== What are cross-domain policy files ===&lt;br /&gt;
A cross-domain policy file specifies the permissions that a web client such as Java, Adobe Flash, Adobe Reader, etc. to access data across different domains. For Silverlight, Microsoft adopted a subset of the Adobe's crossdomain.xml, and additionally created it's own cross-domain policy file: clientaccesspolicy.xml.&lt;br /&gt;
&lt;br /&gt;
Whenever a web client detects that a resource has to be requested from other domain, it will first look for a policy file in the target domain in order to determine if performing cross-domain requests, including headers, and socket-based connections are allowed.&lt;br /&gt;
&lt;br /&gt;
Master policy files are located at the domain's root. A client may be instructed to load a different policy file, however, it will always check the master policy file first to ensure that the master policy file permits the requested policy file.&lt;br /&gt;
&lt;br /&gt;
==== Crossdomain.xml vs. Clientaccesspolicy.xml ====&lt;br /&gt;
Most RIA applications support crossdomain.xml. However in the case of Silverlight, it will only work if the crossdomain.xml specifies that access is allowed from any domain. For more granular control with Silverlight, clientaccesspolicy.xml must be used.&lt;br /&gt;
&lt;br /&gt;
Policy files grant several types of permissions:&lt;br /&gt;
* Accepted policy files (Master policy files can disable or restrict specific policy files)&lt;br /&gt;
* Sockets permissions&lt;br /&gt;
* Header permissions&lt;br /&gt;
* HTTP/HTTPS access permissions&lt;br /&gt;
* Allowing access based on cryptographic credentials&lt;br /&gt;
&lt;br /&gt;
An example of an overly permissive policy file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE cross-domain-policy SYSTEM&lt;br /&gt;
&amp;quot;http://www.adobe.com/xml/dtds/cross-domain-policy.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cross-domain-policy&amp;gt;&lt;br /&gt;
   &amp;lt;site-control permitted-cross-domain-policies=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-http-request-headers-from domain=&amp;quot;*&amp;quot; headers=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How can RIA policy files be abused ===&lt;br /&gt;
* Overly permissive RIA policy files&lt;br /&gt;
* Generating server responses that may be treated as cross-domain policy files&lt;br /&gt;
* Using file upload functionality to upload files that may be treated as cross-domain policy files.&lt;br /&gt;
&lt;br /&gt;
=== Impact of abusing crossdomain.xml policy files ===&lt;br /&gt;
* Cross-domain access to site&lt;br /&gt;
* Defeat CSRF protections&lt;br /&gt;
* Read data restricted or otherwise protected by cross-origin policies.&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
'''Testing for RIA policy files weakness:''' &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;
* Adobe: &amp;quot;Cross-domain policy file specification&amp;quot; - http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html&lt;br /&gt;
* Oracle: &amp;quot;Cross-Domain XML Support&amp;quot; - http://www.oracle.com/technetwork/java/javase/plugin2-142482.html#CROSSDOMAINXML&lt;br /&gt;
* MSDN: &amp;quot;Making a Service Available Across Domain Boundaries&amp;quot; - http://msdn.microsoft.com/en-us/library/cc197955(v=vs.95).aspx&lt;br /&gt;
* MSDN: &amp;quot;Network Security Access Restrictions in Silverlight&amp;quot; - http://msdn.microsoft.com/en-us/library/cc645032(v=vs.95).aspx&lt;br /&gt;
* Stefan Esser: &amp;quot;Poking new holes with Flash Crossdomain Policy Files&amp;quot; http://www.hardened-php.net/library/poking_new_holes_with_flash_crossdomain_policy_files.html&lt;br /&gt;
* Jeremiah Grossman: &amp;quot;Crossdomain.xml Invites Cross-site Mayhem&amp;quot; http://jeremiahgrossman.blogspot.com/2008/05/crossdomainxml-invites-cross-site.html&lt;br /&gt;
* http://code.google.com/p/doctype-mirror/wiki/ArticleFlashSecurity&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Nikto&lt;/div&gt;</summary>
		<author><name>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=145111</id>
		<title>Test RIA cross domain policy (OTG-CONFIG-008)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=145111"/>
				<updated>2013-02-19T22:23:34Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
Rich Internet Applications (RIA) have adopted Adobe's crossdomain.xml policy files in order to allow for controlled cross domain access to data and service consumption using technologies such as Oracle Java, Silverlight, and Adobe Flash. Therefore, a domain can grant remote access to its services from a different domain. However, often the policy files that describe the access restrictions are poorly configured. Poor configuration of the policy files enables Cross-site Request Forgery attacks, and may allow third parties to access sensitive data meant for the user. &lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
=== What are cross-domain policy files ===&lt;br /&gt;
A cross-domain policy file specifies the permissions that a web client such as Java, Adobe Flash, Adobe Reader, etc. to access data across different domains. For Silverlight, Microsoft adopted a subset of the Adobe's crossdomain.xml, and additionally created it's own cross-domain policy file: clientaccesspolicy.xml.&lt;br /&gt;
&lt;br /&gt;
Whenever a web client detects that a resource has to be requested from other domain, it will first look for a policy file in the target domain in order to determine if performing cross-domain requests, including headers, and socket-based connections are allowed.&lt;br /&gt;
&lt;br /&gt;
Master policy files are located at the domain's root. A client may be instructed to load a different policy file, however, it will always check the master policy file first to ensure that the master policy file permits the requested policy file.&lt;br /&gt;
&lt;br /&gt;
==== Crossdomain.xml vs. Clientaccesspolicy.xml ====&lt;br /&gt;
Most RIA applications support crossdomain.xml. However in the case of Silverlight, it will only work if the crossdomain.xml specifies that access is allowed from any domain. For more granular control with Silverlight, clientaccesspolicy.xml must be used.&lt;br /&gt;
&lt;br /&gt;
Policy files grant several types of permissions:&lt;br /&gt;
* Accepted policy files (Master policy files can disable or restrict specific policy files)&lt;br /&gt;
* Sockets permissions&lt;br /&gt;
* Header permissions&lt;br /&gt;
* HTTP/HTTPS access permissions&lt;br /&gt;
* Allowing access based on cryptographic credentials&lt;br /&gt;
&lt;br /&gt;
An example of an overly permissive policy file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE cross-domain-policy SYSTEM&lt;br /&gt;
&amp;quot;http://www.adobe.com/xml/dtds/cross-domain-policy.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cross-domain-policy&amp;gt;&lt;br /&gt;
   &amp;lt;site-control permitted-cross-domain-policies=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-http-request-headers-from domain=&amp;quot;*&amp;quot; headers=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How can RIA policy files be abused ===&lt;br /&gt;
* Overly permissive RIA policy files&lt;br /&gt;
* Generating server responses that may be treated as cross-domain policy files&lt;br /&gt;
&lt;br /&gt;
=== Impact of abusing crossdomain.xml policy files ===&lt;br /&gt;
* Cross-domain access to site&lt;br /&gt;
* Defeat CSRF protections&lt;br /&gt;
* Read data restricted or otherwise protected by cross-origin policies.&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
'''Testing for RIA policy files weakness:''' &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;
* Adobe: &amp;quot;Cross-domain policy file specification&amp;quot; - http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html&lt;br /&gt;
* Oracle: &amp;quot;Cross-Domain XML Support&amp;quot; - http://www.oracle.com/technetwork/java/javase/plugin2-142482.html#CROSSDOMAINXML&lt;br /&gt;
* MSDN: &amp;quot;Making a Service Available Across Domain Boundaries&amp;quot; - http://msdn.microsoft.com/en-us/library/cc197955(v=vs.95).aspx&lt;br /&gt;
* MSDN: &amp;quot;Network Security Access Restrictions in Silverlight&amp;quot; - http://msdn.microsoft.com/en-us/library/cc645032(v=vs.95).aspx&lt;br /&gt;
* Stefan Esser: &amp;quot;Poking new holes with Flash Crossdomain Policy Files&amp;quot; http://www.hardened-php.net/library/poking_new_holes_with_flash_crossdomain_policy_files.html&lt;br /&gt;
* Jeremiah Grossman: &amp;quot;Crossdomain.xml Invites Cross-site Mayhem&amp;quot; http://jeremiahgrossman.blogspot.com/2008/05/crossdomainxml-invites-cross-site.html&lt;br /&gt;
* http://code.google.com/p/doctype-mirror/wiki/ArticleFlashSecurity&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Nikto&lt;/div&gt;</summary>
		<author><name>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=145085</id>
		<title>Test RIA cross domain policy (OTG-CONFIG-008)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=145085"/>
				<updated>2013-02-19T18:05:46Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
Rich Internet Applications (RIA) have adopted Adobe's crossdomain.xml policy files in order to allow for controlled cross domain access to data and service consumption using technologies such as Oracle Java, Silverlight, and Adobe Flash. Therefore, a domain can grant remote access to its services from a different domain. However, often the policy files that describe the access restrictions are poorly configured. Poor configuration of the policy files enables Cross-site Request Forgery attacks, and may allow third parties to access sensitive data meant for the user. &lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
=== What are crossdomain.xml policy files ===&lt;br /&gt;
A cross-domain policy file specifies the permissions that a web client such as Java, Adobe Flash, Adobe Reader, etc. to access data across different domains. For Silverlight, Microsoft adopted a subset of the Adobe's crossdomain.xml, and additionally created it's own clientaccesspolicy.xml.&lt;br /&gt;
&lt;br /&gt;
Whenever a web client detects that a resource has to be requested from other domain, it will first look for a policy file in the target domain in order to determine if performing cross-domain requests, including headers, and socket-based connections are allowed.&lt;br /&gt;
&lt;br /&gt;
Master policy files are located at the domain's root. The file name should always be crossdomain.xml. (ex. http://www.owasp.com/crossdomain.xml). A client may be instructed to load a different policy file, however, it will always check the master policy file first to ensure that the master policy file permits the requested policy file.&lt;br /&gt;
&lt;br /&gt;
Policy files grant several types of permissions:&lt;br /&gt;
* Accepted policy files (Meta vs. master policies)&lt;br /&gt;
* Sockets permissions&lt;br /&gt;
* Header permissions&lt;br /&gt;
* HTTP/HTTPS access permissions&lt;br /&gt;
* Allowing access based on cryptographic credentials&lt;br /&gt;
&lt;br /&gt;
An example of an overly permissive policy file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE cross-domain-policy SYSTEM&lt;br /&gt;
&amp;quot;http://www.adobe.com/xml/dtds/cross-domain-policy.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cross-domain-policy&amp;gt;&lt;br /&gt;
   &amp;lt;site-control permitted-cross-domain-policies=&amp;quot;all&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;allow-http-request-headers-from domain=&amp;quot;*&amp;quot; headers=&amp;quot;*&amp;quot; secure=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/cross-domain-policy&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How can crossdomain.xml poilicy files be abused ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Impact of abusing crossdomain.xml policy files ===&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
'''Testing for RIA policy files weakness:''' &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;
* Adobe: &amp;quot;Cross-domain policy file specification&amp;quot; - http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html&lt;br /&gt;
* Oracle: &amp;quot;Cross-Domain XML Support&amp;quot; - http://www.oracle.com/technetwork/java/javase/plugin2-142482.html#CROSSDOMAINXML&lt;br /&gt;
* MSDN: &amp;quot;Making a Service Available Across Domain Boundaries&amp;quot; - http://msdn.microsoft.com/en-us/library/cc197955(v=vs.95).aspx&lt;br /&gt;
* MSDN: &amp;quot;Network Security Access Restrictions in Silverlight&amp;quot; - http://msdn.microsoft.com/en-us/library/cc645032(v=vs.95).aspx&lt;br /&gt;
* Stefan Esser: &amp;quot;Poking new holes with Flash Crossdomain Policy Files&amp;quot; http://www.hardened-php.net/library/poking_new_holes_with_flash_crossdomain_policy_files.html&lt;br /&gt;
* Jeremiah Grossman: &amp;quot;Crossdomain.xml Invites Cross-site Mayhem&amp;quot; http://jeremiahgrossman.blogspot.com/2008/05/crossdomainxml-invites-cross-site.html&lt;br /&gt;
* http://code.google.com/p/doctype-mirror/wiki/ArticleFlashSecurity&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Nikto&lt;/div&gt;</summary>
		<author><name>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Testing_Guide_v4_Table_of_Contents&amp;diff=140345</id>
		<title>OWASP Testing Guide v4 Table of Contents</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Testing_Guide_v4_Table_of_Contents&amp;diff=140345"/>
				<updated>2012-11-28T00:06:37Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
'''This is the DRAFT of the table of content of the New Testing Guide v4.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;You can download the stable version v3 [http://www.owasp.org/images/5/56/OWASP_Testing_Guide_v3.pdf here] &amp;lt;br&amp;gt;&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;
'''Updated: 26th November 2012'''&lt;br /&gt;
&lt;br /&gt;
[[ OWTGv4 Contributors list|'''Contributors List]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following is a DRAFT of the Toc based on the feedback already received.&lt;br /&gt;
&lt;br /&gt;
== Table of Contents ==&lt;br /&gt;
&lt;br /&gt;
==[[Testing Guide Foreword|Foreword by OWASP Chair]]== &lt;br /&gt;
[To review--&amp;gt; OWASP Chair]&lt;br /&gt;
&lt;br /&gt;
==[[Testing Guide Frontispiece |1. Frontispiece]]== &lt;br /&gt;
[To review--&amp;gt; Mat]&lt;br /&gt;
&lt;br /&gt;
'''[[Testing Guide Frontispiece|1.1 About the OWASP Testing Guide Project]]''' &lt;br /&gt;
[To review--&amp;gt; Mat]&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;
[To review--&amp;gt; ]&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;
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;
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. Web Application Penetration Testing ]]==&lt;br /&gt;
&lt;br /&gt;
[[Testing: Introduction and objectives|'''4.1 Introduction and Objectives''']] [To review--&amp;gt; Mat]&lt;br /&gt;
&lt;br /&gt;
[[Testing Checklist| 4.1.1 Testing Checklist]] [To review at the end of brainstorming --&amp;gt; Mat]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Testing Information Gathering|'''4.2 Information Gathering ''']] [Andrew Muller]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Web Server Fingerprint (OWASP-IG-010)|4.2.10 Testing for Web Server Fingerprint (OWASP-IG-010)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing: Spiders, Robots, and Crawlers (OWASP-IG-001)|4.2.1 Spiders, Robots and Crawlers (OWASP-IG-001)]] [Modify! rename to &amp;quot;Review Webserver Metafiles&amp;quot; - could also be considered a Configuration Management test]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Application Discovery (OWASP-IG-005)|4.2.5 Application Discovery (OWASP-IG-005)]] [Modify! - rename to &amp;quot;Enumerate Applications on Webserver&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
[[Testing Review webpage comments and metadata(OWASP-IG-007)|4.2.7 Review webpage comments and metadata(OWASP-IG-007)]] &lt;br /&gt;
&lt;br /&gt;
[[Testing: Identify application entry points (OWASP-IG-003)|4.2.3 Identify application entry points (OWASP-IG-003)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing Identify application exit/handover points (OWASP-IG-008)|4.2.8 Identify application exit/handover points (OWASP-IG-008)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing Map execution paths through application (OWASP-IG-009)|4.2.9 Map execution paths through application (OWASP-IG-009)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Web Application Fingerprint (OWASP-IG-004)|4.2.4 Testing for Web Application Fingerprint (OWASP-IG-004)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Error Code (OWASP-IG-006)|4.2.6 Analysis of Error Codes (OWASP-IG-006)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing: Search engine discovery/reconnaissance (OWASP-IG-002)|4.2.2 Search Engine Discovery/Reconnaissance (OWASP-IG-002)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Testing for configuration management|'''4.3 Configuration and Deploy Management Testing ''']]&lt;br /&gt;
&lt;br /&gt;
[[Testing for infrastructure configuration management (OWASP-CM-003)|4.3.1 Testing for Infrastructure Configuration Management Testing weakness (OWASP-CM-001)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for application configuration management (OWASP-CM-004)|4.3.2 Testing for Application Configuration Management weakness (OWASP-CM-002)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for file extensions handling  (OWASP-CM-005)|4.3.3 Testing for File Extensions Handling  (OWASP-CM-003)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Old, Backup and Unreferenced Files (OWASP-CM-006)|4.3.4 Old, Backup and Unreferenced Files (OWASP-CM-004) ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Admin Interfaces  (OWASP-CM-007)|4.3.5 Infrastructure and Application Admin Interfaces  (OWASP-CM-005)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for HTTP Methods and XST  (OWASP-CM-008)|4.3.6 Testing for Bad HTTP Methods (OWASP-CM-006)]][new - Abian Blome]&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Informative Error Messages [MAT NOTE: in info gathering]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Testing for Database credentials/connection strings available|4.3.7 Testing for Database credentials/connection strings available (OWASP-CM-007)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Content Security Policy weakness|4.3.8 Testing for Content Security Policy weakness (OWASP-CM-008)]][New! - Simone Onofri]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Missing HSTS header|4.3.9 Testing for Missing HSTS header (OWASP-CM-009)]][New! Juan Manuel Bahamonde ]&lt;br /&gt;
&lt;br /&gt;
[[Testing for RIA policy files weakness|4.3.10 Testing for RIA policy files weakness (OWASP-CM-010)]] [New! - Eduardo Castellanos]&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Incorrect time[New! MAT NOTE: explain the test in detail please]&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Unpatched components and libraries (e.g. JavaScript libraries)[New! NOTE: tu discuss it][Note: this can be covered inside OWASP-CM-001/OWASP-CM-002]&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Test data in production systems (and vice versa)[New! MAT NOTE: this is not a particular test that could find a vulnerability]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Testing for authentication|'''4.4 Authentication Testing ''']] &lt;br /&gt;
&lt;br /&gt;
[[Testing for Credentials Transported over an Encrypted Channel (OWASP-AT-001)|4.4.1 Testing for Credentials Transported over an Encrypted Channel  (OWASP-AT-001)]] [Robert Winkel]&lt;br /&gt;
&lt;br /&gt;
[[Testing for User Enumeration and Guessable User Account (OWASP-AT-002)|4.4.2 Testing for User Enumeration and Guessable User Account  (OWASP-AT-002)]] [Robert Winkel]&lt;br /&gt;
&lt;br /&gt;
[[Testing for default credentials (OWASP-AT-003)|4.4.3 Testing for default credentials (OWASP-AT-003)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Weak lock out mechanism (OWASP-AT-004)|4.4.4 Testing for Weak lock out mechanism (OWASP-AT-004)]] [New! - Robert Winkel] &lt;br /&gt;
&lt;br /&gt;
&amp;gt; Account lockout DoS [New! - Robert Winkel - we can put it in the 4.4.4]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Bypassing Authentication Schema (OWASP-AT-005)|4.4.5 Testing for bypassing authentication schema (OWASP-AT-005)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Vulnerable Remember Password (OWASP-AT-006)|4.4.6 Testing for vulnerable remember &lt;br /&gt;
password functionality (OWASP-AT-006)]] [Robert Winkel]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Browser cache weakness (OWASP-AT-007)|4.4.7 Testing for Browser cache weakness (OWASP-AT-007)]] [New! - Abian Blome]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Weak password policy (OWASP-AT-008)|4.4.8 Testing for Weak password policy (OWASP-AT-008)]] [New! - Robert Winkel]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Weak or unenforced username policy (OWASP-AT-009)|4.4.9 Testing for Weak or unenforced username policy (OWASP-AT-009)]] [New! - Robert Winkel]&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Weak security question/answer [New! - Robert Winkel - MAT Note: same as AT-006]&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Testing for failure to restrict access to authenticated resource(OWASP-AT-010)|4.4.10 Testing for failure to restrict access to authenticated resource (OWASP-AT-010)]] [New! - This seems better suited to the Authorization test cases (Andrew Muller)]&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Testing for weak password change or reset functionalities (OWASP-AT-011)|4.4.11 Testing for weak password change or reset functionalities (OWASP-AT-011)]] [New! - Robert Winkel]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Testing for Captcha (OWASP-AT-012)|4.4.12 Testing for CAPTCHA (OWASP-AT-012)]] [Note: Andrew Muller - CAPTCHA's objective is not authentication but to test humanness. This could be moved to Business Logic or the now deleted Denial of Service section]&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Weaker authentication in alternative channel (e.g. mobile app, IVR, help desk) [New!: MAT Note: to explain better the kind of test to perform please]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Testing for Session Management|'''4.5 Session Management Testing''']] &lt;br /&gt;
&lt;br /&gt;
[[Testing for Session_Management_Schema (OWASP-SM-001)|4.5.1 Testing for Bypassing Session Management Schema (OWASP-SM-001)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for cookies attributes  (OWASP-SM-002)|4.5.2 Testing for Cookies attributes (Cookies are set not ‘HTTP Only’, ‘Secure’,  and no time validity) (OWASP-SM-002)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Session Fixation  (OWASP-SM-003)|4.5.3 Testing for Session Fixation  (OWASP-SM-003)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Exposed Session Variables  (OWASP-SM-004)|4.5.4 Testing for Exposed Session Variables   (OWASP-SM-004)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for CSRF  (OWASP-SM-005)|4.5.5 Testing for Cross Site Request Forgery (CSRF)  (OWASP-SM-005)]]&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Weak Session Token (MAT NOTE included in 4.5.1)&lt;br /&gt;
 &lt;br /&gt;
[[Testing for Session token not restricted properly (OWASP-SM-006)|4.5.6 Testing for Session token not restricted properly (such as domain or path not set properly) (OWASP-SM-006)]] [New! - Abian Blome]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Session passed over http (NOTE: included in SM-004) [New!] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Testing for logout functionality (OWASP-SM-007)|4.5.7 Testing for logout functionality (OWASP-SM-007)]]&lt;br /&gt;
&lt;br /&gt;
&amp;gt;Session token not removed on server after logout [New!: NOTE included in the above test]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Logout function not properly implemented (NOTE:same above)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Persistent session token [New! NOTE: this is not a vulnerability if session time out is correctly performed]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Testing for Session puzzling (OWASP-SM-008)|4.5.8 Testing for Session puzzling (OWASP-SM-008)]] [New! - Abian Blome]&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Missing user-viewable log of authentication events [NOTE: needs more details: which test perform?]&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Establishment of multiple sessions with same credentials [New! - Andrew Muller]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Testing for Authorization|'''4.6 Authorization Testing''']] &lt;br /&gt;
&lt;br /&gt;
[[Testing for Path Traversal  (OWASP-AZ-001)|4.6.1 Testing Directory traversal/file include (OWASP-AZ-001) [Juan Galiana] ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Bypassing Authorization Schema  (OWASP-AZ-002)|4.6.2 Testing for bypassing authorization schema  (OWASP-AZ-002)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Privilege escalation  (OWASP-AZ-003)|4.6.3 Testing for Privilege Escalation  (OWASP-AZ-003) [Irene Abezgauz]]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Insecure Direct Object References (OWASP-AZ-004)|4.6.4 Testing for Insecure Direct Object References (OWASP-AZ-004) [Irene Abezgauz] ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Failure to Restrict access to authorized resource (OWASP-AZ-005)|4.6.5 Testing for Failure to Restrict access to authorized resource (OWASP-AZ-005) [New!] ]]&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Server component has excessive privileges (e.g. indexing service, reporting interface, file generator)[New!]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;gt; Lack of enforcement of application entry points (including exposure of objects)[New!]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Testing for business logic   (OWASP-BL-001)|'''4.7 Business Logic Testing  (OWASP-BL-001)''']] [To review--&amp;gt; contributor here]&lt;br /&gt;
Business Logic&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Business logic data validation[New!] NOTE MAT: to discuss this section&amp;lt;br&amp;gt;&lt;br /&gt;
Ability to forge requests[New!]&amp;lt;br&amp;gt;&lt;br /&gt;
Lack of integrity checks (e.g. overwriting updates) [New!]&amp;lt;br&amp;gt;&lt;br /&gt;
Lack of tamper evidence[New!]&amp;lt;br&amp;gt;&lt;br /&gt;
Use of untrusted time source[New!]&amp;lt;br&amp;gt;&lt;br /&gt;
Lack of limits to excessive rate (speed) of use[New!]&amp;lt;br&amp;gt;&lt;br /&gt;
Lack of limits to size of request[New!]&amp;lt;br&amp;gt;&lt;br /&gt;
Lack of limit to number of times a function can be used[New!]&amp;lt;br&amp;gt;&lt;br /&gt;
Bypass of correct sequence[New!]&amp;lt;br&amp;gt;&lt;br /&gt;
Missing user-viewable log of activity[New!]&amp;lt;br&amp;gt;&lt;br /&gt;
Self-hosted payment cardholder data processing[New!]&amp;lt;br&amp;gt;&lt;br /&gt;
Lack of security incident reporting information[New!]&amp;lt;br&amp;gt;&lt;br /&gt;
Defenses against application mis-use[New!]&amp;lt;br&amp;gt;&lt;br /&gt;
&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 (OWASP-DV-001) |4.8.1 Testing for Reflected Cross Site Scripting (OWASP-DV-001) ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Stored Cross site scripting (OWASP-DV-002) |4.8.2 Testing for Stored Cross Site Scripting (OWASP-DV-002) ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for HTTP Verb Tampering (OWASP-DV-003)|4.8.3 Testing for HTTP Verb Tampering   [Brad Causey] ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for HTTP Parameter pollution (OWASP-DV-004)|4.8.4 Testing for HTTP Parameter pollution [Luca Carettoni, Stefano Di Paola, Brad Causey] ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Unvalidated Redirects and Forwards (OWASP-DV-004)|4.8.5 Testing for Unvalidated Redirects and Forwards [Brad Causey] ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SQL Injection (OWASP-DV-005)| 4.8.5 Testing for SQL Injection (OWASP-DV-005) [Ismael Gonçalves](Ismael NOTE: ready to be reviewed)]]&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 [Ismael Gonçalves]]]&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 |4.8.5.4 MS Access Testing]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for NoSQL injection|4.8.5.5 Testing for NoSQL injection [New!]]]&lt;br /&gt;
&lt;br /&gt;
[[OWASP_Backend_Security_Project_Testing_PostgreSQL|4.8.5.5 Testing PostgreSQL (from OWASP BSP) ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for LDAP Injection  (OWASP-DV-006)|4.8.6 Testing for LDAP Injection  (OWASP-DV-006)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for ORM Injection   (OWASP-DV-007)|4.8.7 Testing for ORM Injection   (OWASP-DV-007)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for XML Injection (OWASP-DV-008)|4.8.8 Testing for XML Injection (OWASP-DV-008)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for SSI Injection  (OWASP-DV-009)|4.8.9 Testing for SSI Injection  (OWASP-DV-009)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for XPath Injection  (OWASP-DV-010)|4.8.10 Testing for XPath Injection  (OWASP-DV-010)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for IMAP/SMTP Injection  (OWASP-DV-011)|4.8.11 IMAP/SMTP Injection  (OWASP-DV-011)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Code Injection  (OWASP-DV-012)|4.8.12 Testing for Code Injection  (OWASP-DV-012)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Command Injection   (OWASP-DV-013)|4.8.13 Testing for Command Injection   (OWASP-DV-013) [Juan Galiana]]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Buffer Overflow (OWASP-DV-014)|4.8.14 Testing for Buffer overflow (OWASP-DV-014)]]&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 (OWASP-DV-015)|4.8.15 Testing for incubated vulnerabilities (OWASP-DV-015)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for HTTP Splitting/Smuggling  (OWASP-DV-016)|4.8.16 Testing for HTTP Splitting/Smuggling  (OWASP-DV-016) [Juan Galiana] ]]&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Regular expression DoS[New!] note: to understand better&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; XML DoS [New! - Andrew Muller]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Data Encryption (New!)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Insecure encryption usage (OWASP-EN-001)| 4.9.1  Testing for Insecure encryption usage (OWASP-EN-001]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Weak SSL/TSL Ciphers, Insufficient Transport Layer Protection (OWASP-EN-002)| 4.9.2 Testing for Weak SSL/TSL Ciphers, Insufficient Transport Layer Protection (OWASP-EN-002)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Padding Oracle (OWASP-EN-003)| 4.9.3 Testing for Padding Oracle (OWASP-EN-003) [Giorgio Fedon]]]&lt;br /&gt;
&lt;br /&gt;
&amp;gt; [[Testing for Cacheable HTTPS Response | x.x.3 Testing for Cacheable HTTPS Response&amp;lt;br&amp;gt;&lt;br /&gt;
Cache directives insecure&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;gt; Testing for Insecure Cryptographic Storage [put in x.x.1]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Testing for Sensitive information sent via unencrypted channels | x.x.4&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Web Service (XML Interpreter)|'''4.10 Web Service Testing''']] [Tom Eston] &lt;br /&gt;
&lt;br /&gt;
[[Scoping a Web Service Test (OWASP-WS-001)|4.10.1 Scoping a Web Service Test (OWASP-WS-001)]]&lt;br /&gt;
&lt;br /&gt;
[[WS Information Gathering (OWASP-WS-002)|4.10.2 WS Information Gathering (OWASP-WS-002)]]&lt;br /&gt;
&lt;br /&gt;
[[WS Authentication Testing (OWASP-WS-003)|4.10.3 WS Authentication Testing (OWASP-WS-003)]]&lt;br /&gt;
&lt;br /&gt;
[[WS Management Interface Testing (OWASP-WS-004)|4.10.4 WS Management Interface Testing (OWASP-WS-004)]]&lt;br /&gt;
&lt;br /&gt;
[[Weak XML Structure Testing (OWASP-WS-005)|4.10.5 Weak XML Structure Testing (OWASP-WS-005)]]&lt;br /&gt;
&lt;br /&gt;
[[XML Content-Level Testing (OWASP-WS-006)|4.10.6 XML Content-Level Testing (OWASP-WS-006)]]&lt;br /&gt;
&lt;br /&gt;
[[WS HTTP GET Parameters/REST Testing (OWASP-WS-007)|4.10.7 WS HTTP GET Parameters/REST Testing (OWASP-WS-007)]]&lt;br /&gt;
&lt;br /&gt;
[[WS Naughty SOAP Attachment Testing (OWASP-WS-008)|4.10.8 WS Naughty SOAP Attachment Testing (OWASP-WS-008)]]&lt;br /&gt;
&lt;br /&gt;
[[WS Replay/MiTM Testing (OWASP-WS-009)|4.10.9 WS Replay/MiTM Testing (OWASP-WS-009)]]&lt;br /&gt;
&lt;br /&gt;
[[WS BEPL Testing (OWASP-WS-010)|4.10.10 WS BEPL Testing (OWASP-WS-010)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Client Side Testing|'''4.11 Client Side Testing''']] [New!] &lt;br /&gt;
&lt;br /&gt;
[[Testing for DOM-based Cross site scripting  (OWASP-DV-003)|4.11.1 Testing for DOM based Cross Site Scripting  (OWASP-CS-001) [Stefano Di Paola] ]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for HTML5 (OWASP CS-002)|4.11.2 Testing for HTML5 (OWASP CS-002) [Juan Galiana] ]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Testing for Cross site flashing (OWASP-DV-004)|4.11.3 Testing for Cross Site Flashing   (OWASP-CS-003)]]&lt;br /&gt;
&lt;br /&gt;
[[Testing for Testing for ClickHijacking (OWASP-CS-004)|4.11.4 Testing for Testing for ClickHijacking (OWASP-CS-004) ]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[Writing Reports: value the real risk |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]] [To review--&amp;gt; Amro AlOlaqi]&lt;br /&gt;
&lt;br /&gt;
[[How to write the report of the testing |5.2 How to write the report of the testing]] [To review--&amp;gt; Amro AlOlaqi]&lt;br /&gt;
&lt;br /&gt;
==[[Appendix A: Testing Tools |Appendix A: Testing Tools ]]==&lt;br /&gt;
&lt;br /&gt;
* Black Box Testing Tools [To review--&amp;gt; Amro. We need only tools for webapp testing]&lt;br /&gt;
&lt;br /&gt;
==[[OWASP Testing Guide Appendix B: Suggested Reading | Appendix B: Suggested Reading]]==&lt;br /&gt;
* Whitepapers [To review--&amp;gt; David Fern]&lt;br /&gt;
* Books [To review--&amp;gt; David Fern]&lt;br /&gt;
* Useful Websites [To review--&amp;gt; David Fern]&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 [To review--&amp;gt; contributor here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==[[OWASP Testing Guide Appendix D: Encoded Injection | Appendix D: Encoded Injection]]==&lt;br /&gt;
&lt;br /&gt;
[To review--&amp;gt; contributor here]&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>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=140344</id>
		<title>Test RIA cross domain policy (OTG-CONFIG-008)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=140344"/>
				<updated>2012-11-28T00:05:13Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
Rich Internet Applications (RIA) have adopted Adobe's crossdomain.xml policy files in order to allow for controlled cross domain access to data and service consumption using technologies such as Oracle Java, Silverlight, and Adobe Flash. Therefore, a domain can grant remote access to its services from a different domain. However, often the policy files that describe the access restrictions are poorly configured. Poor configuration of the policy files enables Cross-site Request Forgery attacks, and may allow third parties to access sensitive data meant for the user. &lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
=== What are crossdomain.xml policy files ===&lt;br /&gt;
=== How can crossdomain.xml poilicy files be abused ===&lt;br /&gt;
=== Impact of abusing crossdomain.xml policy files ===&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
'''Testing for RIA policy files weakness:''' &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;
* Adobe: &amp;quot;Cross-domain policy file specification&amp;quot; - http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html&lt;br /&gt;
* Stefan Esser: &amp;quot;Poking new holes with Flash Crossdomain Policy Files&amp;quot; http://www.hardened-php.net/library/poking_new_holes_with_flash_crossdomain_policy_files.html&lt;br /&gt;
* Jeremiah Grossman: &amp;quot;Crossdomain.xml Invites Cross-site Mayhem&amp;quot; http://jeremiahgrossman.blogspot.com/2008/05/crossdomainxml-invites-cross-site.html&lt;br /&gt;
* http://code.google.com/p/doctype-mirror/wiki/ArticleFlashSecurity&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Nikto&lt;/div&gt;</summary>
		<author><name>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=140342</id>
		<title>Test RIA cross domain policy (OTG-CONFIG-008)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=140342"/>
				<updated>2012-11-27T23:55:42Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
Rich Internet Applications (RIA) have adopted Adobe's crossdomain.xml policy files in order to allow for controlled cross domain access to data and service consumption using technologies such as Oracle Java, Silverlight, and Adobe Flash. Therefore, a domain can grant remote access to its services from a different domain. However, often the policy files that describe the access restrictions are poorly configured. Poor configuration of the policy files enables Cross-site Request Forgery attacks, and may allow third parties to access sensitive data meant for the user. &lt;br /&gt;
&lt;br /&gt;
== Description of the Issue == &lt;br /&gt;
=== What are crossdomain.xml policy files ===&lt;br /&gt;
=== How can crossdomain.xml poilicy files be abused ===&lt;br /&gt;
=== Impact of abusing crossdomain.xml policy files ===&lt;br /&gt;
&lt;br /&gt;
== Black Box testing and example ==&lt;br /&gt;
'''Testing for RIA policy files weakness:''' &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;
* Adobe: &amp;quot;Cross-domain policy file specification&amp;quot; - http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html&lt;br /&gt;
* Stefan Esser: &amp;quot;Poking new holes with Flash Crossdomain Policy Files&amp;quot; http://www.hardened-php.net/library/poking_new_holes_with_flash_crossdomain_policy_files.html&lt;br /&gt;
* Jeremiah Grossman: &amp;quot;Crossdomain.xml Invites Cross-site Mayhem&amp;quot; http://jeremiahgrossman.blogspot.com/2008/05/crossdomainxml-invites-cross-site.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Tools'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Nikto&lt;/div&gt;</summary>
		<author><name>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=140337</id>
		<title>Test RIA cross domain policy (OTG-CONFIG-008)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=140337"/>
				<updated>2012-11-27T23:43:04Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
Rich Internet Applications (RIA) have adopted Adobe's crossdomain.xml policy files in order to allow for controlled cross domain access to data and service consumption using technologies such as Oracle Java, Silverlight, and Adobe Flash. Therefore, a domain can grant remote access to its services from a different domain. However, often the policy files that describe the access restrictions are poorly configured. Poor configuration of the policy files enables Cross-site Request Forgery attacks, and may allow third parties to access sensitive data meant for the user. &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 RIA policy files weakness:''' &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;
* Adobe: &amp;quot;Cross-domain policy file specification&amp;quot; - http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html&lt;br /&gt;
* Stefan Esser: &amp;quot;Poking new holes with Flash Crossdomain Policy Files&amp;quot; http://www.hardened-php.net/library/poking_new_holes_with_flash_crossdomain_policy_files.html&lt;br /&gt;
* Jeremiah Grossman: &amp;quot;Crossdomain.xml Invites Cross-site Mayhem&amp;quot; http://jeremiahgrossman.blogspot.com/2008/05/crossdomainxml-invites-cross-site.html&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>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=140335</id>
		<title>Test RIA cross domain policy (OTG-CONFIG-008)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=140335"/>
				<updated>2012-11-27T23:09:40Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
Rich Internet Applications (RIA) have adopted Adobe's crossdomain.xml policy files in order to allow for controlled cross domain access to data and service consumption using technologies such as Oracle Java, Silverlight, and Adobe Flash. Therefore, a domain can grant remote access to its services from a different domain. However, often the policy files that describe the access restrictions are poorly configured. Poor configuration of the policy files enables Cross-site Request Forgery attacks, and may allow third parties to access sensitive data meant for the user. &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 RIA policy files weakness:''' &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;
* Adobe: &amp;quot;Cross-domain policy file specification&amp;quot; - http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html&lt;br /&gt;
* Stefan Esser: &amp;quot;Poking new holes with Flash Crossdomain Policy Files&amp;quot; http://www.hardened-php.net/library/poking_new_holes_with_flash_crossdomain_policy_files.html&lt;br /&gt;
* Matt Parsons: &amp;quot;How to find Crossdomain.xml Cross Site Request Forgery with 02&amp;quot; http://parsonsisconsulting.wordpress.com/2010/12/02/how-to-find-crossdomain-xml-cross-site-request-forgery-with-02/&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>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=140333</id>
		<title>Test RIA cross domain policy (OTG-CONFIG-008)</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Test_RIA_cross_domain_policy_(OTG-CONFIG-008)&amp;diff=140333"/>
				<updated>2012-11-27T22:00:38Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:OWASP Testing Guide v4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Brief Summary ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Rich Internet Applications (RIA) have adopted Adobe's crossdomain.xml policy files in order to allow for controlled cross domain access to data and service consumption using technologies such as Oracle Java, Silverlight, and Adobe Flash. Therefore, a domain can grant remote access to its services from a different domain. However, often the policy files that describe the access restrictions are poorly configured. Poor configuration of the policy files enables Cross-site Request Forgery attacks, and may allow third parties to access sensitive data meant for the user. &lt;br /&gt;
&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;
...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;
== References ==&lt;br /&gt;
'''Whitepapers'''&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html&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>Eduardo Castellanos</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=User:Eduardo_Castellanos&amp;diff=85438</id>
		<title>User:Eduardo Castellanos</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=User:Eduardo_Castellanos&amp;diff=85438"/>
				<updated>2010-06-25T16:38:21Z</updated>
		
		<summary type="html">&lt;p&gt;Eduardo Castellanos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Former Web Application Developer. &lt;br /&gt;
&lt;br /&gt;
Graduated from Universidad del Valle de Guatemala in 2009. &lt;br /&gt;
Obtained the title of: Licenciatura en Ingeniería en Ciencias de la Computación. &lt;br /&gt;
&lt;br /&gt;
Working as a Security Analyst for Sistemas Aplicativos S.A. / Verizon Business Security Solutions.&lt;/div&gt;</summary>
		<author><name>Eduardo Castellanos</name></author>	</entry>

	</feed>