<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>Watcher: Web security testing tool and passive vulnerability scanner</title><link>http://websecuritytool.codeplex.com/project/feeds/rss</link><description>A Fiddler plugin that passively checks web application&amp;#39;s for a variety of security issues.  Watcher acts as assistant to the web developer, tester, or security auditor, by quickly identifying real issues and hot-spots that commonly lead to security problems in web apps.</description><item><title>Updated Wiki: Home</title><link>https://websecuritytool.codeplex.com/wikipage?version=95</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Why use the Watcher passive Web-security scanner?&lt;/h2&gt;by &lt;a href="http://www.lookout.net/"&gt;Chris Weber&lt;/a&gt;, co-founder at &lt;a href="http://www.casaba.com/"&gt;Casaba Security&lt;/a&gt;, contact me through &lt;a href="https://www.codeplex.com/site/login?RedirectUrl=http%3a%2f%2fwww.codeplex.com%2fsite%2fusers%2fcontact%2fchrisweber%3fOriginalUrl%3dhttp%3a%2f%2fwww.codeplex.com%2fsite%2fusers%2fview%2fchrisweber"&gt;CodePlex&lt;/a&gt;, email me at casaba .com, or drop me a message on &lt;a href="https://www.twitter.com/w3be"&gt;Twitter&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ever find yourself looking for that showstopper exploit in a Web-app, and forgetting to check out all the low-hanging fruit?  That&amp;#39;s intitially why we created Watcher.  For one thing, we don&amp;#39;t want to manually inspect a Web-app for many of these issues (cookie settings, SSL configuration, information leaks, etc), but we still want to find and fix them.  Watcher provides this level of security analysis, plus provides hot-spot detection to help pen-testers focus in on the spots that will lead to that showstopper exploit.&lt;br /&gt;&lt;br /&gt;Watcher is a &lt;a href="http://www.fiddler2.com"&gt;Fiddler&lt;/a&gt; addon which aims to assist penetration testers in passively finding Web-application vulnerabilities. The security field today has several good choices for HTTP proxies which assist auditors and pen-testers.  We chose to implement this as a plugin for Fiddler which already provides the proxy framework for HTTP debugging.  Some reasons to use Watcher include:
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Safe for the Cloud and hosting environments.&lt;/b&gt;  Being passive gives Watcher several advantages - when applications live in the Cloud there&amp;#39;s often a risk that running security testing could damage the shared infrastructure.  However, using a passive tool like Watcher ensures that there&amp;#39;s no chance of damaging Cloud-like infrastructure.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Safe for production environments.&lt;/b&gt;  Watcher does not attack web-applications with loads of intrusive requests, it doesn&amp;#39;t modify inputs to your application.  Unlike crawlers and web-application scanners, Watcher does not generate dangerous traffic.  It quietly analyzes normal user-interaction and makes educated reports on the security of an application.  &lt;/li&gt;
&lt;li&gt;&lt;b&gt;Low overhead, no training.&lt;/b&gt;  If you’re building web-applications you already have a development and test staff.  Fiddler has been valuable to dev and test for years as a general-purpose HTTP debugging proxy.  Watcher fits seamlessly into the picture, providing valuable security insight with no special training requirements, dedicated machines, or other resources.  &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;If you&amp;#39;re looking for a tool to perform &lt;b&gt;cross-site scripting (XSS) testing&lt;/b&gt;, check out our &lt;a href="http://xss.codeplex.com/"&gt;x5s XSS testing tool&lt;/a&gt;.&lt;br /&gt;
&lt;h2&gt;Quick Links&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Latest &lt;a href="http://websecuritytool.codeplex.com/releases/view/22212#DownloadId=62386"&gt;version download&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Detailed &lt;a href="https://websecuritytool.codeplex.com/documentation?referringTitle=Home"&gt;Documentation&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Descriptions of the &lt;a href="http://websecuritytool.codeplex.com/wikipage?title=Checks"&gt;Checks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Sample &lt;a href="http://i3.codeplex.com/download?ProjectName=websecuritytool&amp;amp;DownloadId=112053"&gt;screenshot&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;x5s tool for &lt;a href="http://xss.codeplex.com/"&gt;active XSS testing&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Acknowledgements&lt;/h2&gt;We would like to thank the following people for their hard work, contributions, and ideas:&lt;br /&gt;&lt;br /&gt;Eric Lawrence (for building the Fiddler HTTP proxy)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;(Contributors)&lt;/b&gt;&lt;br /&gt;Samuel Bucholtz&lt;br /&gt;Robert Mooney&lt;br /&gt;Jason D. Montgomery&lt;br /&gt;Hidetake Jo&lt;br /&gt;Bryan Sullivan&lt;br /&gt;&lt;br /&gt;&lt;b&gt;(Suggestions and Ideas)&lt;/b&gt;&lt;br /&gt;Bryan Sullivan&lt;br /&gt;Dave Wichers&lt;br /&gt;Russ McRee&lt;br /&gt;David Byrne&lt;br /&gt;Adrien de Beaupre&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>chrisweber</author><pubDate>Fri, 31 May 2013 06:44:17 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20130531064417A</guid></item><item><title>Updated Wiki: Documentation</title><link>http://websecuritytool.codeplex.com/documentation?version=12</link><description>&lt;div class="wikidoc"&gt;by &lt;a href="http://www.lookout.net/"&gt;Chris Weber&lt;/a&gt;, co-founder at &lt;a href="http://www.casaba.com/"&gt;Casaba Security&lt;/a&gt;, contact me through &lt;a href="https://www.codeplex.com/site/login?RedirectUrl=http%3a%2f%2fwww.codeplex.com%2fsite%2fusers%2fcontact%2fchrisweber%3fOriginalUrl%3dhttp%3a%2f%2fwww.codeplex.com%2fsite%2fusers%2fview%2fchrisweber"&gt;CodePlex&lt;/a&gt;, or email me at casaba .com.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Frequently Asked Questions:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;Answers to common questions are on the &lt;a href="http://websecuritytool.codeplex.com/wikipage?title=FAQ&amp;referringTitle=Documentation"&gt;FAQ&lt;/a&gt; page.&lt;br /&gt;
&lt;h2&gt;Contents&lt;/h2&gt;&lt;a href="#download"&gt;Download&lt;/a&gt;&lt;br /&gt;&lt;a href="#background"&gt;Background&lt;/a&gt;&lt;br /&gt;&lt;a href="#priorWork"&gt;Prior Work&lt;/a&gt;&lt;br /&gt;&lt;a href="#reviews"&gt;Reviews&lt;/a&gt;&lt;br /&gt;&lt;a href="#interface"&gt;User Interface and Reporting&lt;/a&gt;&lt;br /&gt;&lt;a href="#installation"&gt;Installation&lt;/a&gt;&lt;br /&gt;&lt;a href="#configuration"&gt;Configuration and Usage&lt;/a&gt;&lt;br /&gt;&lt;a href="#compliance"&gt;Compliance with OWASP&lt;/a&gt;&lt;br /&gt;&lt;a href="#checks"&gt;Checks and how they work&lt;/a&gt;&lt;br /&gt;&lt;a href="#addingChecks"&gt;Creating and Contributing Checks&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="download"&gt;&lt;/a&gt;
&lt;h2&gt;Downloading Watcher&lt;/h2&gt;From the &lt;a href="http://websecuritytool.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=22212"&gt;download page&lt;/a&gt; you can get the ZIP file for manual installation or the EXE installer.   A &lt;b&gt;Team Foundation Server&lt;/b&gt; (TFS) component is also included as a separate download with instructions for installing and exporting results to TFS.&lt;br /&gt;&lt;br /&gt;Note also, if you&amp;#39;re looking for a tool to perform &lt;b&gt;cross-site scripting (XSS) testing&lt;/b&gt;, check out our &lt;a href="http://xss.codeplex.com/"&gt;x5s XSS testing tool&lt;/a&gt;.  Watcher does include a check to find user-controlled HTML, but x5s is more active and geared toward finding encoding issues that lead to XSS.&lt;br /&gt;&lt;br /&gt;&lt;a name="background"&gt;&lt;/a&gt;
&lt;h2&gt;A Passive tool for Web Security Testing and Auditing&lt;/h2&gt;Watcher is a runtime passive-analysis tool for HTTP-based Web applications.  Being passive means it won&amp;#39;t damage production systems, it&amp;#39;s completely safe to use in Cloud computing, shared hosting, and dedicated hosting environments.  Watcher detects Web-application security issues as well as operational configuration issues.  Watcher provides pen-testers hot-spot detection for vulnerabilities, developers quick sanity checks, and auditors PCI compliance auditing.  It looks for issues related to mashups, user-controlled payloads (potential XSS), cookies, comments, HTTP headers, SSL, Flash, Silverlight, referrer leaks, information disclosure, Unicode, and more.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Major Features:&lt;/u&gt;&lt;/b&gt;
&lt;ol&gt;&lt;li&gt;&lt;b&gt;Passive detection&lt;/b&gt; of security, privacy, and PCI compliance issues in HTTP, HTML, Javascript, CSS, and development frameworks (e.g. ASP.NET, JavaServer)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Works seamlessly with complex Web 2.0 applications&lt;/b&gt; while you drive the Web browser&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Non-intrusive&lt;/b&gt;, will not raise alarms or damage production sites&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Real-time analysis&lt;/b&gt; and reporting - findings are reported as they’re found, exportable to XML, HTML, and Team Foundation Server (TFS)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Configurable domains&lt;/b&gt; with wildcard support&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Extensible framework&lt;/b&gt; for adding new checks&lt;/li&gt;&lt;/ol&gt;
&lt;br /&gt;&lt;br /&gt;Watcher is built as a plugin for the Fiddler HTTP debugging proxy available at &lt;a href="http://www.fiddlertool.com"&gt;www.fiddlertool.com&lt;/a&gt;.  Fiddler provides all of the rich functionality of a good Web/HTTP proxy.  With Fiddler you can capture all HTTP traffic, intercept and modify, replay requests, and much much more.  Fiddler provides the HTTP proxy framework for Watcher to work in, allowing for seamless integration with today’s complex Web 2.0 or Rich Internet Applications.  Watcher runs silently in the background while you drive your browser and interact with the Web-application.&lt;br /&gt;&lt;br /&gt;Watcher is built in C# as a small framework with 30+ checks already included. It&amp;#39;s built so that new checks can be easily created to perform custom audits specific to your organizational policies, or to perform more general-purpose security assessments. Examples of the types of issues Watcher will currently identify:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;ASP.NET VIEWSTATE insecure configurations&lt;/li&gt;
&lt;li&gt;JavaServer MyFaces ViewState without cryptographic protections&lt;/li&gt;
&lt;li&gt;Cross-domain stylesheet and javascript references&lt;/li&gt;
&lt;li&gt;User-controllable cross-domain references &lt;/li&gt;
&lt;li&gt;User-controllable attribute values such as href, form action, etc. &lt;/li&gt;
&lt;li&gt;User-controllable javascript events (e.g. onclick)&lt;/li&gt;
&lt;li&gt;Cross-domain form POSTs&lt;/li&gt;
&lt;li&gt;Insecure cookies which don&amp;#39;t set the HTTPOnly or secure flags&lt;/li&gt;
&lt;li&gt;Open redirects which can be abused by spammers and phishers&lt;/li&gt;
&lt;li&gt;Insecure Flash object parameters useful for cross-site scripting&lt;/li&gt;
&lt;li&gt;Insecure Flash crossdomain.xml&lt;/li&gt;
&lt;li&gt;Insecure Silverlight clientaccesspolicy.xml&lt;/li&gt;
&lt;li&gt;Charset declarations which could introduce vulnerability (non-UTF-8)&lt;/li&gt;
&lt;li&gt;User-controllable charset declarations &lt;/li&gt;
&lt;li&gt;Dangerous context-switching between HTTP and HTTPS&lt;/li&gt;
&lt;li&gt;Insufficient use of cache-control headers when private data is concerned (e.g. no-store)&lt;/li&gt;
&lt;li&gt;Potential HTTP referer leaks of sensitive user-information&lt;/li&gt;
&lt;li&gt;Potential information leaks in URL parameters&lt;/li&gt;
&lt;li&gt;Source code comments worth a closer look&lt;/li&gt;
&lt;li&gt;Insecure authentication protocols like Digest and Basic&lt;/li&gt;
&lt;li&gt;SSL certificate validation errors&lt;/li&gt;
&lt;li&gt;SSL insecure protocol issues (allowing SSL v2)&lt;/li&gt;
&lt;li&gt;Unicode issues with invalid byte streams&lt;/li&gt;
&lt;li&gt;Sharepoint insecurity checks&lt;/li&gt;
&lt;li&gt;more….&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Reducing false positives is a high priority, suggestions are welcome.  Right now each check takes steps to reduce false positives, some better than others, and checks can be individually disabled if they’re generating too much noise.  &lt;br /&gt;&lt;br /&gt;&lt;a name="priorWork"&gt;&lt;/a&gt;
&lt;h2&gt;Prior work&lt;/h2&gt;There has been a lot of great work over the years creating Web-app security tools.  Passive assessment proxies do exist, such as &lt;a href="http://code.google.com/p/ratproxy/"&gt;RatProxy&lt;/a&gt;, &lt;a href="http://portswigger.net/"&gt;Burp proxy&lt;/a&gt;, &lt;a href="http://code.google.com/p/proxmon/"&gt;ProxMon&lt;/a&gt;, &lt;a href="http://www.parosproxy.org/index.shtml"&gt;Paros&lt;/a&gt;, and OWASP&amp;#39;s &lt;a href="http://www.owasp.org/index.php/Category:OWASP_Pantera_Web_Assessment_Studio_Project"&gt;Pantera&lt;/a&gt; and &lt;a href="http://www.owasp.org/index.php/Category:OWASP_WebScarab_Project"&gt;WebScarab&lt;/a&gt;.  Some of these even combine active testing methods.  &lt;a href="http://www.charlesproxy.com/"&gt;Charles proxy&lt;/a&gt; has also been a very useful proxy during assessments.  We use whatever tools suit our needs in a given situation, based on the functions and reporting they provide.  &lt;br /&gt;&lt;br /&gt;I still find reason to use some of the other proxies, but found a compelling interest to develop Watcher.  For one thing, Fiddler is free and widely used.  We work with a large group of developers and testers who either use Windows or Fiddler on a daily basis.  Switching between different proxies for functional testing and security testing wasn&amp;#39;t optimal, so we decided to build a plugin for Fiddler that incorporates the security testing we want to passively automate.  You can perform your functional testing as normal, and have Watcher find security issues for you.&lt;br /&gt;&lt;br /&gt;Fiddler provides a proxy framework with builtin tools for HTTP, HTML/XML, and Javascript debugging.  Rather than recreate the proxy, we can focus on the security checking.  Fiddler will handle SSL MITM, NTLM authentication, request interception, and other functions you&amp;#39;d expect from a functional proxy.  It can also be easily extended and contains other useful features such as an AutoResponder, performance stats, and more.  &lt;br /&gt;&lt;br /&gt;If you wanted you could still use other proxies that suit your needs and chain them together with Fiddler and Watcher to get more coverage.&lt;br /&gt;&lt;br /&gt;&lt;a name="reviews"&gt;&lt;/a&gt;
&lt;h2&gt;Reviews&lt;/h2&gt;Various unsolicited reviews of Watcher have been written.  Check them out to see how different people find value and use this type of tool.&lt;br /&gt;&lt;br /&gt;Russ McRee has written a review for &lt;a href="http://holisticinfosec.org/toolsmith/docs/november2009.html"&gt;ISSA Journal&amp;#39;s _Toolsmith_&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Rafal @ ishackingyou.com has written a review about how &lt;a href="http://preachsecurity.blogspot.com/2009/06/watcher-web-vulnerabilities-served-up.html"&gt;Watcher&amp;#39;s hotspot detection enables web-app pen-testing&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Eviltester has written on &lt;a href="http://www.eviltester.com/index.php/2009/04/30/learn-security-testing-with-fiddler-and-watcher/"&gt;how to learn security testing with Fiddler and Watcher&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;John Sawyer wrote a review on Darkreading about the &lt;a href="http://www.darkreading.com/blog/archives/2009/04/new_passive_web.html"&gt;passive agressive testing of Watcher&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="interface"&gt;&lt;/a&gt;
&lt;h2&gt;User Interface and Reporting&lt;/h2&gt;Watcher writes findings to a ListView which includes the Severity, SessionID, Title, and URL.  The full report can be exported to an XML file.  Here&amp;#39;s a screenshot of the reporting UI, the config UI is separate still.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=websecuritytool&amp;DownloadId=112053" alt="watcher-results.png" title="watcher-results.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="installation"&gt;&lt;/a&gt;
&lt;h2&gt;Installation&lt;/h2&gt;Install the Fiddler tool &lt;a href="http://www.fiddlertool.com"&gt;http://www.fiddlertool.com&lt;/a&gt;.  &lt;b&gt;Fiddler must be run at least once&lt;/b&gt; before installing Watcher. Then either run the WatcherSetup.exe installer or open the .ZIP and copy the CasabaSecurity.Web.Watcher.Checks.dll and CasabaSecurity.Web.Watcher.dll into Fiddler&amp;#39;s &amp;#39;scripts&amp;#39; folder:&lt;br /&gt;&lt;br /&gt;On Windows XP flavors - Copy the dll&amp;#39;s to %userprofile%\My Documents\Fiddler2\Scripts&lt;br /&gt;On Windows Vista flavors - Copy the dll&amp;#39;s to %userprofile%\Documents\Fiddler2\Scripts&lt;br /&gt;On Windows 7 flavors - Copy the dll&amp;#39;s to %userprofile%\Documents\Fiddler2\Scripts&lt;br /&gt;&lt;br /&gt;&lt;a name="configuration"&gt;&lt;/a&gt;
&lt;h2&gt;Configuration and Use&lt;/h2&gt;Requires typing in the origin domain to monitor and clicking &amp;quot;Enable&amp;quot;. Wildcards are supported so &lt;b&gt;.google.com will work, or simply &lt;/b&gt;. However, wildcards extend the scope of the &amp;quot;cross-domain&amp;quot; checks which will get missed. You can also add &amp;quot;trusted domains&amp;quot; to exempt them from the cross-domain checks. Some examples of domain configurations:&lt;br /&gt;&lt;br /&gt;www.casabasecurity.com&lt;br /&gt;// A specific fully qualified domain name is the most precise way to configure Watcher, and will ensure all cross-domain checks.  This provides the best coverage of cross-domain issues, since domains that aren&amp;#39;t www.casabasecurity.com will be considered untrusted.&lt;br /&gt;&lt;br /&gt;*.casabasecurity.com &lt;br /&gt;// Any subdomain of .casabasecurity.com will be observed.  This provides good coverage of cross-domain issues, since domains that aren&amp;#39;t subdomains of casabasecurity.com&amp;#39; will be considered untrusted.&lt;br /&gt;&lt;br /&gt;casaba&lt;br /&gt;// Any domain or subdomain containing &amp;#39;casaba&amp;#39; will be observed.  This provides decent coverage of cross-domain issues, since domains that don&amp;#39;t contain &amp;#39;casaba&amp;#39; will be considered untrusted.&lt;br /&gt;&lt;br /&gt;* &lt;br /&gt;// all domains will be observed, however cross-domain issues will not be found since * assumes they&amp;#39;re all trusted origin domains.  This doesn&amp;#39;t provide any coverage of cross-domain issues.&lt;br /&gt;&lt;br /&gt;This makes it easy to test when your application has interactions with many subdomains off your own. However, to find cross-domain issues common to mashups, advertising, and other third-party resources, it&amp;#39;s better to specify the specific domain.&lt;br /&gt;&lt;br /&gt;&lt;a name="compliance"&gt;&lt;/a&gt;
&lt;h2&gt;Compliance with OWASP &lt;a href="http://www.owasp.org/index.php/ASVS"&gt;Application Security Verification Standard&lt;/a&gt;&lt;/h2&gt;Watcher provides checks that comply with OWASP&amp;#39;s Application Security Verification Standard Levels 1 (ASVL1) and Level 2 (ASVL2).  This is documented inside the Watcher user interface, and also here:&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Requirement &lt;/th&gt;&lt;th&gt; Level Coverage &lt;/th&gt;&lt;th&gt; Watcher check description &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; V8.9 &lt;/td&gt;&lt;td&gt;  ASVL1,ASVL2	&lt;/td&gt;&lt;td&gt; Identify Web server error messages.	&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; V8.9 &lt;/td&gt;&lt;td&gt;  ASVL1,ASVL2	&lt;/td&gt;&lt;td&gt; Identify database error messages.	&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; V9.2 &lt;/td&gt;&lt;td&gt;  ASVL2		&lt;/td&gt;&lt;td&gt; Identify proper use of the Cache-Control headers.	&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; V9.5 &lt;/td&gt;&lt;td&gt;  ASVL2		&lt;/td&gt;&lt;td&gt; Identify sensitive information disclosure in URL.	&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; V9.5 &lt;/td&gt;&lt;td&gt;  ASVL2		&lt;/td&gt;&lt;td&gt; Identify sensitive information disclosure in HTTP headers.	&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; V10.5 &lt;/td&gt;&lt;td&gt; ASVL1,ASVL2	&lt;/td&gt;&lt;td&gt; Identify SSL certificate validation errors.	&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; V11.2 &lt;/td&gt;&lt;td&gt; ASVL2		&lt;/td&gt;&lt;td&gt; Identify cookies without the &amp;#39;secure&amp;#39; flag set.	&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; V11.1 &lt;/td&gt;&lt;td&gt; ASVL2		&lt;/td&gt;&lt;td&gt; Identify cookies without the &amp;#39;httponly&amp;#39; flag set.	&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; V11.5 &lt;/td&gt;&lt;td&gt; ASVL1,ASVL2	&lt;/td&gt;&lt;td&gt; Identify open redirects.	&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;By listing ASVL1 or ASVL2, we&amp;#39;re considering that Watcher provides coverage for whatever the requirement calls for, be it Level 1A or Level 2A.&lt;br /&gt;&lt;br /&gt;&lt;a name="checks"&gt;&lt;/a&gt;
&lt;h2&gt;Checks and How the Work&lt;/h2&gt;All of the checks bundled in the core Watcher check library are documented separately on the &lt;a href="http://websecuritytool.codeplex.com/wikipage?title=Checks&amp;referringTitle=Documentation"&gt;Checks&lt;/a&gt; page.  &lt;br /&gt;&lt;br /&gt;&lt;a name="addingChecks"&gt;&lt;/a&gt;
&lt;h2&gt;Creating New Checks&lt;/h2&gt;Visit the &lt;a href="http://websecuritytool.codeplex.com/wikipage?title=AddingChecks&amp;referringTitle=Documentation"&gt;AddingChecks&lt;/a&gt; page to see details of implementing your own custom checks, or new checks you want to contribute to the project.&lt;br /&gt;We&amp;#39;re looking forward to your checks or check idea contributions!  If you don&amp;#39;t have time to build a new check then leave your idea in the &lt;a href="http://websecuritytool.codeplex.com/Thread/View.aspx?ThreadId=64890"&gt;forums&lt;/a&gt;  and we will try.  Please email me at watcher at my company website, or through the &lt;a href="https://www.codeplex.com/site/users/contact/chrisweber?OriginalUrl=http://www.codeplex.com/site/users/view/chrisweber"&gt;contact form on Codeplex&lt;/a&gt; directly if you don&amp;#39;t have or want to create a Codeplex account.  &lt;br /&gt;&lt;br /&gt;We&amp;#39;re working on a tutorial walkthrough for creating new checks, in the meantime please contact if you&amp;#39;re interested right away.&lt;br /&gt;&lt;br /&gt;&lt;a name="contributing"&gt;&lt;/a&gt;
&lt;h2&gt;Contributing&lt;/h2&gt;This project is open source because we want the community to make it better - we encourage your participation!  While I don&amp;#39;t have any tee shirts or stickers to give away, I&amp;#39;ll happily include your credits in our acknowledgements.  Relevant contributions include bugs, checks, and new ideas that get implemented.  &lt;br /&gt;&lt;br /&gt;If you submit new checks that you&amp;#39;ve implemented we will review them for inclusion in the main Watcher release.  Unless you wish to remain anonymous, we will include your name in the developer list for that release, and in the acknowledgements list.  We believe that people should be recognized for their hard work.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>chrisweber</author><pubDate>Thu, 28 Mar 2013 19:01:49 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20130328070149P</guid></item><item><title>Updated Wiki: Home</title><link>http://websecuritytool.codeplex.com/wikipage?version=94</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Why use the Watcher passive Web-security scanner?&lt;/h2&gt;by &lt;a href="http://www.lookout.net/"&gt;Chris Weber&lt;/a&gt;, co-founder at &lt;a href="http://www.casaba.com/"&gt;Casaba Security&lt;/a&gt;, contact me through &lt;a href="https://www.codeplex.com/site/login?RedirectUrl=http%3a%2f%2fwww.codeplex.com%2fsite%2fusers%2fcontact%2fchrisweber%3fOriginalUrl%3dhttp%3a%2f%2fwww.codeplex.com%2fsite%2fusers%2fview%2fchrisweber"&gt;CodePlex&lt;/a&gt;, or email me at casaba .com.&lt;br /&gt;&lt;br /&gt;Ever find yourself looking for that showstopper exploit in a Web-app, and forgetting to check out all the low-hanging fruit?  That&amp;#39;s intitially why we created Watcher.  For one thing, we don&amp;#39;t want to manually inspect a Web-app for many of these issues (cookie settings, SSL configuration, information leaks, etc), but we still want to find and fix them.  Watcher provides this level of security analysis, plus provides hot-spot detection to help pen-testers focus in on the spots that will lead to that showstopper exploit.&lt;br /&gt;&lt;br /&gt;Watcher is a &lt;a href="http://www.fiddler2.com"&gt;Fiddler&lt;/a&gt; addon which aims to assist penetration testers in passively finding Web-application vulnerabilities. The security field today has several good choices for HTTP proxies which assist auditors and pen-testers.  We chose to implement this as a plugin for Fiddler which already provides the proxy framework for HTTP debugging.  Some reasons to use Watcher include:
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Safe for the Cloud and hosting environments.&lt;/b&gt;  Being passive gives Watcher several advantages - when applications live in the Cloud there&amp;#39;s often a risk that running security testing could damage the shared infrastructure.  However, using a passive tool like Watcher ensures that there&amp;#39;s no chance of damaging Cloud-like infrastructure.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Safe for production environments.&lt;/b&gt;  Watcher does not attack web-applications with loads of intrusive requests, it doesn&amp;#39;t modify inputs to your application.  Unlike crawlers and web-application scanners, Watcher does not generate dangerous traffic.  It quietly analyzes normal user-interaction and makes educated reports on the security of an application.  &lt;/li&gt;
&lt;li&gt;&lt;b&gt;Low overhead, no training.&lt;/b&gt;  If you’re building web-applications you already have a development and test staff.  Fiddler has been valuable to dev and test for years as a general-purpose HTTP debugging proxy.  Watcher fits seamlessly into the picture, providing valuable security insight with no special training requirements, dedicated machines, or other resources.  &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;If you&amp;#39;re looking for a tool to perform &lt;b&gt;cross-site scripting (XSS) testing&lt;/b&gt;, check out our &lt;a href="http://xss.codeplex.com/"&gt;x5s XSS testing tool&lt;/a&gt;.&lt;br /&gt;
&lt;h2&gt;Quick Links&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Latest &lt;a href="http://websecuritytool.codeplex.com/releases/view/22212#DownloadId=62386"&gt;version download&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Detailed &lt;a href="http://websecuritytool.codeplex.com/documentation?referringTitle=Home"&gt;Documentation&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Descriptions of the &lt;a href="http://websecuritytool.codeplex.com/wikipage?title=Checks"&gt;Checks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Sample &lt;a href="http://i3.codeplex.com/download?ProjectName=websecuritytool&amp;amp;DownloadId=112053"&gt;screenshot&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;x5s tool for &lt;a href="http://xss.codeplex.com/"&gt;active XSS testing&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Acknowledgements&lt;/h2&gt;We would like to thank the following people for their hard work, contributions, and ideas:&lt;br /&gt;&lt;br /&gt;Eric Lawrence (for building the Fiddler HTTP proxy)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;(Contributors)&lt;/b&gt;&lt;br /&gt;Samuel Bucholtz&lt;br /&gt;Robert Mooney&lt;br /&gt;Jason D. Montgomery&lt;br /&gt;Hidetake Jo&lt;br /&gt;Bryan Sullivan&lt;br /&gt;&lt;br /&gt;&lt;b&gt;(Suggestions and Ideas)&lt;/b&gt;&lt;br /&gt;Bryan Sullivan&lt;br /&gt;Dave Wichers&lt;br /&gt;Russ McRee&lt;br /&gt;David Byrne&lt;br /&gt;Adrien de Beaupre&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>chrisweber</author><pubDate>Thu, 28 Mar 2013 19:01:09 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20130328070109P</guid></item><item><title>Updated Wiki: Home</title><link>http://websecuritytool.codeplex.com/wikipage?version=93</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Why use the Watcher passive Web-security scanner?&lt;/h2&gt;by &lt;a href="http://www.lookout.net/"&gt;Chris Weber&lt;/a&gt;, co-founder at &lt;a href="http://www.casaba.com/"&gt;Casaba Security&lt;/a&gt;, contact methrough &lt;a href="https://www.codeplex.com/site/login?RedirectUrl=http%3a%2f%2fwww.codeplex.com%2fsite%2fusers%2fcontact%2fchrisweber%3fOriginalUrl%3dhttp%3a%2f%2fwww.codeplex.com%2fsite%2fusers%2fview%2fchrisweber"&gt;CodePlex&lt;/a&gt;, or email me at casaba .com.&lt;br /&gt;&lt;br /&gt;Ever find yourself looking for that showstopper exploit in a Web-app, and forgetting to check out all the low-hanging fruit?  That&amp;#39;s intitially why we created Watcher.  For one thing, we don&amp;#39;t want to manually inspect a Web-app for many of these issues (cookie settings, SSL configuration, information leaks, etc), but we still want to find and fix them.  Watcher provides this level of security analysis, plus provides hot-spot detection to help pen-testers focus in on the spots that will lead to that showstopper exploit.&lt;br /&gt;&lt;br /&gt;Watcher is a &lt;a href="http://www.fiddler2.com"&gt;Fiddler&lt;/a&gt; addon which aims to assist penetration testers in passively finding Web-application vulnerabilities. The security field today has several good choices for HTTP proxies which assist auditors and pen-testers.  We chose to implement this as a plugin for Fiddler which already provides the proxy framework for HTTP debugging.  Some reasons to use Watcher include:
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Safe for the Cloud and hosting environments.&lt;/b&gt;  Being passive gives Watcher several advantages - when applications live in the Cloud there&amp;#39;s often a risk that running security testing could damage the shared infrastructure.  However, using a passive tool like Watcher ensures that there&amp;#39;s no chance of damaging Cloud-like infrastructure.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Safe for production environments.&lt;/b&gt;  Watcher does not attack web-applications with loads of intrusive requests, it doesn&amp;#39;t modify inputs to your application.  Unlike crawlers and web-application scanners, Watcher does not generate dangerous traffic.  It quietly analyzes normal user-interaction and makes educated reports on the security of an application.  &lt;/li&gt;
&lt;li&gt;&lt;b&gt;Low overhead, no training.&lt;/b&gt;  If you’re building web-applications you already have a development and test staff.  Fiddler has been valuable to dev and test for years as a general-purpose HTTP debugging proxy.  Watcher fits seamlessly into the picture, providing valuable security insight with no special training requirements, dedicated machines, or other resources.  &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;If you&amp;#39;re looking for a tool to perform &lt;b&gt;cross-site scripting (XSS) testing&lt;/b&gt;, check out our &lt;a href="http://xss.codeplex.com/"&gt;x5s XSS testing tool&lt;/a&gt;.&lt;br /&gt;
&lt;h2&gt;Quick Links&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Latest &lt;a href="http://websecuritytool.codeplex.com/releases/view/22212#DownloadId=62386"&gt;version download&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Detailed &lt;a href="http://websecuritytool.codeplex.com/documentation?referringTitle=Home"&gt;Documentation&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Descriptions of the &lt;a href="http://websecuritytool.codeplex.com/wikipage?title=Checks"&gt;Checks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Sample &lt;a href="http://i3.codeplex.com/download?ProjectName=websecuritytool&amp;amp;DownloadId=112053"&gt;screenshot&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;x5s tool for &lt;a href="http://xss.codeplex.com/"&gt;active XSS testing&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Acknowledgements&lt;/h2&gt;We would like to thank the following people for their hard work, contributions, and ideas:&lt;br /&gt;&lt;br /&gt;Eric Lawrence (for building the Fiddler HTTP proxy)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;(Contributors)&lt;/b&gt;&lt;br /&gt;Samuel Bucholtz&lt;br /&gt;Robert Mooney&lt;br /&gt;Jason D. Montgomery&lt;br /&gt;Hidetake Jo&lt;br /&gt;Bryan Sullivan&lt;br /&gt;&lt;br /&gt;&lt;b&gt;(Suggestions and Ideas)&lt;/b&gt;&lt;br /&gt;Bryan Sullivan&lt;br /&gt;Dave Wichers&lt;br /&gt;Russ McRee&lt;br /&gt;David Byrne&lt;br /&gt;Adrien de Beaupre&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>chrisweber</author><pubDate>Thu, 28 Mar 2013 19:00:56 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20130328070056P</guid></item><item><title>Updated Release: Watcher v1.5.7 (Mar 28, 2013)</title><link>http://websecuritytool.codeplex.com/releases/view/22212</link><description>&lt;div class="wikidoc"&gt;Watcher.zip contains the two DLL&amp;#39;s for manual installation of the plugin - drop them in your Fiddler2\Scripts user or program files folder.&lt;br /&gt;WatcherSetup.exe is an installer built with NSIS that will copy the two DLL&amp;#39;s into either your Fiddler2\Scripts user or program files folder.&lt;br /&gt;WatcherTFS.zip contains the Team Foundation Server (TFS) component which Watcher uses to export results to TFS.  Installation and further instructions are included in the ZIP file.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://websecuritytool.codeplex.com/wikipage?title=CHANGELOG"&gt;CHANGELOG&lt;/a&gt;&lt;br /&gt;Program   Watcher Passive Web Security Tool for Fiddler &lt;br /&gt;Version   1.5.7&lt;br /&gt;Release   28-March-2013&lt;br /&gt;License   Custom Open Source&lt;br /&gt;Authors   Chris Weber&lt;br /&gt;Testers   Chris Weber&lt;br /&gt;Contact   chris@casaba.com&lt;br /&gt;Website   http://websecuritytool.codeplex.com/&lt;br /&gt;Company   http://www.casaba.com/&lt;br /&gt;Copyright (c) 2010 - 2013 Casaba Security, LLC.  All Rights Reserved.&lt;br /&gt;&lt;br /&gt;{&amp;quot;  &lt;br /&gt; +++ major new feature &lt;br /&gt;      + minor new feature&lt;br /&gt;       * changed feature&lt;br /&gt;      % improved performance or quality &lt;br /&gt;       ! fixed minor bug&lt;br /&gt;     !!! fixed major bug&lt;br /&gt;&lt;br /&gt;v1.5.7 2013-03-28&lt;br /&gt;  !!! Bug fix in check for custom-defined regex patterns&lt;br /&gt;&lt;br /&gt;v1.5.6 2013-01-08&lt;br /&gt;   + New check allows for custom-defined regex patterns&lt;br /&gt;   % Minor bugfixes &lt;br /&gt;&lt;br /&gt;v1.5.4 2011-10-01&lt;br /&gt;    + New check for internal IP address disclosure&lt;br /&gt;    % Watcher now defaults to automatically checking for updates at start&lt;br /&gt;&lt;br /&gt;v1.5.3 2011-07-31&lt;br /&gt;    ! Bug fixes&lt;br /&gt;   % X-Frame-Options check now checks every page, unique to path, ignoring query.&lt;br /&gt;&lt;br /&gt;v1.5.2 2011-05-21&lt;br /&gt;   + New check for HTTP Strict-Transport-Security header on SSL sites&lt;br /&gt;   + Added free-form text filter to Results display&lt;br /&gt;&lt;br /&gt;v1.5.1 - 2011-02-21&lt;br /&gt;   % Moving checks to Majestic12 HtmlParser to overcome some bottlenecks.&lt;br /&gt;   % Deprecating some Utility.cs functions.&lt;br /&gt;   ! Fixing various minor bugs.&lt;br /&gt;&lt;br /&gt;v1.5.0 - 2010-11-17&lt;br /&gt;+++ Added a button to process sessions offline. Now a user can load a .SAZ (session archive) file and process the data offline in Fiddler/Watcher.&lt;br /&gt;   % Fixed the ProgressDialog control to move incrementally.&lt;br /&gt;&lt;br /&gt;v1.4.1 - 2010-11-09&lt;br /&gt;   * Exporting results now includes all results rather than just those selected.&lt;br /&gt;   * XML report now includes metadata about Watcher version and configuration.&lt;br /&gt;   % Check for &amp;#39;Charset not UTF-8&amp;#39; improvements.&lt;br /&gt;&lt;br /&gt;v1.4.0 - 2010-04-24   &lt;br /&gt;   Attempts have been made at noise-reduction, see below.&lt;br /&gt;   Wiki has been updated with more check descriptions, all linked to from inside Watcher.&lt;br /&gt; +++ Check descriptions all improved and updated with recommendations and external references.&lt;br /&gt;   + New check for javascript document.domain lowering.&lt;br /&gt;   * IMPORTANT: All cookie checks now perform noise filtering by default, with no option to change.&lt;br /&gt;   * New installations now come with a few noisy checks disabled by default.&lt;br /&gt;   * New installations now come with some check configs enabled by default to reduce noise.&lt;br /&gt;   ! Fixed bug in loosely scoped domain where it wasn&amp;#39;t defaulting to origin when one&amp;#39;s not specified.&lt;br /&gt;   ! Fixed bug where check configurations weren&amp;#39;t saving.&lt;br /&gt;   ! Assorted bug fixes.&lt;br /&gt;&lt;br /&gt;v1.3.0 - 2010-02-25&lt;br /&gt;  +++ .NET Framework 3.5 is now required.&lt;br /&gt;  +++ Optional plugin (separate download) to export results to Team Foundation Server (TFS).&lt;br /&gt;    + New (BETA) check for ASP.NET VIEWSTATE tampering vulnerability. (thanks to Bryan Sullivan for suggestions)&lt;br /&gt;    + New (BETA) check for JavaServer Faces ViewState tampering vulnerability. (thanks to David Byrne for ideas)&lt;br /&gt;    + New check for Silverlight EnableHtmlAccess.&lt;br /&gt;    + Export results to HTML report.&lt;br /&gt;    + If no origin domain is specified, each response domain will be treated as the origin, enabling better cross-domain analysis.&lt;br /&gt;    + Added compliance mappings for Microsoft SDL.&lt;br /&gt;    ! Assorted bug fixes throughout check library.&lt;br /&gt;&lt;br /&gt;v1.2.2 - 2009-07-24&lt;br /&gt;    + User-Agent now sends version information during update check for tracking purposes.&lt;br /&gt;    + Added Windows 7 support to installer.&lt;br /&gt;    ! Fixed the configuration page so checking and unchecking immediately affect what checks are run on a request.&lt;br /&gt;    ! Checks that maintain URL caches weren&amp;#39;t clearing when the results list was cleared.&lt;br /&gt;    * Changed the &amp;#39;Charset not UTF-&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>chrisweber</author><pubDate>Thu, 28 Mar 2013 18:55:42 GMT</pubDate><guid isPermaLink="false">Updated Release: Watcher v1.5.7 (Mar 28, 2013) 20130328065542P</guid></item><item><title>Released: Watcher v1.5.7 (Mar 28, 2013)</title><link>http://websecuritytool.codeplex.com/releases/view/22212</link><description>
&lt;div class="wikidoc"&gt;Watcher.zip contains the two DLL&amp;#39;s for manual installation of the plugin - drop them in your Fiddler2\Scripts user or program files folder.&lt;br&gt;
WatcherSetup.exe is an installer built with NSIS that will copy the two DLL&amp;#39;s into either your Fiddler2\Scripts user or program files folder.&lt;br&gt;
WatcherTFS.zip contains the Team Foundation Server (TFS) component which Watcher uses to export results to TFS. Installation and further instructions are included in the ZIP file.&lt;br&gt;
&lt;br&gt;
&lt;a href="http://websecuritytool.codeplex.com/wikipage?title=CHANGELOG"&gt;CHANGELOG&lt;/a&gt;&lt;br&gt;
Program Watcher Passive Web Security Tool for Fiddler &lt;br&gt;
Version 1.5.7&lt;br&gt;
Release 28-March-2013&lt;br&gt;
License Custom Open Source&lt;br&gt;
Authors Chris Weber&lt;br&gt;
Testers Chris Weber&lt;br&gt;
Contact chris@casaba.com&lt;br&gt;
Website http://websecuritytool.codeplex.com/&lt;br&gt;
Company http://www.casaba.com/&lt;br&gt;
Copyright (c) 2010 - 2013 Casaba Security, LLC. All Rights Reserved.&lt;br&gt;
&lt;br&gt;
{&amp;quot; &lt;br&gt;
&amp;#43;&amp;#43;&amp;#43; major new feature &lt;br&gt;
&amp;#43; minor new feature&lt;br&gt;
* changed feature&lt;br&gt;
% improved performance or quality &lt;br&gt;
! fixed minor bug&lt;br&gt;
!!! fixed major bug&lt;br&gt;
&lt;br&gt;
v1.5.7 2013-03-28&lt;br&gt;
!!! Bug fix in check for custom-defined regex patterns&lt;br&gt;
&lt;br&gt;
v1.5.6 2013-01-08&lt;br&gt;
&amp;#43; New check allows for custom-defined regex patterns&lt;br&gt;
% Minor bugfixes &lt;br&gt;
&lt;br&gt;
v1.5.4 2011-10-01&lt;br&gt;
&amp;#43; New check for internal IP address disclosure&lt;br&gt;
% Watcher now defaults to automatically checking for updates at start&lt;br&gt;
&lt;br&gt;
v1.5.3 2011-07-31&lt;br&gt;
! Bug fixes&lt;br&gt;
% X-Frame-Options check now checks every page, unique to path, ignoring query.&lt;br&gt;
&lt;br&gt;
v1.5.2 2011-05-21&lt;br&gt;
&amp;#43; New check for HTTP Strict-Transport-Security header on SSL sites&lt;br&gt;
&amp;#43; Added free-form text filter to Results display&lt;br&gt;
&lt;br&gt;
v1.5.1 - 2011-02-21&lt;br&gt;
% Moving checks to Majestic12 HtmlParser to overcome some bottlenecks.&lt;br&gt;
% Deprecating some Utility.cs functions.&lt;br&gt;
! Fixing various minor bugs.&lt;br&gt;
&lt;br&gt;
v1.5.0 - 2010-11-17&lt;br&gt;
&amp;#43;&amp;#43;&amp;#43; Added a button to process sessions offline. Now a user can load a .SAZ (session archive) file and process the data offline in Fiddler/Watcher.&lt;br&gt;
% Fixed the ProgressDialog control to move incrementally.&lt;br&gt;
&lt;br&gt;
v1.4.1 - 2010-11-09&lt;br&gt;
* Exporting results now includes all results rather than just those selected.&lt;br&gt;
* XML report now includes metadata about Watcher version and configuration.&lt;br&gt;
% Check for &amp;#39;Charset not UTF-8&amp;#39; improvements.&lt;br&gt;
&lt;br&gt;
v1.4.0 - 2010-04-24 &lt;br&gt;
Attempts have been made at noise-reduction, see below.&lt;br&gt;
Wiki has been updated with more check descriptions, all linked to from inside Watcher.&lt;br&gt;
&amp;#43;&amp;#43;&amp;#43; Check descriptions all improved and updated with recommendations and external references.&lt;br&gt;
&amp;#43; New check for javascript document.domain lowering.&lt;br&gt;
* IMPORTANT: All cookie checks now perform noise filtering by default, with no option to change.&lt;br&gt;
* New installations now come with a few noisy checks disabled by default.&lt;br&gt;
* New installations now come with some check configs enabled by default to reduce noise.&lt;br&gt;
! Fixed bug in loosely scoped domain where it wasn&amp;#39;t defaulting to origin when one&amp;#39;s not specified.&lt;br&gt;
! Fixed bug where check configurations weren&amp;#39;t saving.&lt;br&gt;
! Assorted bug fixes.&lt;br&gt;
&lt;br&gt;
v1.3.0 - 2010-02-25&lt;br&gt;
&amp;#43;&amp;#43;&amp;#43; .NET Framework 3.5 is now required.&lt;br&gt;
&amp;#43;&amp;#43;&amp;#43; Optional plugin (separate download) to export results to Team Foundation Server (TFS).&lt;br&gt;
&amp;#43; New (BETA) check for ASP.NET VIEWSTATE tampering vulnerability. (thanks to Bryan Sullivan for suggestions)&lt;br&gt;
&amp;#43; New (BETA) check for JavaServer Faces ViewState tampering vulnerability. (thanks to David Byrne for ideas)&lt;br&gt;
&amp;#43; New check for Silverlight EnableHtmlAccess.&lt;br&gt;
&amp;#43; Export results to HTML report.&lt;br&gt;
&amp;#43; If no origin domain is specified, each response domain will be treated as the origin, enabling better cross-domain analysis.&lt;br&gt;
&amp;#43; Added compliance mappings for Microsoft SDL.&lt;br&gt;
! Assorted bug fixes throughout check library.&lt;br&gt;
&lt;br&gt;
v1.2.2 - 2009-07-24&lt;br&gt;
&amp;#43; User-Agent now sends version information during update check for tracking purposes.&lt;br&gt;
&amp;#43; Added Windows 7 support to installer.&lt;br&gt;
! Fixed the configuration page so checking and unchecking immediately affect what checks are run on a request.&lt;br&gt;
! Checks that maintain URL caches weren&amp;#39;t clearing when the results list was cleared.&lt;br&gt;
* Changed the &amp;#39;Charset not UTF-&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
</description><author></author><pubDate>Thu, 28 Mar 2013 18:55:42 GMT</pubDate><guid isPermaLink="false">Released: Watcher v1.5.7 (Mar 28, 2013) 20130328065542P</guid></item><item><title>Updated Release: Watcher v1.5.7 (Mar 28, 2013)</title><link>http://websecuritytool.codeplex.com/releases/view/22212</link><description>&lt;div class="wikidoc"&gt;Watcher.zip contains the two DLL&amp;#39;s for manual installation of the plugin - drop them in your Fiddler2\Scripts user or program files folder.&lt;br /&gt;WatcherSetup.exe is an installer built with NSIS that will copy the two DLL&amp;#39;s into either your Fiddler2\Scripts user or program files folder.&lt;br /&gt;WatcherTFS.zip contains the Team Foundation Server (TFS) component which Watcher uses to export results to TFS.  Installation and further instructions are included in the ZIP file.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://websecuritytool.codeplex.com/wikipage?title=CHANGELOG"&gt;CHANGELOG&lt;/a&gt;&lt;br /&gt;Program   Watcher Passive Web Security Tool for Fiddler &lt;br /&gt;Version   1.5.7&lt;br /&gt;Release   28-March-2013&lt;br /&gt;License   Custom Open Source&lt;br /&gt;Authors   Chris Weber&lt;br /&gt;Testers   Chris Weber&lt;br /&gt;Contact   chris@casaba.com&lt;br /&gt;Website   http://websecuritytool.codeplex.com/&lt;br /&gt;Company   http://www.casaba.com/&lt;br /&gt;Copyright (c) 2010 - 2013 Casaba Security, LLC.  All Rights Reserved.&lt;br /&gt;&lt;br /&gt;{&amp;quot;  &lt;br /&gt; +++ major new feature &lt;br /&gt;      + minor new feature&lt;br /&gt;       * changed feature&lt;br /&gt;      % improved performance or quality &lt;br /&gt;       ! fixed minor bug&lt;br /&gt;     !!! fixed major bug&lt;br /&gt;&lt;br /&gt;v1.5.7 2013-03-28&lt;br /&gt;  !!! Bug fix in check for custom-defined regex patterns&lt;br /&gt;&lt;br /&gt;v1.5.6 2013-01-08&lt;br /&gt;   + New check allows for custom-defined regex patterns&lt;br /&gt;   % Minor bugfixes &lt;br /&gt;&lt;br /&gt;v1.5.4 2011-10-01&lt;br /&gt;    + New check for internal IP address disclosure&lt;br /&gt;    % Watcher now defaults to automatically checking for updates at start&lt;br /&gt;&lt;br /&gt;v1.5.3 2011-07-31&lt;br /&gt;    ! Bug fixes&lt;br /&gt;   % X-Frame-Options check now checks every page, unique to path, ignoring query.&lt;br /&gt;&lt;br /&gt;v1.5.2 2011-05-21&lt;br /&gt;   + New check for HTTP Strict-Transport-Security header on SSL sites&lt;br /&gt;   + Added free-form text filter to Results display&lt;br /&gt;&lt;br /&gt;v1.5.1 - 2011-02-21&lt;br /&gt;   % Moving checks to Majestic12 HtmlParser to overcome some bottlenecks.&lt;br /&gt;   % Deprecating some Utility.cs functions.&lt;br /&gt;   ! Fixing various minor bugs.&lt;br /&gt;&lt;br /&gt;v1.5.0 - 2010-11-17&lt;br /&gt;+++ Added a button to process sessions offline. Now a user can load a .SAZ (session archive) file and process the data offline in Fiddler/Watcher.&lt;br /&gt;   % Fixed the ProgressDialog control to move incrementally.&lt;br /&gt;&lt;br /&gt;v1.4.1 - 2010-11-09&lt;br /&gt;   * Exporting results now includes all results rather than just those selected.&lt;br /&gt;   * XML report now includes metadata about Watcher version and configuration.&lt;br /&gt;   % Check for &amp;#39;Charset not UTF-8&amp;#39; improvements.&lt;br /&gt;&lt;br /&gt;v1.4.0 - 2010-04-24   &lt;br /&gt;   Attempts have been made at noise-reduction, see below.&lt;br /&gt;   Wiki has been updated with more check descriptions, all linked to from inside Watcher.&lt;br /&gt; +++ Check descriptions all improved and updated with recommendations and external references.&lt;br /&gt;   + New check for javascript document.domain lowering.&lt;br /&gt;   * IMPORTANT: All cookie checks now perform noise filtering by default, with no option to change.&lt;br /&gt;   * New installations now come with a few noisy checks disabled by default.&lt;br /&gt;   * New installations now come with some check configs enabled by default to reduce noise.&lt;br /&gt;   ! Fixed bug in loosely scoped domain where it wasn&amp;#39;t defaulting to origin when one&amp;#39;s not specified.&lt;br /&gt;   ! Fixed bug where check configurations weren&amp;#39;t saving.&lt;br /&gt;   ! Assorted bug fixes.&lt;br /&gt;&lt;br /&gt;v1.3.0 - 2010-02-25&lt;br /&gt;  +++ .NET Framework 3.5 is now required.&lt;br /&gt;  +++ Optional plugin (separate download) to export results to Team Foundation Server (TFS).&lt;br /&gt;    + New (BETA) check for ASP.NET VIEWSTATE tampering vulnerability. (thanks to Bryan Sullivan for suggestions)&lt;br /&gt;    + New (BETA) check for JavaServer Faces ViewState tampering vulnerability. (thanks to David Byrne for ideas)&lt;br /&gt;    + New check for Silverlight EnableHtmlAccess.&lt;br /&gt;    + Export results to HTML report.&lt;br /&gt;    + If no origin domain is specified, each response domain will be treated as the origin, enabling better cross-domain analysis.&lt;br /&gt;    + Added compliance mappings for Microsoft SDL.&lt;br /&gt;    ! Assorted bug fixes throughout check library.&lt;br /&gt;&lt;br /&gt;v1.2.2 - 2009-07-24&lt;br /&gt;    + User-Agent now sends version information during update check for tracking purposes.&lt;br /&gt;    + Added Windows 7 support to installer.&lt;br /&gt;    ! Fixed the configuration page so checking and unchecking immediately affect what checks are run on a request.&lt;br /&gt;    ! Checks that maintain URL caches weren&amp;#39;t clearing when the results list was cleared.&lt;br /&gt;    * Changed the &amp;#39;Charset not UTF-&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>chrisweber</author><pubDate>Thu, 28 Mar 2013 18:52:20 GMT</pubDate><guid isPermaLink="false">Updated Release: Watcher v1.5.7 (Mar 28, 2013) 20130328065220P</guid></item><item><title>Source code checked in, #68ba1270458d94c6509a982e0e2fafe5c364f5b9</title><link>http://websecuritytool.codeplex.com/SourceControl/changeset/changes/68ba1270458d94c6509a982e0e2fafe5c364f5b9</link><description>Bug fix in Grep check, causing it to add an empty string and consume Fiddler memory and CPU resources.&amp;#10;</description><author>Chris Weber</author><pubDate>Thu, 28 Mar 2013 18:41:44 GMT</pubDate><guid isPermaLink="false">Source code checked in, #68ba1270458d94c6509a982e0e2fafe5c364f5b9 20130328064144P</guid></item><item><title>Updated Release: Watcher v1.5.6 (Jan 08, 2013)</title><link>http://websecuritytool.codeplex.com/releases/view/22212</link><description>&lt;div class="wikidoc"&gt;Watcher.zip contains the two DLL&amp;#39;s for manual installation of the plugin - drop them in your Fiddler2\Scripts user or program files folder.&lt;br /&gt;WatcherSetup.exe is an installer built with NSIS that will copy the two DLL&amp;#39;s into either your Fiddler2\Scripts user or program files folder.&lt;br /&gt;WatcherTFS.zip contains the Team Foundation Server (TFS) component which Watcher uses to export results to TFS.  Installation and further instructions are included in the ZIP file.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://websecuritytool.codeplex.com/wikipage?title=CHANGELOG"&gt;CHANGELOG&lt;/a&gt;&lt;br /&gt;Program   Watcher Passive Web Security Tool for Fiddler &lt;br /&gt;Version   1.5.6&lt;br /&gt;Release   08-January-2013&lt;br /&gt;License   Custom Open Source&lt;br /&gt;Authors   Chris Weber&lt;br /&gt;Testers   Chris Weber&lt;br /&gt;Contact   chris@casaba.com&lt;br /&gt;Website   http://websecuritytool.codeplex.com/&lt;br /&gt;Company   http://www.casaba.com/&lt;br /&gt;Copyright (c) 2010 - 2013 Casaba Security, LLC.  All Rights Reserved.&lt;br /&gt;&lt;br /&gt;{&amp;quot;  &lt;br /&gt; +++ major new feature &lt;br /&gt;      + minor new feature&lt;br /&gt;       * changed feature&lt;br /&gt;      % improved performance or quality &lt;br /&gt;       ! fixed minor bug&lt;br /&gt;     !!! fixed major bug&lt;br /&gt;&lt;br /&gt;v1.5.6 2013-01-08&lt;br /&gt;   + New check allows for custom-defined regex patterns&lt;br /&gt;   % Minor bugfixes &lt;br /&gt;&lt;br /&gt;v1.5.4 2011-10-01&lt;br /&gt;    + New check for internal IP address disclosure&lt;br /&gt;    % Watcher now defaults to automatically checking for updates at start&lt;br /&gt;&lt;br /&gt;v1.5.3 2011-07-31&lt;br /&gt;    ! Bug fixes&lt;br /&gt;   % X-Frame-Options check now checks every page, unique to path, ignoring query.&lt;br /&gt;&lt;br /&gt;v1.5.2 2011-05-21&lt;br /&gt;   + New check for HTTP Strict-Transport-Security header on SSL sites&lt;br /&gt;   + Added free-form text filter to Results display&lt;br /&gt;&lt;br /&gt;v1.5.1 - 2011-02-21&lt;br /&gt;   % Moving checks to Majestic12 HtmlParser to overcome some bottlenecks.&lt;br /&gt;   % Deprecating some Utility.cs functions.&lt;br /&gt;   ! Fixing various minor bugs.&lt;br /&gt;&lt;br /&gt;v1.5.0 - 2010-11-17&lt;br /&gt;+++ Added a button to process sessions offline. Now a user can load a .SAZ (session archive) file and process the data offline in Fiddler/Watcher.&lt;br /&gt;   % Fixed the ProgressDialog control to move incrementally.&lt;br /&gt;&lt;br /&gt;v1.4.1 - 2010-11-09&lt;br /&gt;   * Exporting results now includes all results rather than just those selected.&lt;br /&gt;   * XML report now includes metadata about Watcher version and configuration.&lt;br /&gt;   % Check for &amp;#39;Charset not UTF-8&amp;#39; improvements.&lt;br /&gt;&lt;br /&gt;v1.4.0 - 2010-04-24   &lt;br /&gt;   Attempts have been made at noise-reduction, see below.&lt;br /&gt;   Wiki has been updated with more check descriptions, all linked to from inside Watcher.&lt;br /&gt; +++ Check descriptions all improved and updated with recommendations and external references.&lt;br /&gt;   + New check for javascript document.domain lowering.&lt;br /&gt;   * IMPORTANT: All cookie checks now perform noise filtering by default, with no option to change.&lt;br /&gt;   * New installations now come with a few noisy checks disabled by default.&lt;br /&gt;   * New installations now come with some check configs enabled by default to reduce noise.&lt;br /&gt;   ! Fixed bug in loosely scoped domain where it wasn&amp;#39;t defaulting to origin when one&amp;#39;s not specified.&lt;br /&gt;   ! Fixed bug where check configurations weren&amp;#39;t saving.&lt;br /&gt;   ! Assorted bug fixes.&lt;br /&gt;&lt;br /&gt;v1.3.0 - 2010-02-25&lt;br /&gt;  +++ .NET Framework 3.5 is now required.&lt;br /&gt;  +++ Optional plugin (separate download) to export results to Team Foundation Server (TFS).&lt;br /&gt;    + New (BETA) check for ASP.NET VIEWSTATE tampering vulnerability. (thanks to Bryan Sullivan for suggestions)&lt;br /&gt;    + New (BETA) check for JavaServer Faces ViewState tampering vulnerability. (thanks to David Byrne for ideas)&lt;br /&gt;    + New check for Silverlight EnableHtmlAccess.&lt;br /&gt;    + Export results to HTML report.&lt;br /&gt;    + If no origin domain is specified, each response domain will be treated as the origin, enabling better cross-domain analysis.&lt;br /&gt;    + Added compliance mappings for Microsoft SDL.&lt;br /&gt;    ! Assorted bug fixes throughout check library.&lt;br /&gt;&lt;br /&gt;v1.2.2 - 2009-07-24&lt;br /&gt;    + User-Agent now sends version information during update check for tracking purposes.&lt;br /&gt;    + Added Windows 7 support to installer.&lt;br /&gt;    ! Fixed the configuration page so checking and unchecking immediately affect what checks are run on a request.&lt;br /&gt;    ! Checks that maintain URL caches weren&amp;#39;t clearing when the results list was cleared.&lt;br /&gt;    * Changed the &amp;#39;Charset not UTF-&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>chrisweber</author><pubDate>Wed, 09 Jan 2013 00:48:47 GMT</pubDate><guid isPermaLink="false">Updated Release: Watcher v1.5.6 (Jan 08, 2013) 20130109124847A</guid></item><item><title>Released: Watcher v1.5.6 (Jan 08, 2013)</title><link>http://websecuritytool.codeplex.com/releases/view/22212</link><description>
&lt;div class="wikidoc"&gt;Watcher.zip contains the two DLL&amp;#39;s for manual installation of the plugin - drop them in your Fiddler2\Scripts user or program files folder.&lt;br&gt;
WatcherSetup.exe is an installer built with NSIS that will copy the two DLL&amp;#39;s into either your Fiddler2\Scripts user or program files folder.&lt;br&gt;
WatcherTFS.zip contains the Team Foundation Server (TFS) component which Watcher uses to export results to TFS. Installation and further instructions are included in the ZIP file.&lt;br&gt;
&lt;br&gt;
&lt;a href="http://websecuritytool.codeplex.com/wikipage?title=CHANGELOG"&gt;CHANGELOG&lt;/a&gt;&lt;br&gt;
Program Watcher Passive Web Security Tool for Fiddler &lt;br&gt;
Version 1.5.6&lt;br&gt;
Release 08-January-2013&lt;br&gt;
License Custom Open Source&lt;br&gt;
Authors Chris Weber&lt;br&gt;
Testers Chris Weber&lt;br&gt;
Contact chris@casaba.com&lt;br&gt;
Website http://websecuritytool.codeplex.com/&lt;br&gt;
Company http://www.casaba.com/&lt;br&gt;
Copyright (c) 2010 - 2013 Casaba Security, LLC. All Rights Reserved.&lt;br&gt;
&lt;br&gt;
{&amp;quot; &lt;br&gt;
&amp;#43;&amp;#43;&amp;#43; major new feature &lt;br&gt;
&amp;#43; minor new feature&lt;br&gt;
* changed feature&lt;br&gt;
% improved performance or quality &lt;br&gt;
! fixed minor bug&lt;br&gt;
!!! fixed major bug&lt;br&gt;
&lt;br&gt;
v1.5.6 2013-01-08&lt;br&gt;
&amp;#43; New check allows for custom-defined regex patterns&lt;br&gt;
% Minor bugfixes &lt;br&gt;
&lt;br&gt;
v1.5.4 2011-10-01&lt;br&gt;
&amp;#43; New check for internal IP address disclosure&lt;br&gt;
% Watcher now defaults to automatically checking for updates at start&lt;br&gt;
&lt;br&gt;
v1.5.3 2011-07-31&lt;br&gt;
! Bug fixes&lt;br&gt;
% X-Frame-Options check now checks every page, unique to path, ignoring query.&lt;br&gt;
&lt;br&gt;
v1.5.2 2011-05-21&lt;br&gt;
&amp;#43; New check for HTTP Strict-Transport-Security header on SSL sites&lt;br&gt;
&amp;#43; Added free-form text filter to Results display&lt;br&gt;
&lt;br&gt;
v1.5.1 - 2011-02-21&lt;br&gt;
% Moving checks to Majestic12 HtmlParser to overcome some bottlenecks.&lt;br&gt;
% Deprecating some Utility.cs functions.&lt;br&gt;
! Fixing various minor bugs.&lt;br&gt;
&lt;br&gt;
v1.5.0 - 2010-11-17&lt;br&gt;
&amp;#43;&amp;#43;&amp;#43; Added a button to process sessions offline. Now a user can load a .SAZ (session archive) file and process the data offline in Fiddler/Watcher.&lt;br&gt;
% Fixed the ProgressDialog control to move incrementally.&lt;br&gt;
&lt;br&gt;
v1.4.1 - 2010-11-09&lt;br&gt;
* Exporting results now includes all results rather than just those selected.&lt;br&gt;
* XML report now includes metadata about Watcher version and configuration.&lt;br&gt;
% Check for &amp;#39;Charset not UTF-8&amp;#39; improvements.&lt;br&gt;
&lt;br&gt;
v1.4.0 - 2010-04-24 &lt;br&gt;
Attempts have been made at noise-reduction, see below.&lt;br&gt;
Wiki has been updated with more check descriptions, all linked to from inside Watcher.&lt;br&gt;
&amp;#43;&amp;#43;&amp;#43; Check descriptions all improved and updated with recommendations and external references.&lt;br&gt;
&amp;#43; New check for javascript document.domain lowering.&lt;br&gt;
* IMPORTANT: All cookie checks now perform noise filtering by default, with no option to change.&lt;br&gt;
* New installations now come with a few noisy checks disabled by default.&lt;br&gt;
* New installations now come with some check configs enabled by default to reduce noise.&lt;br&gt;
! Fixed bug in loosely scoped domain where it wasn&amp;#39;t defaulting to origin when one&amp;#39;s not specified.&lt;br&gt;
! Fixed bug where check configurations weren&amp;#39;t saving.&lt;br&gt;
! Assorted bug fixes.&lt;br&gt;
&lt;br&gt;
v1.3.0 - 2010-02-25&lt;br&gt;
&amp;#43;&amp;#43;&amp;#43; .NET Framework 3.5 is now required.&lt;br&gt;
&amp;#43;&amp;#43;&amp;#43; Optional plugin (separate download) to export results to Team Foundation Server (TFS).&lt;br&gt;
&amp;#43; New (BETA) check for ASP.NET VIEWSTATE tampering vulnerability. (thanks to Bryan Sullivan for suggestions)&lt;br&gt;
&amp;#43; New (BETA) check for JavaServer Faces ViewState tampering vulnerability. (thanks to David Byrne for ideas)&lt;br&gt;
&amp;#43; New check for Silverlight EnableHtmlAccess.&lt;br&gt;
&amp;#43; Export results to HTML report.&lt;br&gt;
&amp;#43; If no origin domain is specified, each response domain will be treated as the origin, enabling better cross-domain analysis.&lt;br&gt;
&amp;#43; Added compliance mappings for Microsoft SDL.&lt;br&gt;
! Assorted bug fixes throughout check library.&lt;br&gt;
&lt;br&gt;
v1.2.2 - 2009-07-24&lt;br&gt;
&amp;#43; User-Agent now sends version information during update check for tracking purposes.&lt;br&gt;
&amp;#43; Added Windows 7 support to installer.&lt;br&gt;
! Fixed the configuration page so checking and unchecking immediately affect what checks are run on a request.&lt;br&gt;
! Checks that maintain URL caches weren&amp;#39;t clearing when the results list was cleared.&lt;br&gt;
* Changed the &amp;#39;Charset not UTF-&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
</description><author></author><pubDate>Wed, 09 Jan 2013 00:48:47 GMT</pubDate><guid isPermaLink="false">Released: Watcher v1.5.6 (Jan 08, 2013) 20130109124847A</guid></item><item><title>Source code checked in, #ff6a74da01f3</title><link>http://websecuritytool.codeplex.com/SourceControl/changeset/changes/ff6a74da01f3</link><description>Didn&amp;#39;t like the name of the new check, changing to misc.</description><author>chrisweber</author><pubDate>Wed, 09 Jan 2013 00:46:14 GMT</pubDate><guid isPermaLink="false">Source code checked in, #ff6a74da01f3 20130109124614A</guid></item><item><title>Updated Wiki: Checks</title><link>http://websecuritytool.codeplex.com/wikipage?title=Checks&amp;version=36</link><description>&lt;div class="wikidoc"&gt;Checks make up the most useful part of Watcher - they provide analysis of the HTTP traffic and reporting of security findings.  As someone running the tool you can enable, disable, and configure checks independently.  As a developer you can create custom and new checks for private use or to contribute to the public project.  &lt;br /&gt;&lt;br /&gt;Watcher currently &lt;b&gt;ships with 38 standard checks&lt;/b&gt;.  A check is defined as one set of logic usually stored in a single source code file.  Checks can look for multiple issues, so a single check can end up reporting several separate findings.&lt;br /&gt;&lt;br /&gt;The contents below are dividied by the categories in which different checks operate.  Within each category individual checks have been documented separately.&lt;br /&gt;
&lt;h2&gt;Contents&lt;/h2&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="#aspnet"&gt;ASP.NET checks&lt;/a&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="#asp-net-viewstate-tampering"&gt;Insecure VIEWSTATE tampering possibility&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#charset"&gt;Charset checks&lt;/a&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="#charset-not-utf8"&gt;Charset declaration was not UTF-8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#charset-mismatch"&gt;A Charset mismatch was identified&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#cookies"&gt;Cookie checks&lt;/a&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="#cookie-loosely-scoped-domain"&gt;Loosely scoped cookie was identified&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#cookie-not-setting-secure-flag"&gt;Cookie&amp;#39;s secure flag was not set&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#cookie-not-setting-httponly-flag"&gt;Cookie&amp;#39;s HttpOnly flag was not set&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#cross"&gt;Cross-Domain checks&lt;/a&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="#cross-domain-css"&gt;Cross-domain CSS resource&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#cross-domain-javascript"&gt;Cross-domain JavaScript src reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#reference-to-untrusted-javascript"&gt;Cross-domain JavaScript DOM reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#cross-domain-form"&gt;Cross-domain Form action&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#flash"&gt;Flash checks&lt;/a&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="#flash-javascript-access"&gt;Flash allows JavaScript access&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#flash-cross-domain-xml"&gt;Flash Crossdomain.xml file contains insecure domain references&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#header"&gt;HTTP Header checks&lt;/a&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="#http-cache-control-header-no-store"&gt;Cache-Control not set to &amp;#39;no-store&amp;#39;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#http-content-type-header-missing"&gt;Content-Type declaration missing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#internet-explorer-xss-filter-disabled"&gt;X-XSS-PROTECTION disables Internet Explorer protection&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#http-header-x-frame-options"&gt;X-XFRAMES-OPTIONS not set to prevent click-jacking&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#http-header-x-content-type-options"&gt;X-CONTENT-TYPE-OPTIONS not set to prevent MIME-type sniffing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#http-header-weak-authentication-protocols"&gt;Weak authentication&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#private-ip-address"&gt;Private IP address disclosure&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#info"&gt;Information Disclosure checks&lt;/a&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="#information-disclosure-in-error-messages"&gt;Information disclosure in error messages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#information-disclosure-in-database-error-messages"&gt;Information disclosure in database error messages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#information-disclosure-in-comments"&gt;Information disclosure in comments&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#information-disclosure-in-http-referrer"&gt;Information disclosure in HTTP referrer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#information-disclosure-in-url-parameter"&gt;Information disclosure in URL parameters&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#java"&gt;Java checks&lt;/a&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="#java-myfaces-viewstate"&gt;Java Server MyFaces vulnerable to VIEWSTATE tampering&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#javascript"&gt;Javascript checks&lt;/a&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="#javascript-eval"&gt;Use of javascript eval methods&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#javascript-domain-lowering"&gt;Use of javascript domain lowering techniques&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#misc"&gt;Miscellaneous checks&lt;/a&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="#body-grep"&gt;Custom-defined regex patterns&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#sharepoint"&gt;Sharepoint checks&lt;/a&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="#sharepoint-insecure-doclib"&gt;Sharepoint insecure document library&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#silverlight"&gt;Silverlight checks&lt;/a&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="#silverlight-client-access-policy"&gt;Silverlight clientaccesspolicy.xml&amp;#47;crossdomain.xml contains insecure domain references&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#silverlight-javascript-access"&gt;Silverlight settings allow javascript access&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ssl"&gt;SSL checks&lt;/a&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="#ssl-insecure-transition-from-http"&gt;Insecure transition from HTTP to HTTPS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ssl-insecure-transition-to-http"&gt;Insecure transition from HTTPS to HTTP&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ssl-certificate-validation"&gt;SSL certificates failed validation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ssl-v2-protocol"&gt;Legacy SSL v2 protocol was accepted by server&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#unicode"&gt;Unicode checks&lt;/a&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="#unicode-ill-formed-utf-8"&gt;Ill-formed UTF-8 byte sequence was identified&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#user"&gt;User-Controlled Input checks&lt;/a&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="#user-controlled-charset"&gt;A user-controlled charset declaration was identified&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#user-controlled-cookie"&gt;A potential cookie-poisoning vulnerability was found&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#user-controlled-html-attribute"&gt;A potential XSS vulnerability was found&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#user-javascript-event"&gt;A likely XSS vulnerability was found in a user-controlled page event&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#user-controlled-javascript-reference"&gt;A potential XSS vulnerability was found through a user-controlled javascript reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#user-controlled-redirect"&gt;A user-controlled open redirect was identified&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;br /&gt;&lt;br /&gt;&lt;a name="aspnet"&gt;&lt;/a&gt;
&lt;h2&gt;ASP.NET checks&lt;/h2&gt;Microsoft &lt;a href="http://asp.net"&gt;ASP.NET&lt;/a&gt; is a programming framework for building Web-applications.&lt;br /&gt;&lt;a name="asp-net-viewstate-tampering"&gt;&lt;/a&gt;&lt;br /&gt;1. &lt;b&gt;ASP.NET VIEWSTATE vulnerable to tampering&lt;/b&gt;&lt;br /&gt;Look for ASP.NET VIEWSTATE that has the MAC protection disabled.  When disabled, the VIEWSTATE is vulnerable to tampering and XSS attacks - see the &lt;a href="https://www.trustwave.com/spiderlabs/advisories/TWSL2010-001.txt"&gt;Trustwave advisory&lt;/a&gt; for details.  Watcher checks the VIEWSTATE bydeserializing it with the LosFormatter class, then reserializing it and comparing the length of the two results.  If the length&amp;#39;s are equal, then a cryptographic MAC was not configured to protect the VIEWSTATE.  If the length was different by 20 bytes (.NET 1.1 to .NET 3.5) or 32 bytes (.NET 4.0), then a MAC hash was protecting the VIEWSTATE.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;By tampering with the VIEWSTATE an attacker could perform reflected or persistent XSS attacks.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Secure VIEWSTATE with a MAC by setting EnableViewStateMac to true, which is on by default.  &lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://projects.webappsec.org/Cross-Site+Scripting"&gt;Web Application Security Consoritum &amp;quot;Cross-site-scripting&amp;quot;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-2088"&gt;Vulnerability Summary for CVE-2010-2088&lt;/a&gt;&lt;br /&gt;For code-level settings see &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.page.enableviewstatemac.aspx"&gt;MSDN &amp;quot;Page.EnableViewStateMac Property&amp;quot;&lt;/a&gt; &lt;br /&gt;For web.config options see &lt;a href="http://msdn.microsoft.com/en-us/library/950xf363.aspx"&gt;MSDN &amp;quot;pages Element (ASP.NET Settings Schema)&amp;quot;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="charset"&gt;&lt;/a&gt;
&lt;h2&gt;Charset checks&lt;/h2&gt;HTTP responses as well as HTML, XML, and other text-based content are encoded using specific character encodings, dubbed &amp;#39;charset&amp;#39; by W3 and other standards bodies.  The concept of charsets is to allow for text to be transmitted, stored, and displayed in native languages, extending far beyond US-ASCII.  Applications such as Web-browsers make decisions based on charset encodings, which are numerous and include legacy as well as modern Unicode encodings.  If you can remember only one thing from here, remember to force all Web-pages to emit UTF-8.&lt;br /&gt;&lt;a name="charset-not-utf8"&gt;&lt;/a&gt;&lt;br /&gt;1. &lt;b&gt;Charset not explicitly set to UTF-8 in HTML/XML content&lt;/b&gt;&lt;br /&gt; This check identifies HTTP headers, meta tags, and XML documents that don&amp;#39;t explicitly set a charset value to UTF-8.  UTF-8 is supported in all major Web browsers today, and from a security perspective it is the preferred charset for most Web-applications.  When a charset is not explicitly declared, Web browsers are forced into an undesirable content-sniffing mode to determine the content&amp;#39;s character set.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;An attacker could manipulate content on the page to be interpreted in an encoding of their choice.  For example, if an attacker can control content at the beginning of the page, they could inject script using UTF-7 encoded text and manipulate some browsers into interpreting that text.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Force UTF-8 for all text content, such as HTML and XML.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/browsersec/wiki/Part2#Character_set_handling_and_detection"&gt;Browser Security Handbook&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="charset-mismatch"&gt;&lt;/a&gt;&lt;br /&gt;2. &lt;b&gt;Detect charset mismatches between HTTP header and HTML/XML bodies&lt;/b&gt;&lt;br /&gt;  This check identifies responses where the HTTP Content-Type header declares a charset different from the charset defined by the body of the HTML or XML.  When there&amp;#39;s a charset mismatch between the HTTP header and content body Web browsers can be forced into an undesirable content-sniffing mode to determine the content&amp;#39;s correct character set.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;An attacker could manipulate content on the page to be interpreted in an encoding of their choice.  For example, if an attacker can control content at the beginning of the page, they could inject script using UTF-7 encoded text and manipulate some browsers into interpreting that text.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Force UTF-8 for all text content in both the HTTP header and meta tags or encoding declarations in XML.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/browsersec/wiki/Part2#Character_set_handling_and_detection"&gt;Browser Security Handbook&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="cookies"&gt;&lt;/a&gt;
&lt;h2&gt;Cookie checks&lt;/h2&gt;Note that cookie checks are configurable with inclusive and exclusive filters.  Because Watcher can&amp;#39;t distinguish between the important and unimportant cookies, you can configure an inclusive or exclusive list of cookie names to watch.&lt;br /&gt;&lt;br /&gt;&lt;a name="cookie-loosely-scoped-domain"&gt;&lt;/a&gt;&lt;br /&gt;1. &lt;b&gt;Look for cookies with loosely scoped domain restrictions&lt;/b&gt;&lt;br /&gt;Cookies can be scoped by domain or path.  This check is only concerned with domain scope.The domain scope applied to a cookie determines which domains can access it.  For example, a cookie can be scoped strictly to a subdomain e.g. www.nottrusted.com, or loosely scoped to a parent domain e.g. nottrusted.com.  In the latter case, any subdomain of nottrusted.com can access the cookieLoosely scoped cookies are common in mega-applications like google.com and live.com.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;Cookies set from a subdomain like app.foo.bar are transmitted only to that domain by the browser.  However, cookies scoped to a parent-level domain may be transmitted to the parent, or any subdomain of the parent.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Always scope cookies to a FQDN.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/browsersec/wiki/Part2#Same-origin_policy_for_cookies"&gt;Browser Security Handbook&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="cookie-not-setting-secure-flag"&gt;&lt;/a&gt;&lt;br /&gt;2. &lt;b&gt;Look for cookies without the secure flag set&lt;/b&gt;&lt;br /&gt;This check identifes cookies set over SSL which don&amp;#39;t set the &amp;#39;secure&amp;#39; flag.  When a cookie is set with the &amp;#39;secure&amp;#39; flag, it instructs the browser that the cookie can only be accessed over secure SSL channels.  This is an important security protection for session cookies and other sensitive cookies that should never leak or be passed over an unencrypted channel.&lt;br /&gt;Because Watcher can&amp;#39;t distinguish between the important and unimportant cookies, you can configure an inclusive or exclusive list of cookie names to watch.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;Consider a session cookie that gets set over secure SSL or TLS channels (e.g. https://foo.bar), but without a &amp;#39;secure&amp;#39; flag on the cookie.  An attacker with local network access could steal those cookies by directing the user to an unencrypted channel (e.g. http://foo.bar) and sniffing the HTTP request from the network.  In some cases, the cookies will be sent to unencrypted HTTP connections without any attacker intervention.  This is common when fetching javascript and other resource files.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Always set the &amp;#39;secure&amp;#39; flag for session cookies and other sensitive cookies that should never be sent over unencrypted channels.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/browsersec/wiki/Part2#Same-origin_policy_for_cookies"&gt;Browser Security Handbook&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="cookie-not-setting-httponly-flag"&gt;&lt;/a&gt;&lt;br /&gt;3. &lt;b&gt;Look for instances where the HTTPOnly flag is not set&lt;/b&gt;&lt;br /&gt;This check looks for cookies that don&amp;#39;t have the HTTPOnly flag set.  The HttpOnly flag was invented to reduce the affect of XSS vulnerabilities, by preventing them from reading user cookies.  When a cookie is set with the HTTPOnly flag, it instructs the browser that the cookie can only be accessed by the server.  In other words, client-side script is forbidden from accessing the cookie.  This is an important security protection for session cookies and other sensitive cookies, but less important for others.&lt;br /&gt;Because Watcher can&amp;#39;t distinguish between the important and unimportant cookies, you can configure an inclusive or exclusive list of cookie names to watch.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;Consider a session cookie that gets set without the &amp;#39;HttpOnly&amp;#39; flag.  An attacker finding an XSS vulnerability in the web-application could inject javascript and read a victim&amp;#39;s cookie, gaining access to their session or other sensitive information.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Always set the &amp;#39;HttpOnly&amp;#39; flag for session cookies and other sensitive cookies that should never be read by javascript.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/browsersec/wiki/Part2#Same-origin_policy_for_cookies"&gt;Browser Security Handbook&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="cross"&gt;&lt;/a&gt;
&lt;h2&gt;Cross-Domain checks&lt;/h2&gt;The term cross-domain refers to a domain other than the origin domain hosting the page.  For example, if you&amp;#39;re visiting a webpage at www.codeplex.com, then www.codeplex.com is the hosting domain, where www is the subdomain, and codeplex.com is the parent domain.  In that case, images.codeplex.com would be considered cross-domain, since it is not the origin domain.  Likewise, ads.google.com would be considered cross-domain.  Cross-domain sites can be filtered out in Watcher&amp;#39;s configuration - for example - if you wanted to ignore all references to any subdomain of codeplex.com and consider it part of the origin, then you could add *.codeplex.com as the origin domain.&lt;br /&gt;&lt;br /&gt;&lt;a name="cross-domain-css"&gt;&lt;/a&gt;&lt;br /&gt;1. &lt;b&gt;Check for cross-domain CSS source file references, akin to client-side mashups&lt;/b&gt;&lt;br /&gt;This check tries to identify cross-domain CSS stylesheet references in the page, e.g. import url(&amp;#39;nottrusted.com/foo.css&amp;#39;).  This can be an issue when untrusted CSS code gets introduced to the page, leading to XSS attacks, clickjacking attacks, and other exploits related to UI layout.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;An attacker who can control a stylesheet loaded into the DOM of a site, could inject XSS through directives such as Internet Explorer&amp;#39;s expression().  For example:  * { width:expression(alert(1)); }&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Ensure CSS files are loaded from only trusted sources, and the sources can&amp;#39;t be controlled by end users of the application.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/browsersec/wiki/Part1#Cascading_stylesheets"&gt;Browser Security Handbook&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="cross-domain-javascript"&gt;&lt;/a&gt;&lt;br /&gt;2. &lt;b&gt;Check for cross-domain javascript source file inclusion&lt;/b&gt;&lt;br /&gt;This check tries to identify cross-domain javascript src references in the page, e.g. &amp;lt;script src=&amp;#39;nottrusted.com&amp;#39;&amp;gt;.  This can be an issue when untrusted javascript code gets introduced to the page.&lt;br /&gt;&lt;br /&gt;Unfortunately, this is a typical pattern when third-party advertising and tracking code is used (e.g. Google Analytics or DoubleClick). &lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;An attacker who can control javascript loaded into the DOM of a site can perform any malicious actions they desire on the site&amp;#39;s visitors.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Ensure javascript source files are loaded from only trusted sources, and the sources can&amp;#39;t be controlled by end users of the application.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://projects.webappsec.org/Cross-Site+Scripting"&gt;Web Application Security Consoritum &amp;quot;Cross-site-scripting&amp;quot;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="reference-to-untrusted-javascript"&gt;&lt;/a&gt;&lt;br /&gt;3. &lt;b&gt;Check for references to untrusted domains in javascript source&lt;/b&gt;&lt;br /&gt;This check tries to identify javascript code that uses functions like createElement(tag) to programmatically add javascript src references to the DOM, and only reports when cross-domain javascript src references are made.  This would be an issue when untrusted javascript code get introduced to the page.&lt;br /&gt;&lt;br /&gt;Unfortunately, this is a typical pattern when third-party advertising and tracking code is used (e.g. Google Analytics or DoubleClick).  Since this check doesn&amp;#39;t implement a javascript interpreter we&amp;#39;re limited to regular expressions to find these potential issues.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;An attacker who can control references to javascript sources loaded into the DOM of a site can perform any malicious actions they desire on the site&amp;#39;s visitors.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Ensure javascript source files are loaded from only trusted sources, and the sources can&amp;#39;t be controlled by end users of the application.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://projects.webappsec.org/Cross-Site+Scripting"&gt;Web Application Security Consoritum &amp;quot;Cross-site-scripting&amp;quot;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="cross-domain-form"&gt;&lt;/a&gt;&lt;br /&gt;4. &lt;b&gt;Check for cross-domain form submissions&lt;/b&gt;&lt;br /&gt;Form-data sent to third-party sites may be considered a privacy violation.  This check identifies HTML forms that post data offsite to a domain other than the origin domain.  This would include subdomains if you didn&amp;#39;t specify a wildcard or a trusted domain in your configuration, e.g. *.nottrusted.com.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;Form-data sent to third-party sites may be an issue in and of itself.  Worse yet would be the case where an attacker could control the location for the form-data to post to.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Ensure forms only post data to trusted locations, and that all data transmitted meet appropriate privacy requirements.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="flash"&gt;&lt;/a&gt;
&lt;h2&gt;Flash checks&lt;/h2&gt;&lt;a name="flash-javascript-access"&gt;&lt;/a&gt;&lt;br /&gt;1. &lt;b&gt;Look for instantiations of the Flash player which don&amp;#39;t restrict javascript access&lt;/b&gt;&lt;br /&gt;The Flash object includes a parameter named AllowScriptAccess which can be set to allow a Flash SWF file to access the browser&amp;#39;s javascript DOM, even if the page embedding the SWF is different from the page hosting it.  This means the SWF could inject javascript, open windows, or perform other dangerous actions if the SWF was vulnerable to such manipulation.  Typical values are &amp;#39;sameDomain&amp;#39;, &amp;#39;always&amp;#39;, and &amp;#39;never&amp;#39;.  This check flags patterns which don&amp;#39;t set this value to &amp;#39;never&amp;#39;, which allows script access.  You may not be concerned when this value is set to &amp;#39;sameDomain&amp;#39; as that limits the scope of access somewhat, however this gets flagged as well.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;An attacker finds loads a vulnerable SWF file into their social networking blog (e.g. Spaces, Facebook, MySpace, etc.).  If the social network sets the flag for AllowScriptAccess to always, then the attacker can inject into the DOM of that application, affecting all users who visit their page.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Set AllowScriptAccess to &amp;#39;never&amp;#39;.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://kb2.adobe.com/cps/164/tn_16494.html"&gt;Adobe: Controlling access to scripts in a host web page&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="flash-cross-domain-xml"&gt;&lt;/a&gt;&lt;br /&gt;2. &lt;b&gt;Look for issues with Flash cross-domain policy file&lt;/b&gt;&lt;br /&gt;Flash objects can allow cross-domain access defined through a crossdomain.xml.  This can introduce security vulnerability when access is allowed from untrusted domains.  For example, if a wildcard &amp;#39;*&amp;#39; is set in the access list Flash will allow access from any domain.  The potential security issues around this are numerous, for more info check out: &lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;If an attacker can control code running in one of the cross-domain file&amp;#39;s trusted domains, either via XSS or other injection, they can control the Flash object across domains.  This vulnerability could be used to give the attacker access to cookies, cross-domain DOM information, and more.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Narrow the scope of a crossdomain.xml file to a small set of required hosts.  Never use wildcards &amp;#39;*&amp;#39; to denote allowed domains.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://jeremiahgrossman.blogspot.com/2008/05/crossdomainxml-invites-cross-site.html"&gt;Crossdomain.xml Invites Cross-site Mayhem&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html"&gt;Adobe: Cross-domain policy file specification&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="header"&gt;&lt;/a&gt;
&lt;h2&gt;HTTP Header checks&lt;/h2&gt;&lt;a name="http-cache-control-header-no-store"&gt;&lt;/a&gt;&lt;br /&gt;1. &lt;b&gt;Check that the cache-control HTTP header is set to &amp;#39;no-store&amp;#39;&lt;/b&gt;&lt;br /&gt;Even in secure SSL channels sensitive data could be stored by intermediary proxies and SSL terminators.  To direct such proxies from storing data, the &amp;#39;no-store&amp;#39; Cache-Control header  should be specified.  This check will flag all SSL responses which don&amp;#39;t set this value.&lt;br /&gt;&lt;br /&gt;False positives are likey with this as the check doesn&amp;#39;t have a good way to determine what&amp;#39;s truly sensitive data and what&amp;#39;s not. &lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;When a cache-control directive is not set on sensitive content, a browser or proxy can cache it locally to disk.  As an example, in a kiosk scenario, sensitive information could be stored locally when a user browses their online Web-based email, in which case the next person could easily retrieve the contents of their messages.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Set the cache-control directive to no-cache and no-store.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://palisade.plynt.com/issues/2008Jul/cache-control-attributes/"&gt;Cache Control Directives Demystified&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;a name="http-content-type-header-missing"&gt;&lt;/a&gt;&lt;br /&gt;2. &lt;b&gt;Check that a Content-Type header is included in the HTTP response&lt;/b&gt;&lt;br /&gt;This check flags HTTP responses which don&amp;#39;t set a Content-Type value.The HTTP Content-Type header lets a browser know what type of content to expect e.g. HTML, javascript, images, media, etc.  When a Content-Type value is not specified, the browser is forced to sniff the content to determine what it might be.  Forcing browsers into this state is undesirable as it can lead to exploitable conditions.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;An attacker finds a page that returns some user-controlled content (e.g. text or images) without setting the HTTP Content-Type header to the appropriate MIME value.  The attacker can manipulate the content to exploit this condition, but forcing the browser into a state of content-sniffing, in which case the attacker could execute code through XSS attacks.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Ensure each page is setting the specific and appropriate content-type value for the content being delivered.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/browsersec/wiki/Part2#Content_handling_mechanisms"&gt;Browser Security Handbook&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="internet-explorer-xss-filter-disabled"&gt;&lt;/a&gt;&lt;br /&gt;3. &lt;b&gt;Check that IE&amp;#39;s XSS protection filter is not being disabled by the Web-application&lt;/b&gt;&lt;br /&gt;This check is specific to Internet Explorer 8. It flags when an HTTP response sets the &amp;#39;X-XSS-Protection&amp;#39; header to a value of 0, which disables IE8&amp;#39;s XSS protection filter.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;An attacker finds a XSS vulnerability in a website, however it&amp;#39;s mitigated by visitors using Internet Explorer 8 because of it&amp;#39;s built-in XSS filter.  Later the attacker finds a page that disables IE&amp;#39;s filter, which they can now use to exploit visitors using IE.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;If IE&amp;#39;s XSS filter must be disabled for functional or other reasons, ensure that every page of the website is properly sanitizing user input and output, and well-protected against XSS vulnerability.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/ie/archive/2008/07/01/ie8-security-part-iv-the-xss-filter.aspx"&gt;XSS defenses in Internet Explorer&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="http-header-x-frame-options"&gt;&lt;/a&gt;&lt;br /&gt;4. &lt;b&gt;Check that the X-FRAME-OPTIONS header is being set for Clickjacking defense&lt;/b&gt;&lt;br /&gt;Including the X-FRAME-OPTIONS header in the server HTTP response instructs the browser to prevent the web page from being displayed in a subframe of the page.  That is, it&amp;#39;s a security measure similar to &amp;#39;framebusting&amp;#39; which prevents malicious websites from hosting your website in an iframe.  This check flags HTTP responses which don&amp;#39;t set this header.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;A malicious website wants to spoof your company&amp;#39;s website and capture user login credentials.  They craft a webpage that loads your website into an iframe, then they use style sheets to layover your site&amp;#39;s login form with their own malicious form.  When users land on the malicious website they could be fooled into logging in and compromising their account credentials.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Most modern Web browsers support the X-FRAME-OPTIONS HTTP header, ensure it&amp;#39;s set on all web pages returned by your site.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/ie/archive/2009/01/27/ie8-security-part-vii-clickjacking-defenses.aspx"&gt;Clickjacking defenses in Internet Explorer&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="http-header-x-content-type-options"&gt;&lt;/a&gt;&lt;br /&gt;5. &lt;b&gt;Checks that the X-CONTENT-TYPE-OPTIONS defense against MIME-sniffing has been declared&lt;/b&gt;&lt;br /&gt;This check is specific to Internet Explorer 8 and Google Chrome.  It flags HTTP responses which don&amp;#39;t set the X-CONTENT-TYPE-OPTIONS header in responses. This &amp;#39;nosniff&amp;#39; HTTP header is used by certain browsers such as IE8 and Chrome to reduce the potential for vulnerability that can occur when an attacker can trigger and manipulate a browser&amp;#39;s MIME-sniffing behavior. &lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;An attacker finds a page that returns some user-controlled content (e.g. text or images) without setting the HTTP Content-Type header to the appropriate MIME value.  The attacker can manipulate the content to exploit this condition, but forcing the browser into a state of content-sniffing, in which case the attacker could execute code through XSS attacks.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Ensure each page sets a Content-Type header and the X-CONTENT-TYPE-OPTIONS if the Content-Type header is unknown.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/browsersec/wiki/Part2#Content_handling_mechanisms"&gt;Browser Security Handbook&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/ie/archive/2008/07/02/ie8-security-part-v-comprehensive-protection.aspx"&gt;MSDN IE Blog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="http-header-weak-authentication-protocols"&gt;&lt;/a&gt;&lt;br /&gt;6. &lt;b&gt;Look for weak authentication protocols&lt;/b&gt;&lt;br /&gt;This check flags HTTP responses which request a weak authentication protocol such as Basic or Digest.You will need to determine whether this would be considered a vulnerability in your organization.  Typically usage of these protocols are frowned upon but can be protected from snooping by using SSL channels.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;An attacker could snoop on the credentials of a user logging into a site using Basic authentication without SSL enabled.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Ensure SSL is being forced for basic and digest &lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/browsersec/wiki/Part3#HTTP_authentication"&gt;Browser Security Handbook&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="private-ip-address"&gt;&lt;/a&gt;&lt;br /&gt;7. &lt;b&gt;Look for private IP address disclosure&lt;/b&gt;&lt;br /&gt;This check applies a regular expression to all HTTP headers to identify non-routable private IP addresses as defined in RFC 1918.  &lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;Disclosure of internal, or private, IP addresses provides network information useful to an attacker.  It may be possible to abuse load balancers, proxies, or even Web servers when internal IP addresses are known.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Ensure private IP addresses are not revealed.  Each server or load balancer may have a different configuration to control this.  For example, Microsoft IIS provides some settings that will ensure the hostname is always returned instead of the internal IP address, when a request does not include a host header.  See &lt;a href="http://support.microsoft.com/kb/834141"&gt;http://support.microsoft.com/kb/834141&lt;/a&gt;.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://websecuritytool.codeplex.com/wikipage?title=http%3a%2f%2ftools.ietf.org%2fhtml%2frfc1918&amp;referringTitle=Checks"&gt;RFC 1918&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="info"&gt;&lt;/a&gt;
&lt;h2&gt;Information Disclosure checks&lt;/h2&gt;&lt;a name="information-disclosure-in-error-messages"&gt;&lt;/a&gt;&lt;br /&gt;1. &lt;b&gt;Check for common debugging error messages&lt;/b&gt;&lt;br /&gt;This check will search HTML content, including comments, for common error messages returned by platforms such as ASP.NET, and Web-servers such as IIS and Apache.  You can configure the list of common debug messages.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;An attacker finds path information through a stack trace returned in an error page.  Using the path, the attacker is able to access sensitive files and/or functionality.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Disable debugging messages before pushing to production.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://projects.webappsec.org/Information-Leakage"&gt;Web Application Security Consoritum &amp;quot;Information Leakage&amp;quot;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.owasp.org/index.php/ASVS"&gt;OWAS ASVS &amp;quot;ASVL 1 and 2&amp;quot;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="information-disclosure-in-database-error-messages"&gt;&lt;/a&gt;&lt;br /&gt;2. &lt;b&gt;Check for common error messages returned by databases (may indicate SQL injection)&lt;/b&gt;&lt;br /&gt;This check will review HTML content, including comments, for common error messages returned by database providers such as MSSQL, MySQL, and Oracle.  If found, this may indicate SQL injection potential, which will need to be tested separately. You can configure the list of common error messages.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;An attacker finds SQL query information through a stack trace returned in an error page.  Using this information, the attacker is able to craft a query and bypass security checks.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Disable debugging messages before pushing to production.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://projects.webappsec.org/Information-Leakage"&gt;Web Application Security Consoritum &amp;quot;Information Leakage&amp;quot;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.owasp.org/index.php/ASVS"&gt;OWAS ASVS &amp;quot;ASVL 1 and 2&amp;quot;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="information-disclosure-in-comments"&gt;&lt;/a&gt;&lt;br /&gt;3. &lt;b&gt;Check for dubious comments&lt;/b&gt;&lt;br /&gt;This check looks for common patterns in HTML and javascript comments that may be useful to inspect in a security review or audit.  This performs a pattern match looking for a list of words like BUG, TODO, and profanity.  You can configure the list of words to search.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;An attacker finds comments in the HTML and/or javascript of an application.  The comments reveal information about bugs the application hasn&amp;#39;t been able to fix, enabling the attacker to use the bugs to their advantage.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Scrub all comments before pushing to production.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://projects.webappsec.org/Information-Leakage"&gt;Web Application Security Consoritum &amp;quot;Information Leakage&amp;quot;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="information-disclosure-in-http-referrer"&gt;&lt;/a&gt;&lt;br /&gt;4. &lt;b&gt;Look for sensitive information passed through HTTP request referrer headers&lt;/b&gt;&lt;br /&gt;This check looks for string patterns to identify sensitive information leaked in the HTTP Referrer headers.  This can violate PCI and most organizational compliance policies.  You can configure the list of strings for this check to add or remove values specific to your environment.  In addition this check will look for credit card numbers, SSN&amp;#39;s, and email addresses.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;An attacker is able to embed a link in your application which directs to their own website.  As the referrer information is passed to the attacker&amp;#39;s website, they can collect all information from the referring URL.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Do not pass sensitive information in URI&amp;#39;s.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec15.html#sec15.1.3"&gt;Hypertext Transfer Protocol -- HTTP/1.1 &amp;quot;Security Considerations&amp;quot;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="information-disclosure-in-url-parameter"&gt;&lt;/a&gt;&lt;br /&gt;5. &lt;b&gt;Look for sensitive information passed through URL parameter&lt;/b&gt;&lt;br /&gt;This check looks for string patterns to identify sensitive information leaked in the URL.  This can violate PCI and most organizational compliance policies.  You can configure the list of strings for this check to add or remove values specific to your environment.  In addition this check will find credit card numbers, SSN&amp;#39;s, and email addresses.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;Sensitive information passed in the URL gets logged to an intervening proxy cache, where it gets recorded to disk and is subject to eavesdropping.  The same URL&amp;#39;s can also be recorded in the Web browser&amp;#39;s history.  In a kiosk or shared computer scenario this could be a real danger.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Do not pass sensitive information in URI&amp;#39;s.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec15.html#sec15.1.3"&gt;Hypertext Transfer Protocol -- HTTP/1.1 &amp;quot;Security Considerations&amp;quot;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="java"&gt;&lt;/a&gt;
&lt;h2&gt;Java checks&lt;/h2&gt;
&lt;a name="java-myfaces-viewstate"&gt;&lt;/a&gt;&lt;br /&gt;1. &lt;b&gt;JavaServer Faces - identify when ViewState data is insecure.&lt;/b&gt;&lt;br /&gt;This check looks at JavaServer Faces values implemented in Apache MyFaces and Sun&amp;#39;s Mojarra project, to detect when cryptographic protection has been disabled. If disabled, it&amp;#39;s possible for attackers to tamper with the ViewState and create XSS attacks. &lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;By tampering with the VIEWSTATE an attacker could perform reflected or persistent XSS attacks.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Secure VIEWSTATE with a MAC specific to your environment.  &lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://projects.webappsec.org/Cross-Site+Scripting"&gt;Web Application Security Consoritum &amp;quot;Cross-site-scripting&amp;quot;&lt;/a&gt;&lt;br /&gt;&lt;a href="https://www.trustwave.com/spiderlabs/advisories/TWSL2010-001.txt"&gt;Trustwave advisory&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="javascript"&gt;&lt;/a&gt;
&lt;h2&gt;Javascript checks&lt;/h2&gt;
&lt;a name="javascript-eval"&gt;&lt;/a&gt;&lt;br /&gt;1. &lt;b&gt;Examine javascript code for use of dangerous eval() methods&lt;/b&gt;&lt;br /&gt;This check identifies the use of eval(), setTimeout(), and setInterval() in javascript code.  These functions evaluate a string and execute it as javascript code.  When they&amp;#39;re passed attacker-controlled values, cross-site scripting and other attacks could be possible.  These findings should be reviewed by a security analyst for exploitability.  Their use may also violate your organizational policy.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;An eval statement in the web-application takes user-input from a JSON response.  An attacker can easily control the string passed to eval(string) to perform an XSS attack.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Never pass un-sanitized user-input to eval() statements.  Replace eval() statements with safe&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://projects.webappsec.org/Cross-Site+Scripting"&gt;Web Application Security Consoritum &amp;quot;Cross-site-scripting&amp;quot;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="javascript-domain-lowering"&gt;&lt;/a&gt;&lt;br /&gt;2. &lt;b&gt;Examine javascript code for domain lowering tactics&lt;/b&gt;&lt;br /&gt;Domain lowering is a method commonly used for sharing functionality across subdomains of a site. For example, when sub.foo.bar wants to access data or functions in sub2.foo.bar, it can &amp;#39;lower&amp;#39; the document.domain property to foo.bar in javascript. This will create a cross-domain scenario where all subdomains of foo.bar can communicate freely.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Avoid domain lowering.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/dthorpe/archive/2007/09/27/cross-domain-communication-using-domain-lowering.aspx"&gt;MSDN CROSS-DOMAIN COMMUNICATION USING DOMAIN LOWERING&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="misc"&gt;&lt;/a&gt;
&lt;h2&gt;Miscellaneous checks&lt;/h2&gt;Checks that don&amp;#39;t have a clear home go here.&lt;br /&gt;&lt;a name="body-grep"&gt;&lt;/a&gt;&lt;br /&gt;1. &lt;b&gt;Custom-defined regex patterns&lt;/b&gt;&lt;br /&gt;This check allows you to define a regex pattern that you want to match against HTTP responses.  You can search for things like URLs or any other information that may be relevant to you.  For example:&lt;br /&gt;&lt;br /&gt;\b(https?|ftp|file)://&lt;a href="http://websecuritytool.codeplex.com/wikipage?title=%21%3a%2c.%3b&amp;referringTitle=Checks"&gt;-A-Z0-9&amp;#43;&amp;#38;&amp;#64;&amp;#35;&amp;#47;&amp;#37;&amp;#63;&amp;#61;&amp;#126;_&lt;/a&gt;*[-A-Z0-9+&amp;amp;@#/%=~_|]&lt;br /&gt;&lt;br /&gt;This regex pattern will match all http, https, ftp, and file URLs found in the HTTP response.&lt;br /&gt;&lt;br /&gt;&lt;a name="sharepoint"&gt;&lt;/a&gt;
&lt;h2&gt;Sharepoint checks&lt;/h2&gt;&lt;a name="sharepoint-insecure-doclib"&gt;&lt;/a&gt;&lt;br /&gt;1. &lt;b&gt;Look for dangerous HTML content hosted in the Shared Document Library&lt;/b&gt;&lt;br /&gt;This check flags SharePoint document libraries which return HTML content without setting the Content-Disposition HTTP header.  Setting this header tells the Web browser to download the content rather than to parse and display it.  Without setting this header, users could upload malicious HTML content that would load and execute in a visitor&amp;#39;s browser.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;An attacker hosts an HTML page in the Sharepoint doclib.  When a user loads that file it will get rendered in the browser as HTML from the site.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;You need to force the Content-Disposition HTTP header on doclibs to force downloads, otherwise a .html file will get rendered in the browser as HTML from the site.  &lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/260519"&gt;How To Raise a &amp;quot;File Download&amp;quot; Dialog Box for a Known MIME Type&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="silverlight"&gt;&lt;/a&gt;
&lt;h2&gt;Silverlight checks&lt;/h2&gt;&lt;a name="silverlight-client-access-policy"&gt;&lt;/a&gt;&lt;br /&gt;1. &lt;b&gt;Search for insecure domain references in Silverlight client access policy&lt;/b&gt;&lt;br /&gt;Silverlight assemblies can allow cross-domain access defined through a clientaccesspolicy.xml or crossdomain.xml.  This can introduce security vulnerability when access is allowed to and from untrusted domains.  For example, if a wildcard &amp;#39;*&amp;#39; is set in the access list Silverlight assemblies may introduce Cross-Site Request Forgery or other issues.  The potential security issues around this are numerous depending on the functionality of the application, for more info check out the Silverlight security white paper referenced.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Narrow the scope of a crossdomain.xml file to a small set of required hosts.  Never use wildcards &amp;#39;*&amp;#39; to denote allowed domains.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=7cef15a8-8ae6-48eb-9621-ee35c2547773&amp;amp;displaylang=en"&gt;Security Guidance for Writing and Deploying Silverlight Applications&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/nickkramer/archive/2009/11/20/silverlight-4-security-overview-white-paper.aspx"&gt;Silverlight 4 security overview whitepaper&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="silverlight-javascript-access"&gt;&lt;/a&gt;&lt;br /&gt;2. &lt;b&gt;Look for instantiations of Silverlight Player which don&amp;#39;t restrict javascript access.&lt;/b&gt;&lt;br /&gt;The Silverlight object includes a parameter named EnableHtmlAccess which can be used to scope how javascript can access the Silverlight code.  Values can be either true or false.This check flags patterns which don&amp;#39;t set this value to &amp;#39;false&amp;#39;, which allows script access.  &lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=7cef15a8-8ae6-48eb-9621-ee35c2547773&amp;amp;displaylang=en"&gt;Security Guidance for Writing and Deploying Silverlight Applications&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/nickkramer/archive/2009/11/20/silverlight-4-security-overview-white-paper.aspx"&gt;Silverlight 4 security overview whitepaper&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc838264(VS.95).aspx"&gt;MSDN Silverlight Security&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="ssl"&gt;&lt;/a&gt;
&lt;h2&gt;SSL checks&lt;/h2&gt;&lt;a name="ssl-insecure-transition-from-http"&gt;&lt;/a&gt;&lt;br /&gt;1. &lt;b&gt;Look for insecure transition from HTTP to HTTPS during form post&lt;/b&gt;&lt;br /&gt;This check looks for insecure HTTP pages that host HTTPS forms.  The issue is that an insecure HTTP page can easily be hijacked through MITM and the secure HTTPS form can be replaced or spoofed.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;Because an HTTP page is sent over unsecured channels, an attacker could modify HTML content via man-in-the-middle attack, and change the form post action to point to a malicious website.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Use HTTPS for landing pages that host secure forms.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="ssl-insecure-transition-to-http"&gt;&lt;/a&gt;&lt;br /&gt;2. &lt;b&gt;Look for insecure transition from HTTPS to HTTP during form post&lt;/b&gt;&lt;br /&gt;This check identifies secure HTTPS pages that host insecure HTTP forms.  The issue is that a secure page is transitioning to an insecure page when data is uploaded through a form. The user may think they&amp;#39;re submitting data to a secure page when in fact they are not.  &lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;When data is sent to in the clear, it&amp;#39;s subject to snooping and tampering.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Ensure sensitive data is only sent over secured HTTPS channels.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="ssl-certificate-validation"&gt;&lt;/a&gt;&lt;br /&gt;3. &lt;b&gt;Check SSL certificate validation&lt;/b&gt;&lt;br /&gt;This check validates SSL certificates and reports a finding when validation errors such as host name mis-match and expiration are found.  If configured, this check will also attempt to walk the certificate chain and perform CRL revocation checking.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;SSL certificates provide a way to verify the authenticity of the server in some regards, such as the hostname and expiration date of the cert.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Websites should use SSL certificates that match their selected hostnames, and should be re-provisioned prior to expiration.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="ssl-v2-protocol"&gt;&lt;/a&gt;&lt;br /&gt;4. &lt;b&gt;SSLv2 protocol check&lt;/b&gt;&lt;br /&gt;When an SSL connection is initiated, this check attempts to connect to the server using the insecure SSL v2 protocol.  If the server allows this, a finding is reported. Most servers today should support SSL v3 and disallow the legacy versions of SSL.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;SSLv2 is vulnerable to a number of security issues, making it undesirable in production use.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Ensure that SSL version 3.0 or TLS are being forced, and SSL v2 is prohibited on the server-side application.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Transport_Layer_Security"&gt;Wikipedia&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="unicode"&gt;&lt;/a&gt;
&lt;h2&gt;Unicode checks&lt;/h2&gt;&lt;a name="unicode-ill-formed-utf-8"&gt;&lt;/a&gt;&lt;br /&gt;1. &lt;b&gt;Identify ill-formed Unicode UTF-8 content, and null bytes in HTML&lt;/b&gt;&lt;br /&gt;This check reviews the byte stream of an UTF-8 encoded HTML page, and identifies ill-formed byte sequences as well as null bytes.  When a web-app emits illegal UTF-8 byte sequences, then something more detrimental could be happening deeper in the server-side code. &lt;br /&gt;&lt;br /&gt;The types of ill-formed byte sequences detected include:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Valid lead byte, followed by one or more invalid trailing bytes&lt;/li&gt;
&lt;li&gt;Non-shortest form (overlong) UTF-8&lt;/li&gt;
&lt;li&gt;Invalid lead byte&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;By injecting illegal UTF-8 byte sequences, an attacker may be able to bypass security filters or other boundaries.  Worse still they may be able to perform remote code execution attacks on the server through buffer or integer overflows.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;If an alert is returned from this check, have a developer investigate the string handling on the server-side to identify how the string is being handled.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.lookout.net/2009/03/25/detecting-ill-formed-utf-8-byte-sequences-in-html-content/"&gt;http://www.lookout.net/2009/03/25/detecting-ill-formed-utf-8-byte-sequences-in-html-content/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="user"&gt;&lt;/a&gt;
&lt;h2&gt;User-Controlled Input checks&lt;/h2&gt;&lt;a name="user-controlled-charset"&gt;&lt;/a&gt;&lt;br /&gt;1. &lt;b&gt;Charset values&lt;/b&gt;&lt;br /&gt;This check looks at user-supplied input in query string parameters and POST data to identify where Content-Type or meta tag charset declarations might be user-controlled.  Such charset declarations should always be declared by the application.  If an attacker can control the response charset, they could manipulate the HTML to perform XSS or other attacks.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;An attacker controlling the &amp;lt;meta&amp;gt; element charset value is able to declare UTF-7 and is also able to include enough user-controlled payload early in the HTML document to have it interpreted as UTF-7. By encoding their payload with UTF-7 the attacker is able to bypass any server-side XSS protections and embed script in the page.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Force UTF-8 in all charset declarations.  If user-input is required to decide a charset declaration, ensure that only an allowed list is used.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="user-controlled-cookie"&gt;&lt;/a&gt;&lt;br /&gt;2. &lt;b&gt;Cookie poisoning&lt;/b&gt;&lt;br /&gt;This check looks at user-supplied input in query string parameters and POST data to identify where cookie parameters might be controlled.  This is called a cookie poisoning attack, and becomes exploitable when an attacker can manipulate the cookie in nafarious ways.  In some cases this will not be exploitable, however, allowing URL parameters to set cookie values is generally considered a bug.&lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Do not allow user input to control cookie names and values. If some query string parameters must be set in cookie values, be sure to filter out semicolon&amp;#39;s that can serve as name/value pair delimiters.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="user-controlled-html-attribute"&gt;&lt;/a&gt;&lt;br /&gt;3. &lt;b&gt;HTML element attributes (potential XSS)&lt;/b&gt;&lt;br /&gt;This check looks at user-supplied input in query string parameters and POST data to identify where certain HTML attribute values might be controlled.  This provides hot-spot detection for XSS (cross-site scripting) that will require further review by a security analyst to determine exploitability.  &lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;An attacker could control an html href attribute to inject script using syntax like javascript:alert(1);&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Validate all input and sanitize output it before writing to any HTML attributes.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://projects.webappsec.org/Cross-Site+Scripting"&gt;Web Application Security Consoritum &amp;quot;Cross-site-scripting&amp;quot;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="user-javascript-event"&gt;&lt;/a&gt;&lt;br /&gt;4. &lt;b&gt;Javascript events (likely XSS)&lt;/b&gt;&lt;br /&gt;This check looks at user-supplied input in query string parameters and POST data to identify where certain javascript events (e.g. onclick) might be controlled.  This provides hot-spot detection for XSS (cross-site scripting) that will require further review by a security analyst to determine exploitability.  &lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;An attacker who can control the string passed to a javascript on* event can likely execute script in the DOM of the page.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Validate all input and sanitize it before writing to any on* events.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://projects.webappsec.org/Cross-Site+Scripting"&gt;Web Application Security Consoritum &amp;quot;Cross-site-scripting&amp;quot;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="user-controlled-javascript-reference"&gt;&lt;/a&gt;&lt;br /&gt;5. &lt;b&gt;Javascript references (potential XSS)&lt;/b&gt;&lt;br /&gt;This check looks at user-supplied input in query string parameters and POST data to identify where URL&amp;#39;s in certain javascript properties (e.g. createElement src) might becontrolled.  This provides hot-spot detection for XSS (cross-site scripting) that will require further review by a security analyst to determine exploitability.  &lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;An attacker who can control the reference location to a javascript source file can load script of their choice into an application.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Do not allow user-input to control javascript source location references.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="user-controlled-redirect"&gt;&lt;/a&gt;&lt;br /&gt;6. &lt;b&gt;Open redirect&lt;/b&gt;&lt;br /&gt;Open redirects are one of the OWASP 2010 Top Ten vulnerabilities.  This check looks at user-supplied input in query string parameters and POST data to identify where open redirects might be possible.  Open redirects occur when an application allows user-supplied input (e.g. http://nottrusted.com) to control an offsite redirect.  This is generally a pretty accurate way to find where 301 or 302 redirects could be exploited by spammers or phishing attacks. &lt;br /&gt;&lt;b&gt;Exploit scenario&lt;/b&gt;&lt;br /&gt;An attacker finds an open redirect on a site that looks like http://www.foo.bar?redirect=http://www.nottrusted.com.  They leverage this to craft a mass phishing attack and coerce users to clicking the link and downloading malware.  Because the malicious link is often out of view and loaded from a trusted domain, naive end users will not suspect any foul play.&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;Implement safe redirect functionality that only redirects to relative URI&amp;#39;s, or a list of trusted domains.&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.owasp.org/index.php/Open_redirect"&gt;OWASP top ten&lt;/a&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>chrisweber</author><pubDate>Wed, 09 Jan 2013 00:41:43 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Checks 20130109124143A</guid></item><item><title>Updated Release: Watcher v1.5.5 (Jan 08, 2013)</title><link>http://websecuritytool.codeplex.com/releases/view/22212</link><description>&lt;div class="wikidoc"&gt;Watcher.zip contains the two DLL&amp;#39;s for manual installation of the plugin - drop them in your Fiddler2\Scripts user or program files folder.&lt;br /&gt;WatcherSetup.exe is an installer built with NSIS that will copy the two DLL&amp;#39;s into either your Fiddler2\Scripts user or program files folder.&lt;br /&gt;WatcherTFS.zip contains the Team Foundation Server (TFS) component which Watcher uses to export results to TFS.  Installation and further instructions are included in the ZIP file.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://websecuritytool.codeplex.com/wikipage?title=CHANGELOG"&gt;CHANGELOG&lt;/a&gt;&lt;br /&gt;Program   Watcher Passive Web Security Tool for Fiddler &lt;br /&gt;Version   1.5.5&lt;br /&gt;Release   08-January-2013&lt;br /&gt;License   Custom Open Source&lt;br /&gt;Authors   Chris Weber&lt;br /&gt;Testers   Chris Weber&lt;br /&gt;Contact   chris@casaba.com&lt;br /&gt;Website   http://websecuritytool.codeplex.com/&lt;br /&gt;Company   http://www.casaba.com/&lt;br /&gt;Copyright (c) 2010 - 2013 Casaba Security, LLC.  All Rights Reserved.&lt;br /&gt;&lt;br /&gt;{&amp;quot;  &lt;br /&gt; +++ major new feature &lt;br /&gt;      + minor new feature&lt;br /&gt;       * changed feature&lt;br /&gt;      % improved performance or quality &lt;br /&gt;       ! fixed minor bug&lt;br /&gt;     !!! fixed major bug&lt;br /&gt;&lt;br /&gt;v1.5.5 2013-01-08&lt;br /&gt;   + New check allows for custom-defined regex patterns&lt;br /&gt;   % Minor bugfixes &lt;br /&gt;&lt;br /&gt;v1.5.4 2011-10-01&lt;br /&gt;    + New check for internal IP address disclosure&lt;br /&gt;    % Watcher now defaults to automatically checking for updates at start&lt;br /&gt;&lt;br /&gt;v1.5.3 2011-07-31&lt;br /&gt;    ! Bug fixes&lt;br /&gt;   % X-Frame-Options check now checks every page, unique to path, ignoring query.&lt;br /&gt;&lt;br /&gt;v1.5.2 2011-05-21&lt;br /&gt;   + New check for HTTP Strict-Transport-Security header on SSL sites&lt;br /&gt;   + Added free-form text filter to Results display&lt;br /&gt;&lt;br /&gt;v1.5.1 - 2011-02-21&lt;br /&gt;   % Moving checks to Majestic12 HtmlParser to overcome some bottlenecks.&lt;br /&gt;   % Deprecating some Utility.cs functions.&lt;br /&gt;   ! Fixing various minor bugs.&lt;br /&gt;&lt;br /&gt;v1.5.0 - 2010-11-17&lt;br /&gt;+++ Added a button to process sessions offline. Now a user can load a .SAZ (session archive) file and process the data offline in Fiddler/Watcher.&lt;br /&gt;   % Fixed the ProgressDialog control to move incrementally.&lt;br /&gt;&lt;br /&gt;v1.4.1 - 2010-11-09&lt;br /&gt;   * Exporting results now includes all results rather than just those selected.&lt;br /&gt;   * XML report now includes metadata about Watcher version and configuration.&lt;br /&gt;   % Check for &amp;#39;Charset not UTF-8&amp;#39; improvements.&lt;br /&gt;&lt;br /&gt;v1.4.0 - 2010-04-24   &lt;br /&gt;   Attempts have been made at noise-reduction, see below.&lt;br /&gt;   Wiki has been updated with more check descriptions, all linked to from inside Watcher.&lt;br /&gt; +++ Check descriptions all improved and updated with recommendations and external references.&lt;br /&gt;   + New check for javascript document.domain lowering.&lt;br /&gt;   * IMPORTANT: All cookie checks now perform noise filtering by default, with no option to change.&lt;br /&gt;   * New installations now come with a few noisy checks disabled by default.&lt;br /&gt;   * New installations now come with some check configs enabled by default to reduce noise.&lt;br /&gt;   ! Fixed bug in loosely scoped domain where it wasn&amp;#39;t defaulting to origin when one&amp;#39;s not specified.&lt;br /&gt;   ! Fixed bug where check configurations weren&amp;#39;t saving.&lt;br /&gt;   ! Assorted bug fixes.&lt;br /&gt;&lt;br /&gt;v1.3.0 - 2010-02-25&lt;br /&gt;  +++ .NET Framework 3.5 is now required.&lt;br /&gt;  +++ Optional plugin (separate download) to export results to Team Foundation Server (TFS).&lt;br /&gt;    + New (BETA) check for ASP.NET VIEWSTATE tampering vulnerability. (thanks to Bryan Sullivan for suggestions)&lt;br /&gt;    + New (BETA) check for JavaServer Faces ViewState tampering vulnerability. (thanks to David Byrne for ideas)&lt;br /&gt;    + New check for Silverlight EnableHtmlAccess.&lt;br /&gt;    + Export results to HTML report.&lt;br /&gt;    + If no origin domain is specified, each response domain will be treated as the origin, enabling better cross-domain analysis.&lt;br /&gt;    + Added compliance mappings for Microsoft SDL.&lt;br /&gt;    ! Assorted bug fixes throughout check library.&lt;br /&gt;&lt;br /&gt;v1.2.2 - 2009-07-24&lt;br /&gt;    + User-Agent now sends version information during update check for tracking purposes.&lt;br /&gt;    + Added Windows 7 support to installer.&lt;br /&gt;    ! Fixed the configuration page so checking and unchecking immediately affect what checks are run on a request.&lt;br /&gt;    ! Checks that maintain URL caches weren&amp;#39;t clearing when the results list was cleared.&lt;br /&gt;    * Changed the &amp;#39;Charset not UTF-&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>chrisweber</author><pubDate>Wed, 09 Jan 2013 00:21:32 GMT</pubDate><guid isPermaLink="false">Updated Release: Watcher v1.5.5 (Jan 08, 2013) 20130109122132A</guid></item><item><title>Source code checked in, #19c782f553d0</title><link>http://websecuritytool.codeplex.com/SourceControl/changeset/changes/19c782f553d0</link><description>Adding a new check to allow for custom-defined regex pattern matching.&amp;#10;Minor bugfixes.</description><author>chrisweber</author><pubDate>Wed, 09 Jan 2013 00:15:51 GMT</pubDate><guid isPermaLink="false">Source code checked in, #19c782f553d0 20130109121551A</guid></item><item><title>Source code checked in, #57e5521d170c</title><link>http://websecuritytool.codeplex.com/SourceControl/changeset/changes/57e5521d170c</link><description>Adding recognition of JSON content type.</description><author>chrisweber</author><pubDate>Tue, 08 Jan 2013 22:45:47 GMT</pubDate><guid isPermaLink="false">Source code checked in, #57e5521d170c 20130108104547P</guid></item><item><title>Source code checked in, #1505ffd0c7c3</title><link>http://websecuritytool.codeplex.com/SourceControl/changeset/changes/1505ffd0c7c3</link><description>Fixing intro comment to reflect the check&amp;#39;s purpose.</description><author>chrisweber</author><pubDate>Tue, 08 Jan 2013 20:06:15 GMT</pubDate><guid isPermaLink="false">Source code checked in, #1505ffd0c7c3 20130108080615P</guid></item><item><title>New Post: Watcher HTML Report</title><link>http://websecuritytool.codeplex.com/discussions/402245</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;I agree, the HTML report looks like crap, but I don't have the time to work on it presently.&amp;nbsp; As an alternative I suggest using the XML report, and applying your own XSLT stylesheet to it.&amp;nbsp; That would give your report a custom look that you could control.&amp;nbsp; Thanks for bringing this issue up, if anyone wants to contribute to improve the HTML reporting I'd be happy to review their submission!&lt;/p&gt;&lt;/div&gt;</description><author>chrisweber</author><pubDate>Wed, 07 Nov 2012 17:57:30 GMT</pubDate><guid isPermaLink="false">New Post: Watcher HTML Report 20121107055730P</guid></item><item><title>New Post: Watcher HTML Report</title><link>http://websecuritytool.codeplex.com/discussions/402245</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I wanted to check, if there are any plans for improving the HTML report that Watcher generates?&lt;/p&gt;
&lt;p&gt;Even though the HTML report does have all the relevant data, it is not presentable. For example, if I have to emphasize a program manager who doesn't have any knowledge in security about the bugs, having a HTML report with metrics (no. of high severity bugs,
 low severity bugs), along with the other details about be helpful. Sometimes, I do a print-screen of Results Tab or I prepare the report manually.&lt;/p&gt;
&lt;p&gt;regards,&lt;/p&gt;
&lt;p&gt;-Mohammed Abubakr&lt;/p&gt;
&lt;/div&gt;</description><author>mohammedabubakr</author><pubDate>Wed, 07 Nov 2012 13:07:53 GMT</pubDate><guid isPermaLink="false">New Post: Watcher HTML Report 20121107010753P</guid></item><item><title>Updated Wiki: Home</title><link>http://websecuritytool.codeplex.com/wikipage?version=92</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Why use the Watcher passive Web-security scanner?&lt;/h2&gt;by &lt;a href="http://www.casaba.com/"&gt;Casaba Security&lt;/a&gt;, contact us through &lt;a href="https://www.codeplex.com/site/login?RedirectUrl=http%3a%2f%2fwww.codeplex.com%2fsite%2fusers%2fcontact%2fchrisweber%3fOriginalUrl%3dhttp%3a%2f%2fwww.codeplex.com%2fsite%2fusers%2fview%2fchrisweber"&gt;CodePlex&lt;/a&gt;, or email us at casabasecurity .com.&lt;br /&gt;&lt;br /&gt;Ever find yourself looking for that showstopper exploit in a Web-app, and forgetting to check out all the low-hanging fruit?  That&amp;#39;s intitially why we created Watcher.  For one thing, we don&amp;#39;t want to manually inspect a Web-app for many of these issues (cookie settings, SSL configuration, information leaks, etc), but we still want to find and fix them.  Watcher provides this level of security analysis, plus provides hot-spot detection to help pen-testers focus in on the spots that will lead to that showstopper exploit.&lt;br /&gt;&lt;br /&gt;Watcher is a &lt;a href="http://www.fiddler2.com"&gt;Fiddler&lt;/a&gt; addon which aims to assist penetration testers in passively finding Web-application vulnerabilities. The security field today has several good choices for HTTP proxies which assist auditors and pen-testers.  We chose to implement this as a plugin for Fiddler which already provides the proxy framework for HTTP debugging.  Some reasons to use Watcher include:
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Safe for the Cloud and hosting environments.&lt;/b&gt;  Being passive gives Watcher several advantages - when applications live in the Cloud there&amp;#39;s often a risk that running security testing could damage the shared infrastructure.  However, using a passive tool like Watcher ensures that there&amp;#39;s no chance of damaging Cloud-like infrastructure.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Safe for production environments.&lt;/b&gt;  Watcher does not attack web-applications with loads of intrusive requests, it doesn&amp;#39;t modify inputs to your application.  Unlike crawlers and web-application scanners, Watcher does not generate dangerous traffic.  It quietly analyzes normal user-interaction and makes educated reports on the security of an application.  &lt;/li&gt;
&lt;li&gt;&lt;b&gt;Low overhead, no training.&lt;/b&gt;  If you’re building web-applications you already have a development and test staff.  Fiddler has been valuable to dev and test for years as a general-purpose HTTP debugging proxy.  Watcher fits seamlessly into the picture, providing valuable security insight with no special training requirements, dedicated machines, or other resources.  &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;If you&amp;#39;re looking for a tool to perform &lt;b&gt;cross-site scripting (XSS) testing&lt;/b&gt;, check out our &lt;a href="http://xss.codeplex.com/"&gt;x5s XSS testing tool&lt;/a&gt;.&lt;br /&gt;
&lt;h2&gt;Quick Links&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Latest &lt;a href="http://websecuritytool.codeplex.com/releases/view/22212#DownloadId=62386"&gt;version download&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Detailed &lt;a href="http://websecuritytool.codeplex.com/documentation?referringTitle=Home"&gt;Documentation&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Descriptions of the &lt;a href="http://websecuritytool.codeplex.com/wikipage?title=Checks"&gt;Checks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Sample &lt;a href="http://i3.codeplex.com/download?ProjectName=websecuritytool&amp;amp;DownloadId=112053"&gt;screenshot&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;x5s tool for &lt;a href="http://xss.codeplex.com/"&gt;active XSS testing&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Acknowledgements&lt;/h2&gt;We would like to thank the following people for their hard work, contributions, and ideas:&lt;br /&gt;&lt;br /&gt;Eric Lawrence (for building the Fiddler HTTP proxy)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;(Contributors)&lt;/b&gt;&lt;br /&gt;Samuel Bucholtz&lt;br /&gt;Robert Mooney&lt;br /&gt;Jason D. Montgomery&lt;br /&gt;Hidetake Jo&lt;br /&gt;Bryan Sullivan&lt;br /&gt;&lt;br /&gt;&lt;b&gt;(Suggestions and Ideas)&lt;/b&gt;&lt;br /&gt;Bryan Sullivan&lt;br /&gt;Dave Wichers&lt;br /&gt;Russ McRee&lt;br /&gt;David Byrne&lt;br /&gt;Adrien de Beaupre&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>chrisweber</author><pubDate>Fri, 26 Oct 2012 04:35:01 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121026043501A</guid></item><item><title>Updated Wiki: Home</title><link>http://websecuritytool.codeplex.com/wikipage?version=91</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Why use the Watcher passive Web-security scanner?&lt;/h2&gt;by &lt;a href="http://www.casaba.com/" class="externalLink"&gt;Casaba Security&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, contact us through &lt;a href="https://www.codeplex.com/site/login?RedirectUrl=http%3a%2f%2fwww.codeplex.com%2fsite%2fusers%2fcontact%2fchrisweber%3fOriginalUrl%3dhttp%3a%2f%2fwww.codeplex.com%2fsite%2fusers%2fview%2fchrisweber" class="externalLink"&gt;CodePlex&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, or email us at casabasecurity .com.&lt;br /&gt;&lt;br /&gt;Ever find yourself looking for that showstopper exploit in a Web-app, and forgetting to check out all the low-hanging fruit?  That&amp;#39;s intitially why we created Watcher.  For one thing, we don&amp;#39;t want to manually inspect a Web-app for many of these issues (cookie settings, SSL configuration, information leaks, etc), but we still want to find and fix them.  Watcher provides this level of security analysis, plus provides hot-spot detection to help pen-testers focus in on the spots that will lead to that showstopper exploit.&lt;br /&gt;&lt;br /&gt;Watcher is a &lt;a href="http://www.fiddler2.com" class="externalLink"&gt;Fiddler&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; addon which aims to assist penetration testers in passively finding Web-application vulnerabilities. The security field today has several good choices for HTTP proxies which assist auditors and pen-testers.  We chose to implement this as a plugin for Fiddler which already provides the proxy framework for HTTP debugging.  Some reasons to use Watcher include:
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Safe for the Cloud and hosting environments.&lt;/b&gt;  Being passive gives Watcher several advantages - when applications live in the Cloud there&amp;#39;s often a risk that running security testing could damage the shared infrastructure.  However, using a passive tool like Watcher ensures that there&amp;#39;s no chance of damaging Cloud-like infrastructure.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Safe for production environments.&lt;/b&gt;  Watcher does not attack web-applications with loads of intrusive requests, it doesn&amp;#39;t modify inputs to your application.  Unlike crawlers and web-application scanners, Watcher does not generate dangerous traffic.  It quietly analyzes normal user-interaction and makes educated reports on the security of an application.  &lt;/li&gt;
&lt;li&gt;&lt;b&gt;Low overhead, no training.&lt;/b&gt;  If you’re building web-applications you already have a development and test staff.  Fiddler has been valuable to dev and test for years as a general-purpose HTTP debugging proxy.  Watcher fits seamlessly into the picture, providing valuable security insight with no special training requirements, dedicated machines, or other resources.  &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;If you&amp;#39;re looking for a tool to perform &lt;b&gt;cross-site scripting (XSS) testing&lt;/b&gt;, check out our &lt;a href="http://xss.codeplex.com/" class="externalLink"&gt;x5s XSS testing tool&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;
&lt;h2&gt;Quick Links&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Latest &lt;a href="http://websecuritytool.codeplex.com/releases/view/22212#DownloadId=62386" class="externalLink"&gt;version download&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Detailed &lt;a href="http://websecuritytool.codeplex.com/documentation?referringTitle=Home"&gt;Documentation&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Descriptions of the &lt;a href="http://websecuritytool.codeplex.com/wikipage?title=Checks" class="externalLink"&gt;Checks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Sample &lt;a href="http://i3.codeplex.com/download?ProjectName=websecuritytool&amp;amp;DownloadId=112053" class="externalLink"&gt;screenshot&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;x5s tool for &lt;a href="http://xss.codeplex.com/" class="externalLink"&gt;active XSS testing&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Acknowledgements&lt;/h2&gt;We would like to thank the following people for their hard work, contributions, and ideas:&lt;br /&gt;&lt;br /&gt;Eric Lawrence (for building the Fiddler HTTP proxy)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;(Contributors)&lt;/b&gt;&lt;br /&gt;Jason D. Montgomery&lt;br /&gt;Hidetake Jo&lt;br /&gt;Bryan Sullivan&lt;br /&gt;&lt;br /&gt;&lt;b&gt;(Suggestions and Ideas)&lt;/b&gt;&lt;br /&gt;Bryan Sullivan&lt;br /&gt;Dave Wichers&lt;br /&gt;Russ McRee&lt;br /&gt;David Byrne&lt;br /&gt;Adrien de Beaupre&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>chrisweber</author><pubDate>Sat, 01 Oct 2011 20:34:48 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20111001083448P</guid></item></channel></rss>