<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>ClearNet Security: Tag vulnarability</title>
    <link>http://blog.clearnetsec.com/articles/tag/vulnarability</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>Web application scanners often fail crawling</title>
      <description>&lt;p&gt;I attended a webinar Friday hosted by Watchfire which covered their web application scanner titled &lt;a href="http://www.watchfire.com/securityzone/product/appscansix.aspx"&gt;AppScan 6.0&lt;/a&gt;.  The two big competitors I've run across in this space are Watchfire (formerly Sanctum) and SPI Dynamics. SPI Dynamics' web application scanner is titled &lt;a href="http://www.spidynamics.com/products/webinspect/index.html"&gt;WebInspect&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;These scanners are great at capturing all the low-hanging fruit (i.e. vulnerabilities) if they can successfully crawl the target website. The problem, one the can cause a consultant &lt;strong&gt;considerable pain&lt;/strong&gt;, is when you hit a site which uses technology that 'builds' URLs dynamically (e.g. JavaScript).  &lt;/p&gt;
&lt;pre&gt;&lt;span class="style1"&gt;A JavaScript Example:&lt;/span&gt;
&amp;lt;script language=&amp;quot;JavaScript&amp;quot;&amp;gt;
function goToPage(element_name) {
  window.location = &amp;quot;http://www.mysite.com?tracking=&amp;quot; + getelementbyname(element_name).value;
}
&amp;lt;/script&amp;gt;
&lt;/pre&gt;
&lt;p&gt;As you can read above, the complete URL is generated using the value of a variable. &lt;/p&gt;
&lt;p&gt;Let's take a quick look at a recent feature comparison from a September 2005 review of web application scanners by Secure Enterprise (&lt;a href="http://www.secureenterprisemag.com/products/showArticle.jhtml?articleID=169400383"&gt;link to the article&lt;/a&gt;) &lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.clearnetsec.com/roller/resources/cns/webScannerFeatures.gif" alt="webAppScanners" width="736" height="750" /&gt;&lt;/p&gt;
&lt;p&gt;If you look at the chart, it says all three of these scanners perform JavaScript parsing. Have you ever wondered why  they don't seem to discover all the possible links in a web application? There is kind of a trick word here; can you guess which it is? It is the word 'parsing'. This is the word which makes us think these scanners can blaze through  dynamic web applications. What they really mean by this is they can search through all the code and locate static URL paths like &lt;em&gt;http://www.mysite.com&lt;/em&gt;. But, if the target site builds their entire menu system, or navigation, or forms, or whatever via JavaScript (or VBScript), then you are likely out of luck. &lt;strong&gt;Execution &lt;/strong&gt;is what is needed, not just &lt;em&gt;parsing&lt;/em&gt;. The scanner &lt;strong&gt;&lt;em&gt;must &lt;/em&gt;&lt;/strong&gt;execute code (e.g. &lt;em&gt;window.location = &amp;quot;http://www.mysite.com?tracking=&amp;quot; + getelementbyname(element_name).value&lt;/em&gt;&lt;strong&gt;;&lt;/strong&gt;) to generate all the potentially valid URL paths within an application. &lt;/p&gt;
&lt;p&gt;Now all of these web application scanners support a work-around - what do you think that is? Here is a hint: You better have an excellent idea of how the site works and what all the application can do. The work-around is &lt;strong&gt;you&lt;/strong&gt; must crawl the entire site for the scanner. No problem you say? Well, that may be true, but our experience often results in pain. Like the time we were covering for another consultant and realized we had to manually enumerate one of the largest web-based business performance management (BPM) systems on the market in two days. It was one of those types of experiences you grow stronger from. &lt;/p&gt;
&lt;p&gt;So, if you are unfamiliar with all the different views a web application can generate and you are counting on a commericial web application scanner to do most of the heavy lifting, then be cautious. The time it would take to really do a good job may easily be 10x longer than you estimated. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: &lt;/strong&gt;To be fair, WatchFire did say in their webinar they would be adding execution capabilities in their next release in 9 to 12 months. It'll be interesting to see how much they execute. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;b&gt;Update 2/22/2006:  The release notes for the new WebInspect version 5.8 says:  "Support for Advanced Asynchronous JavaScript and XML (AJAX) Applications.  Improvements to the JavaScript and Audit engines now allow WebInspect to crawl and audit AJAX-based applications."&lt;/b&gt;
&lt;p&gt;



 

</description>
      <pubDate>Sun, 05 Feb 2006 23:37:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:1c11234e-005a-408e-98e3-20ddbd7a8460</guid>
      <author>tate@ClearNetSec.com (Tate Hansen)</author>
      <link>http://blog.clearnetsec.com/articles/2006/02/05/web-application-scanners-often-fail-crawling</link>
      <category>scanning</category>
      <category>vulnarability</category>
      <category>web applications</category>
      <category>ClearNet Security</category>
      <category>Tate Hansen</category>
      <category>apps</category>
    </item>
  </channel>
</rss>
