<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>WhiteHat Security Blog</title> <link>https://blog.whitehatsec.com</link> <description /> <lastBuildDate>Thu, 23 Feb 2012 20:33:06 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/WhitehatSecurityBlog" /><feedburner:info uri="whitehatsecurityblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><title>WhiteHat Security @ RSA — To Host an Interactive Twitter Session</title><link>http://feedproxy.google.com/~r/WhitehatSecurityBlog/~3/_GtA9vMFC04/</link> <comments>https://blog.whitehatsec.com/whitehat-security-rsa-also-hosting-an-interactive-twitter-session/#comments</comments> <pubDate>Thu, 23 Feb 2012 01:24:42 +0000</pubDate> <dc:creator>andrew.daniel</dc:creator> <category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">https://blog.whitehatsec.com/?p=1132</guid> <description><![CDATA[Jeremiah Grossman (@JeremiahG), CTO at WhiteHat (@WhiteHatSec), is slated to host a virtual discussion (or &#8220;Twitter Party&#8221;) via Twitter that will focus on the topic of aligning security budgets with the needs of today&#8217;s businesses. Scheduled for Tuesday, February 28th from 11AM-Noon PT, the session will utilize the hashtag #WHatRSA and feature several prizes for participation. [...]]]></description> <content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"> <a href="http://api.tweetmeme.com/share?url=https%3A%2F%2Fblog.whitehatsec.com%2Fwhitehat-security-rsa-also-hosting-an-interactive-twitter-session%2F"><br /> <img src="http://api.tweetmeme.com/imagebutton.gif?url=https%3A%2F%2Fblog.whitehatsec.com%2Fwhitehat-security-rsa-also-hosting-an-interactive-twitter-session%2F&amp;source=whitehatsec&amp;style=normal&amp;service=bit.ly&amp;hashtags=%23appsec+%23in&amp;b=2" height="61" width="50" /><br /> </a></div><p>Jeremiah Grossman (<a href="http://www.twitter.com/jeremiahg">@JeremiahG</a>), CTO at WhiteHat (<a href="http://www.twitter.com/whitehatsec">@WhiteHatSec</a>), is slated to host a virtual discussion (or &#8220;Twitter Party&#8221;) via Twitter that will focus on the topic of aligning security budgets with the needs of today&#8217;s businesses. Scheduled for Tuesday, February 28th from 11AM-Noon PT, the session will utilize the hashtag <a href="https://twitter.com/#%21/search/realtime/whatrsa">#WHatRSA</a> and feature several prizes for participation.</p><p><strong>Game Rules:</strong><br /> You must follow <a href="http://www.twitter.com/whitehatsec">@WhiteHatSec</a><br /> Utilize the hashtag <a href="https://twitter.com/#%21/search/realtime/whatrsa">#WHatRSA</a><br /> Engage in the topic and be an active participant</p><p>*One point will be awarded to each participant for every tweet they submit using the <a href="https://twitter.com/#%21/search/realtime/whatrsa">#WHatRSA</a> hashtag.<br /> *Participants with the same number of points at the end of the session will have their names entered and drawn from a hat.</p><p><strong>Prizes include:</strong></p><ul><li>Beats Solo HD (PRODUCT) RED High Definition On-Ear Headphones with ControlTalk</li><li>Monster iBeats™ Headphones with ControlTalk™ From Monster® In-Ear Noise Isolation</li><li>24 pack of Red Bull</li><li>WhiteHat &#8220;<em>Hack Yourself First</em>&#8221; t-shirt</li><li>VIP pass to WhiteHat&#8217;s 3rd Annual Cocktail party at Osha Thai Restaurant</li></ul><p>In addition to the interactive session, WhiteHat&#8217;s Jeremiah Grossman will speak about large-scale increases in website breaches over the course of the past year and the need for application security testing in agile development environments. He will also be participating on a panel debating best practices in addressing security challenges for modern web technologies. Other members of our team will be presenting at the Cloud Security Alliance Summit at RSA and the BSides San Francisco event.</p><p>For those unable to attend the Twitter Party or in-person conference sessions, Grossman will be at Akamai Technologies&#8217; vendor booth to discuss combatting prevalent Web attacks.</p><p><strong>What, Who, When &amp; Where: </strong></p><ul><li><strong>Conference Sessions:<br /> </strong></p><ul><li>WhiteHat Security Overview<ul><li>Speaker: Stephanie Fohn, president &amp; chief executive officer, WhiteHat Security</li><li>Monday, February 27th</li><li>10:15am PT – 10:30am PT</li><li>AGC Conference – The Westin San Francisco</li><li>50 3<sup>rd</sup> Street, San Francisco, CA</li></ul></li><li>Cloud Innovation – The Panel’s View on the Next Generation of Cloud Security Devices and Services (Panel Session)<ul><li>Panelists:<ul><li>Philippe Courtot, chief executive officer, Qualys Inc. (Moderator)</li><li>Matt Johansen, threat research center manager, WhiteHat Security</li><li>Don Godfrey, security consultant, Humana (Representing Zscaler)</li><li>David Lingenfelter, information security officer, Fiberlink</li></ul></li><li>Monday, February 27th</li><li>11:30am PT – 12:30pm PT</li><li>Moscone Center South, Gateway Room 102/103</li></ul></li><li>Hacking the Bank: 8 Post-Breach Points for Accurate Cost Analysis<ul><li>Speaker: Gillis Jones, application security specialist, WhiteHat Security</li><li>Monday, February 27th</li><li>2:00pm PT – 3:00pm PT</li><li>Children’s Creativity Museum</li><li>221 4<sup>th</sup> Street, San Francisco, CA</li></ul></li><li>Staying Secure in an Agile World (Panel Session)<ul><li>Panelists:<ul><li>Chenxi Wang, vice president &amp; principal analyst, Forrester (Moderator)</li><li>Jeremiah Grossman, chief technology officer, WhiteHat Security</li><li>Ido Breger, product manager, F5 Networks</li><li>Joel Scambray, managing principal, Cigital, Inc.</li></ul></li><li>Tuesday, February 28th</li><li>3:50pm PT – 5:00pm PT</li><li>Moscone Center, Room 302</li></ul></li><li>Web Breaches in 2011 – “This is Becoming Hourly News and Totally Ridiculous”<ul><li>Speaker: Jeremiah Grossman, chief technology officer, WhiteHat Security</li><li>Friday, March 2nd</li><li>9:00am PT – 9:50am PT</li><li>Moscone Center, Room 103</li></ul></li></ul></li></ul><ul><li><strong>Online Session:</strong><ul><li>Shifting Security Budgets in 2012<ul><li>Tuesday, February 28th</li><li>11:00am PT – 12:00pm PT</li><li>Follow: <a href="http://www.twitter.com/whitehatsec">@WhiteHatSec</a> , <a href="http://www.twitter.com/jeremiahg">@JeremiahG</a> and <a href="https://twitter.com/#%21/search/realtime/whatrsa">#WHatRSA</a></li></ul></li></ul></li></ul><ul><li><strong>On the Show Floor:</strong><ul><li>Akamai Technologies<ul><li>Wednesday, February 29th</li><li>2:00pm PT – 2:15pm PT</li><li>Moscone Center, Booth 851</li></ul></li></ul></li></ul><p>To learn more about RSA, other events WhiteHat Security will be attending and registration information, visit the <a href="https://www.whitehatsec.com/events/events.html">WhiteHat Security Events</a> page.</p> <img src="http://feeds.feedburner.com/~r/WhitehatSecurityBlog/~4/_GtA9vMFC04" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>https://blog.whitehatsec.com/whitehat-security-rsa-also-hosting-an-interactive-twitter-session/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <feedburner:origLink>https://blog.whitehatsec.com/whitehat-security-rsa-also-hosting-an-interactive-twitter-session/</feedburner:origLink></item> <item><title>In Your Oracle: Part Two</title><link>http://feedproxy.google.com/~r/WhitehatSecurityBlog/~3/_hOeqjZC1Pc/</link> <comments>https://blog.whitehatsec.com/in-your-oracle-part-two/#comments</comments> <pubDate>Fri, 17 Feb 2012 17:00:55 +0000</pubDate> <dc:creator>Justin Barron</dc:creator> <category><![CDATA[True Stories of the TRC]]></category> <category><![CDATA[Web Application Security]]></category> <category><![CDATA[Database]]></category> <category><![CDATA[exploit]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[SQL]]></category> <category><![CDATA[sql injection]]></category> <category><![CDATA[TRC]]></category> <category><![CDATA[vulnerability]]></category><guid isPermaLink="false">https://blog.whitehatsec.com/?p=1058</guid> <description><![CDATA[In Micheal&#8216;s previous post, &#8216;In Your Oracle: The Beginning&#8216;, he introduced a blind SQL Injection vulnerability that a client was asking us to dig deeper into. The client wanted us to do this, because while they recognized that the vulnerability was real, actionable, and a threat &#8211; especially to their users &#8211; they weren&#8217;t convinced [...]]]></description> <content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"> <a href="http://api.tweetmeme.com/share?url=https%3A%2F%2Fblog.whitehatsec.com%2Fin-your-oracle-part-two%2F"><br /> <img src="http://api.tweetmeme.com/imagebutton.gif?url=https%3A%2F%2Fblog.whitehatsec.com%2Fin-your-oracle-part-two%2F&amp;source=whitehatsec&amp;style=normal&amp;service=bit.ly&amp;hashtags=Database,exploit,Oracle,SQL,sql+injection,TRC,vulnerability&amp;b=2" height="61" width="50" /><br /> </a></div><p>In <a title="Micheal Cottingham" href="https://blog.whitehatsec.com/author/michealcottingham/" target="_blank">Micheal</a>&#8216;s previous post, &#8216;<a title="In Your Oracle: The Beginning" href="https://blog.whitehatsec.com/in-your-oracle-the-beginning/" target="_blank">In Your Oracle: The Beginning</a>&#8216;, he introduced a blind SQL Injection vulnerability that a client was asking us to dig deeper into. The client wanted us to do this, because while they recognized that the vulnerability was real, actionable, and a threat &#8211; especially to their users &#8211; they weren&#8217;t convinced of its severity. Instead, the client claimed that the vulnerability could only be leveraged to read data already intended to be accessible by the logged-in user. In other words, the SQL query was executing within the context of a low-privileged database user.</p><p><strong>A quick aside: </strong>I had a different client who recently downplayed the severity of an SQL Injection vulnerability because the result set was being parsed and formatted before being incorporated into the response. Because of this behavior, they didn&#8217;t think any data could be accessed other than what was intended to be parsed and formatted into the page. Aside from being able to <code>UNION</code> other data into the result set, or simply to brute force dropping tables, I introduced the client to something Micheal touched on in his post: The true/false/error condition. More on this in a minute.</p><p><strong><br /> The Vulnerability</strong></p><p>The vulnerability that Micheal and I were digging into did not involve the entire result set being output to the page, so we couldn&#8217;t simply UNION other data and get it all dumped back to us. That&#8217;s because the application would execute an SQL query &#8211; using an ID that was being supplied in the query string &#8211; and the first row of data returned by the query would be used to determine the response. Therefore, we could only return a limited amount of data at a time, and that data would have to conform to certain data types &#8211; otherwise, the page would error out.</p><p>Here&#8217;s an example of what the back-end SQL query may have looked like (though, in reality, it was much more complex than this):</p><blockquote><p><code>SELECT * FROM listingsData WHERE id='504'</code></p></blockquote><p>And an example of the URL we were injecting on:</p><blockquote><p><code>http://example.com/somepage?id=504</code></p></blockquote><p>And last, but not least, an extraordinarily simplified example of the output from the page:</p><blockquote><p><code>Listing ID: 504<br /> Listing Entity: Acme, Inc.<br /> Listing Data: &lt;a table of data&gt;</code></p></blockquote><p><strong><br /> The True/False/Error Condition</strong></p><p>When an SQL Injection vulnerability can&#8217;t be leveraged to just dump rows upon rows of data, a true/false condition can allow an attacker to fuzz the database, and determine the table and column names, the cell values, and more. Basically, with a reliable true/false condition, an attacker can brute force the entire database in a practical amount of time.</p><p>However, due to strange behavior from the application (plus what we suspected was a complex query syntax that we couldn&#8217;t discern), we were not able to simply append our own <code>WHERE</code> clause condition, like this:</p><blockquote><p><code>http://example.com/somepage?id=504'%20AND%201=1%20AND%20''='</code></p></blockquote><p>We were, however, able to perform string concatenation. Injecting <code>id=5'||'0'||'4</code> would give us the same response as <code>id=504</code>. We also discovered that <code>id=54</code> would result in the following response:</p><blockquote><p><code>Listing ID:<br /> Listing Entity:<br /> Listing Data: </code></p></blockquote><p>Furthermore, we found that a syntax error, such as what <code>id='</code> would cause, produced the following response:</p><blockquote><p><code>An error has occurred. Please try again.</code></p></blockquote><p>In Oracle, there exists a dummy table called &#8216;<a title="The Oracle DUAL Table" href="http://www.adp-gmbh.ch/ora/misc/dual.html" target="_blank">dual</a>&#8216;. We were able to use this table, in combination with string concatenation and a sub-query, to establish a boolean condition:</p><blockquote><p><code>http://example.com/somepage?id=5'||(SELECT%200%20FROM%20dual%20WHERE%201=1)||'4</code></p></blockquote><p>The URL encoding makes it look messy. Here&#8217;s the URL-decoded version of our injection:</p><blockquote><p><code>5'||(SELECT 0 FROM dual WHERE 1=1)||'4</code></p></blockquote><p>Because the <code>WHERE</code> clause of our sub-query evaluated to TRUE, the <code>SELECT</code> would return a zero, which got concatenated with the 5 and 4, and became 504. This injection resulted in Acme, Inc.&#8217;s information being returned in the page, and became our TRUE condition.</p><p>Now consider this injection (URL decoded for readability):</p><blockquote><p><code>5'||(SELECT 0 FROM dual WHERE 1=0)||'4</code></p></blockquote><p>Because the <code>WHERE</code> clause evaluated to FALSE, the <code>SELECT</code> returned nothing, which got concatenated with 5 and 4, and became 54. This injection resulted in blank listing data in the response, and was considered to be our FALSE condition.</p><p>The TRUE condition let us know when the <code>WHERE</code> clause of our sub-query evaluated to TRUE, and the FALSE condition told us the inverse. The error condition (described a few paragraphs above) let us know if there was a syntax error in our query (possibly due to characters being unexpectedly encoded).</p><p>Now that we had established a reliable true/false/error condition, we could start having some fun.</p><p><strong><br /> The Good Stuff</strong></p><p>We were able to use the true/false condition to brute force some pieces of information that we figured the client did not intend logged-in users to obtain, such as the database name (from this point forward, all injections will remain URL-decoded for the sake of readability):</p><blockquote><p><code>5'||(SELECT 0 FROM dual WHERE SUBSTR(SYS.DATABASE_NAME, 1, 1) BETWEEN 'a' AND 'z')||'4</code></p></blockquote><p>The above injection took the first character of the database and determined if it was a lowercase letter. If true, we&#8217;d get Acme, Inc.&#8217;s data in the response; if false, we&#8217;d get blank listing data.</p><p>We could quickly brute force each character by cutting our <code>BETWEEN</code> range in half for each test. For example, if the above injection resulted in a TRUE condition, then we could figure out which lowercase letter the database name started with by using the following process:</p><p>Cut the range of characters in half:</p><blockquote><p><code>5'||(SELECT 0 FROM dual WHERE SUBSTR(SYS.DATABASE_NAME, 1, 1) BETWEEN 'a' AND 'm')||'4</code></p></blockquote><p>If the above resulted in a TRUE condition, then we knew the letter was between &#8216;a&#8217; and &#8216;m&#8217;, and could then test for it being between &#8216;a&#8217; and &#8216;g&#8217;. If the above resulted in a FALSE condition, then we&#8217;d drill down into the &#8216;m&#8217; through &#8216;z&#8217; range. In either case, we kept narrowing the search range until we were able to pinpoint the correct character.</p><p>We could then brute force the rest of the database name characters by incrementing the second parameter of the <code>SUBSTR</code> function (2 for the second character, 3 for the third, etc). If we incremented the parameter and got an error condition as a result, we knew we had surpassed the length of the database name.</p><p>We could also pre-determine the length of the database name with a similar &#8220;test and drill down&#8221; technique with this injection:</p><blockquote><p><code>5'||(SELECT 0 FROM dual WHERE LENGTH(SYS.DATABASE_NAME)&gt;10)||'4</code></p></blockquote><p>Once we had brute forced the entire value, we verified our finding with this injection:</p><blockquote><p><code>5'||(SELECT 0 FROM dual WHERE SYS.DATABASE_NAME='dbmaster01')||'4</code></p></blockquote><p>We were able to extract information from other tables, too, such as:</p><blockquote><p><code>5'||(SELECT 0 FROM SYS.USER_USERS WHERE SUBSTR(username, 1, 1) BETWEEN 'a' AND 'z')||'4</code></p></blockquote><p>Using this method, we were able to extract various pieces of information, such as the database name, database user (which the query was being executed with), database user ID, and default table space. However, Micheal and I were not happy stopping there. With the help of <a title="Oracle SQL Injection Cheat Sheet" href="http://pentestmonkey.net/cheat-sheet/sql-injection/oracle-sql-injection-cheat-sheet" target="_blank">pentestmonkey.net</a>, we discovered some interesting Oracle features that gave us some juicy insights into our client&#8217;s network.</p><p><strong><br /> The Juicy Stuff</strong></p><p>Oracle has a couple of variables that allowed us to extract the server&#8217;s internal hostname and IP address: <code>UTL_INADDR.get_host_name</code> and <code>UTL_INADDR.get_host_address</code>, respectively. Using the same brute force technique described above, we were able to successfully extract the hostname/IP and verify our findings with the following injections:</p><blockquote><p><code>5'||(SELECT 0 FROM dual WHERE UTL_INADDR.get_host_name='srvdb01')||'4<br /> 5'||(SELECT 0 FROM dual WHERE UTL_INADDR.get_host_address='10.1.20.5')||'4</code></p></blockquote><p>What we found even more interesting was the fact that <code>UTL_INADDR.get_host_name</code> would accept a parameter &#8211; an IP &#8211; and would allow us to basically perform DNS queries through the SQL Injection vulnerability:</p><blockquote><p><code>5'||(SELECT 0 FROM dual WHERE LENGTH(UTL_INADDR.get_host_name('10.1.20.6'))&gt;0)||'4</code></p></blockquote><p>If the above resulted in a TRUE condition, we knew the IP resolved successfully, and we could proceed with brute forcing the hostname. If the result was a FALSE condition, we&#8217;d presume the IP to be invalid.</p><p>Micheal and I, being the PHP fans that we are, collaborated with each other to automate the entire process. Several hundred lines of code later, we were able to quickly harvest dozens of internal IPs and corresponding hostnames &#8211; information that would come in quite handy for a network-level attack, or even for a social engineering approach (&#8220;Hi, I&#8217;m Matt from IT. I&#8217;m having trouble logging in to srvdb01 at IP 10.1.20.5. Is the root password still &#8220;qSSQ[W2&amp;(8#-/IQ4b{W;%us&#8221;?).</p><p><strong><br /> Conclusion &amp; Take-Aways</strong></p><p>Never assume that you know the full extent of the threat that a vulnerability represents to your organization. While you can reach a particular level of confidence in your knowledge and understanding of the situation, you never know what new and imaginative avenues of attack or combinations of techniques an attacker may discover or create &#8211; like mapping out your internal network through an SQL Injection vulnerability.</p><p>&#8220;<em>Imagination is more important than knowledge. For knowledge is limited to all we now know and understand, while imagination embraces the entire world, and all there ever will be to know and understand.</em>&#8221; -Albert Einstein</p> <img src="http://feeds.feedburner.com/~r/WhitehatSecurityBlog/~4/_hOeqjZC1Pc" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>https://blog.whitehatsec.com/in-your-oracle-part-two/feed/</wfw:commentRss> <slash:comments>1</slash:comments> <feedburner:origLink>https://blog.whitehatsec.com/in-your-oracle-part-two/</feedburner:origLink></item> <item><title>Top Ten Web Hacking Techniques of 2011</title><link>http://feedproxy.google.com/~r/WhitehatSecurityBlog/~3/sdZ7v-MjHzo/</link> <comments>https://blog.whitehatsec.com/vote-now-top-ten-web-hacking-techniques-of-2011/#comments</comments> <pubDate>Tue, 14 Feb 2012 16:49:44 +0000</pubDate> <dc:creator>Jeremiah Grossman</dc:creator> <category><![CDATA[Web Application Security]]></category><guid isPermaLink="false">https://blog.whitehatsec.com/?p=1099</guid> <description><![CDATA[Every year the Web security community produces a stunning amount of new hacking techniques published in various white papers, blog posts, magazine articles, mailing list emails, etc. Within the thousands of pages are the latest ways to attack websites, Web browsers, Web proxies, and so on. Beyond individual vulnerability instances with CVE numbers or system [...]]]></description> <content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"> <a href="http://api.tweetmeme.com/share?url=https%3A%2F%2Fblog.whitehatsec.com%2Fvote-now-top-ten-web-hacking-techniques-of-2011%2F"><br /> <img src="http://api.tweetmeme.com/imagebutton.gif?url=https%3A%2F%2Fblog.whitehatsec.com%2Fvote-now-top-ten-web-hacking-techniques-of-2011%2F&amp;source=whitehatsec&amp;style=normal&amp;service=bit.ly&amp;hashtags=%23appsec+%23in&amp;b=2" height="61" width="50" /><br /> </a></div><p>Every year the Web security community produces a stunning amount of new hacking techniques published in various white papers, blog posts, magazine articles, mailing list emails, etc. Within the thousands of pages are the latest ways to attack websites, Web browsers, Web proxies, and so on. Beyond individual vulnerability instances with CVE numbers or system compromises, we&#8217;re talking about actual new and creative methods of Web-based attack. The Top Ten Web Hacking Techniques list encourages information sharing, provides a centralized knowledge-base, and recognizes researchers who contribute excellent work.</p><p>How the winners are selected&#8230;</p><p>&nbsp;</p><h3><strong>Phase 1: Open community voting (<a href="http://www.surveymonkey.com/s/TopTenWebHackingTechniques2011">Ballot</a>) [<span style="color: #993300">COMPLETE</span>]</strong></h3><p>From of the field of 51 total entries received listed below, each voter (open to everyone) <a href="http://www.surveymonkey.com/s/TopTenWebHackingTechniques2011">ranks their fifteen favorite Web Hacking Techniques</a> using a survey. Each entry (listed alphabetically) get a certain amount of points depending on how highly they are individually ranked in each ballot. For example, an each entry in position #1 will be given 15 points, position #2 will get 14 point, position #3 gets 13 points, and so on down to 1 point. At the end all points from all ballots will be tabulated to ascertain the top fifteen overall. And NO selecting the same attack multiple times! <img src='https://blog.whitehatsec.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> (they&#8217;ll be deleted)</p><p><span style="text-decoration: underline"><a href="http://www.surveymonkey.com/s/TopTenWebHackingTechniques2011">Voting will close at the end of the day this Monday, February 20.</a></span></p><p><strong>[<span style="color: #993300">CLOSED</span>]</strong> The more people who vote, the better the results! <a href="http://www.surveymonkey.com/s/TopTenWebHackingTechniques2011">Vote Now</a>!</p><p>&nbsp;</p><h3><strong>Phase 2: Panel of Security Experts </strong><strong>[<span style="color: #008000">IN PROGRESS</span>]</strong></h3><p><strong></strong>From the result of the open community voting, the top fifteen Web Hacking Techniques will be voted upon by panel of security experts (to be announced soon). Using the exact same voting process as phase 1, the judges will rank the final fifteen based of novelty, impact, and overall pervasiveness. Once tabulation is completed, we’ll have the Top Ten Web Hacking Techniques of 2011!</p><p><span style="text-decoration: underline">Voting will close at the end of the day on Sunday, February 26.</span></p><p>Soon after the winners will be announced!</p><p>Good luck everyone</p><p>&nbsp;</p><h3><strong>The Final 15:</strong></h3><p>Hundreds of votes were cast during the open vote &#8212; a great turn out. Thank you everyone for taking the time! 44% of the respondents were self-described &#8220;Breakers,&#8221; follow by 22% &#8220;Defenders,&#8221; 16% &#8220;Builders,&#8221; and 17% did not specify. There was a very smooth distribution of points totals across the range of entries. Clearly everyone had their favorites. Of course we saw a lot of ballot stuffing action, which required a substantive amount of clean-up, but when ranking a Web hacking techniques&#8217; its kind of what you expect <img src='https://blog.whitehatsec.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> This is exactly why we have a final 15 process first, so the top ten outcome isn&#8217;t negatively affected. Any entries that obviously don&#8217;t belong in the top ten are easily eliminated during the &#8220;Panel of Security Experts&#8221; phase. Now it&#8217;s the judges turn to have their say!</p><ol><li><a href="http://polyboy.net/docs/2011_DIMVA_Flash_crossdomain_proxies.pdf">Abusing Flash-Proxies for client-side cross-domain HTTP requests</a></li><li><a href="https://grepular.com/Abusing_HTTP_Status_Codes_to_Expose_Private_Information">Abusing HTTP Status Codes to Expose Private Information</a></li><li><a href="http://blog.mindedsecurity.com/2011/10/autocompleteagain.html">Autocomplete..again?!</a></li><li><a href="http://vnhacker.blogspot.com/2011/09/beast.html">BEAST</a></li><li><a href="http://blog.securitee.org/?p=37">Bypassing Chrome’s Anti-XSS filter</a></li><li><a href="http://gursevkalra.blogspot.com/2011/11/captcha-hax-with-tessercap.html">CAPTCHA Hax With TesserCap</a></li><li><a href="http://sites.google.com/site/tentacoloviola/">Cookiejacking</a></li><li><a href="http://lists.webappsec.org/pipermail/websecurity_lists.webappsec.org/2011-February/007533.html">CSRF: Flash + 307 redirect = Game Over</a></li><li><a href="http://blog.watchfire.com/wfblog/2011/10/dns-poisoning-via-port-exhaustion.html">DNS poisoning via Port Exhaustion</a></li><li><a href="http://code.google.com/p/dominator/">DOMinator &#8211; Finding DOMXSS with dynamic taint propagation</a></li><li><a href="https://docs.google.com/document/d/1dc1xxO8UMFaGLOwgkykYdghGWm_2Gn0iCrxFsympqcE/edit?hl=en_US&amp;pli=1">Expression Language Injection</a></li><li><a href="https://nealpoole.com/blog/2011/10/java-applet-same-origin-policy-bypass-via-http-redirect/">Java Applet Same-Origin Policy Bypass via HTTP Redirect</a></li><li><a href="http://blog.watchfire.com/wfblog/2011/10/json-based-xss-exploitation.html">JSON-based XSS exploitation</a></li><li><a href="https://websec.wordpress.com/2012/01/04/multiple-vulnerabilities-in-apache-struts2-and-property-oriented-programming-with-java/">Multiple vulnerabilities in Apache Struts2 and property oriented programming with Java</a></li><li><a href="http://code.google.com/p/puzzlemall/downloads/list">Session Puzzling</a> (aka Session Variable Overloading)</li></ol><h3></h3><h3></h3><h3><strong>The Big List:</strong></h3><ol><li><strong><a href="http://polyboy.net/docs/2011_DIMVA_Flash_crossdomain_proxies.pdf">Abusing Flash-Proxies for client-side cross-domain HTTP requests</a> [<a href="http://polyboy.net/docs/Talks/2011_Bitingthehandthatservesyou_DIMVA.pdf">slides</a>]</strong></li><li><a href="https://grepular.com/Abusing_HTTP_Status_Codes_to_Expose_Private_Information">Abusing HTTP Status Codes to Expose Private Information</a></li><li><a href="http://blog.mindedsecurity.com/2011/10/autocompleteagain.html">Autocomplete..again?!</a></li><li><a href="http://vnhacker.blogspot.com/2011/09/beast.html">BEAST</a></li><li><a href="http://blog.securitee.org/?p=37">Bypassing Chrome’s Anti-XSS filter</a></li><li><a href="http://xs-sniper.com/blog/2011/01/04/bypassing-flash%E2%80%99s-local-with-filesystem-sandbox/">Bypassing Flash’s local-with-filesystem Sandbox</a></li><li><a href="http://gursevkalra.blogspot.com/2011/11/captcha-hax-with-tessercap.html">CAPTCHA Hax With TesserCap</a></li><li><a href="http://shreeraj.blogspot.com/2011/11/csrf-with-json-leveraging-xhr-and-cors_28.html">CSRF with JSON – leveraging XHR and CORS</a></li><li><a href="http://lists.webappsec.org/pipermail/websecurity_lists.webappsec.org/2011-February/007533.html">CSRF: Flash + 307 redirect = Game Over</a></li><li><a href="http://tinyurl.com/5w6koqj">Close encounters of the third kind (client-side JavaScript vulnerabilities)</a></li><li><a href="http://sites.google.com/site/tentacoloviola/">Cookiejacking</a></li><li><a href="http://blog.kotowicz.net/2011/07/cross-domain-content-extraction-with.html">Cross domain content extraction with fake captcha</a></li><li><a href="http://nakedsecurity.sophos.com/2011/09/07/crowd-sourcing-mischief-on-google-maps-leads-customers-astray/">Crowd-sourcing mischief on Google Maps leads customers astray</a></li><li><a href="http://blog.watchfire.com/wfblog/2011/10/dns-poisoning-via-port-exhaustion.html">DNS poisoning via Port Exhaustion</a></li><li><a href="http://code.google.com/p/dominator/">DOMinator &#8211; Finding DOMXSS with dynamic taint propagation</a></li><li><a href="http://shreeraj.blogspot.com/2011/12/double-eval-for-dom-based-xss.html">Double eval() for DOM based XSS</a></li><li><a href="http://soroush.secproject.com/blog/2011/12/drag-and-drop-xss-in-firefox-by-html5-cross-domain-in-frames/">Drag and Drop XSS in Firefox by HTML5 (Cross Domain in frames)</a></li><li><a href="http://dsecrg.blogspot.com/2011/12/excel-formula-injection-in-google-docs.html">Excel formula injection in Google Docs</a></li><li><a href="http://amolnaik4.blogspot.com/2011/03/exploitation-of-self-only-cross-site.html">Exploitation of “Self-Only” Cross-Site Scripting in Google Code</a></li><li><a href="http://blog.kotowicz.net/2011/03/exploiting-unexploitable-xss-with.html">Exploiting the unexploitable XSS with clickjacking</a></li><li><a href="https://docs.google.com/document/d/1dc1xxO8UMFaGLOwgkykYdghGWm_2Gn0iCrxFsympqcE/edit?hl=en_US&amp;pli=1">Expression Language Injection</a></li><li><a href="http://jeremiahgrossman.blogspot.com/2011/03/robert-rsnake-hansen-age-34-has-passed.html">Facebook: Memorializing a User</a></li><li><a href="http://blog.kotowicz.net/2011/04/how-to-make-file-server-from-your.html">Filejacking: How to make a file server from your browser (with HTML5 of course)</a></li><li><a href="https://media.blackhat.com/bh-us-11/Johansen/BH_US_11_JohnasenOsborn_Hacking_Google_WP.pdf">Google Chrome/ChromeOS sandbox side step via owning extensions</a></li><li><a href="http://www.feross.org/webcam-spy/">HOW TO: Spy on the Webcams of Your Website Visitors</a></li><li><a href="http://kyleosborn.org/2011/10/09/the-hidden-xss-attacking-the-desktop-mobile-platforms-slides-video/">Hidden XSS Attacking the Desktop &amp; Mobile Platforms</a></li><li><a href="https://blog.whitehatsec.com/how-to-own-every-user-on-a-social-networking-site/">How To Own Every User On A Social Networking Site</a></li><li><a href="http://blog.kotowicz.net/2011/01/how-to-get-sql-query-contents-from-sql.html">How to get SQL query contents from SQL injection flaw</a></li><li><a href="http://blog.kotowicz.net/2011/04/how-to-upload-arbitrary-file-contents.html">How to upload arbitrary file contents cross-domain</a> (<a href="http://blog.kotowicz.net/2011/05/cross-domain-arbitrary-file-upload.html">2</a>)</li><li><a href="http://blog.watchfire.com/wfblog/2011/10/json-based-xss-exploitation.html">JSON-based XSS exploitation</a></li><li><a href="https://nealpoole.com/blog/2011/10/java-applet-same-origin-policy-bypass-via-http-redirect/">Java Applet Same-Origin Policy Bypass via HTTP Redirect</a></li><li><a href="http://yifan.lu/2011/12/10/kindle-touch-5-0-jailbreakroot-and-ssh/">Kindle Touch (5.0) Jailbreak/Root and SSH</a></li><li><a href="http://vttynotes.blogspot.com/2011/10/cve-2011-3230-launch-any-file-path-from.html">Launch any file path from web page</a></li><li><a href="http://aboulton.blogspot.com/2011/11/new-type-of-vulnerability-lotus-notes.html">Lotus Notes Formula Injection</a></li><li><a href="https://websec.wordpress.com/2012/01/04/multiple-vulnerabilities-in-apache-struts2-and-property-oriented-programming-with-java/">Multiple vulnerabilities in Apache Struts2 and property oriented programming with Java</a></li><li><a href="http://www.thespanner.co.uk/2011/12/05/nulls-in-entities-in-firefox/">NULLs in entities in Firefox</a></li><li><a href="http://lcamtuf.coredump.cx/cachetime/">Rapid history extraction through non-destructive cache timing (v8)</a></li><li><a href="http://code.google.com/p/puzzlemall/downloads/list">Session Puzzling</a> (aka Session Variable Overloading) Video <a href="http://www.youtube.com/watch?v=HeP54b52IeQ">1</a>, <a href="http://www.youtube.com/watch?v=iTcOooHbgog">2</a>, <a href="http://www.youtube.com/watch?v=ikIyInm0wAg">3</a>, <a href="http://www.youtube.com/watch?v=-DackF8HsIE">4</a></li><li><a href="http://andrewmcafee.org/2011/02/mcafee-apple-itunes-privacy-hole-violation/">SpyTunes: Find out what iTunes music someone else has</a></li><li><a href="http://pauldotcom.com/2011/05/stealth-cookie-stealing-new-xs.html">Stealth Cookie Stealing (new XSS technique)</a></li><li><a href="http://blog.kotowicz.net/2011/10/stripping-referrer-for-fun-and-profit.html">Stripping Referrer for fun and profit</a></li><li><a href="http://blog.c22.cc/2011/04/22/surveymonkey-ip-spoofing/">SurveyMonkey: IP Spoofing</a></li><li><a href="http://www.youtube.com/watch?v=woWECWwrsSk">Temporal Session Race Conditions</a> Video <a href="http://www.youtube.com/watch?v=3k_eJ1bcCro">2</a></li><li><a href="http://elie.im/publication/text-based-captcha-strengths-and-weaknesses">Text-based CAPTCHA Strengths and Weaknesses</a></li><li><a href="http://elie.im/publication/the-failure-of-noise-based-non-continuous-audio-captchas">The Failure of Noise-Based Non-Continuous Audio Captchas</a></li><li><a href="http://www.schemehostport.com/2011/12/timing-attacks-on-css-shaders.html">Timing Attacks on CSS Shaders</a></li><li><a href="http://elie.im/blog/security/tracking-users-that-block-cookies-with-a-http-redirect/">Tracking users that block cookies with a HTTP redirect</a></li><li><a href="http://blog.chromium.org/2011/07/using-cross-domain-images-in-webgl-and.html">Using Cross-domain images in WebGL and Chrome 13</a></li><li><a href="https://superevr.com/blog/2011/xss-in-skype-for-ios/">XSS in Skype for iOS</a></li><li><a href="http://blog.kotowicz.net/2011/01/xss-track-as-html5-websockets-traffic.html">XSS-Track as a HTML5 WebSockets traffic sniffer</a></li><li><a href="http://events.ccc.de/congress/2011/Fahrplan/events/4680.en.html">HashDOS: Effective Denial of Service attacks against web application platforms</a></li></ol> <img src="http://feeds.feedburner.com/~r/WhitehatSecurityBlog/~4/sdZ7v-MjHzo" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>https://blog.whitehatsec.com/vote-now-top-ten-web-hacking-techniques-of-2011/feed/</wfw:commentRss> <slash:comments>4</slash:comments> <feedburner:origLink>https://blog.whitehatsec.com/vote-now-top-ten-web-hacking-techniques-of-2011/</feedburner:origLink></item> <item><title>Web Browser Defense-in-Depth: 3 Layers is Good, 5 is Better</title><link>http://feedproxy.google.com/~r/WhitehatSecurityBlog/~3/cZcPu5_7wiE/</link> <comments>https://blog.whitehatsec.com/web-browser-defense-in-depth-3-layers-is-good-5-is-better/#comments</comments> <pubDate>Mon, 13 Feb 2012 02:06:24 +0000</pubDate> <dc:creator>Jeremiah Grossman</dc:creator> <category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">https://blog.whitehatsec.com/?p=1082</guid> <description><![CDATA[Defense-in-Depth is an approach to security emphasizing that if any particular layer of defense fails, at least one more overlapping layer is present to take over. Defense-in-Depth limits single points of security failure and increases the difficulty for an attacker to compromise a system. A simple example of Defense-in-Depth is protecting a PC from remote [...]]]></description> <content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"> <a href="http://api.tweetmeme.com/share?url=https%3A%2F%2Fblog.whitehatsec.com%2Fweb-browser-defense-in-depth-3-layers-is-good-5-is-better%2F"><br /> <img src="http://api.tweetmeme.com/imagebutton.gif?url=https%3A%2F%2Fblog.whitehatsec.com%2Fweb-browser-defense-in-depth-3-layers-is-good-5-is-better%2F&amp;source=whitehatsec&amp;style=normal&amp;service=bit.ly&amp;hashtags=%23appsec+%23in&amp;b=2" height="61" width="50" /><br /> </a></div><p><a href="http://en.wikipedia.org/wiki/Defense_in_depth_(computing)">Defense-in-Depth</a> is an approach to security emphasizing that if any particular layer of defense fails, at least one more overlapping layer is present to take over. Defense-in-Depth limits single points of security failure and increases the difficulty for an attacker to compromise a system.</p><p>A simple example of Defense-in-Depth is protecting a PC from remote compromise by keeping the machine up-to-date on patches AND surrounding it with a firewall. Should a firewall fail for some reason, the PC remains resilient against remote exploitation because it is properly patched. If the PC falls behind on its patches, which frequently happens, a well-configured firewall protects against compromise by denying inbound connections.</p><p>Web browsers also have a notion of Defense-in-Depth, but the major vendors don’t ship them with as many layers as they could (or should?). By my count, Chrome installs with three layers. Fortunately, with a simple configuration change and installing a specific add-on, anyone can add two more layers of defense and dramatically improve their protection against browser exploitation and PC malware infection. Before discussing the specifics, we should first describe the attack pathology we’re defending against.</p><p>A very common way malware is propagated is by visiting “infected” websites. Infected websites could be hosting the malware package itself, or including it as part of third-party Web page content, like an advertisement. When a browser, such as Chrome, visits an infected website it could be exploited via an unpatched software flaw. It is also possible, if not typical, for the exploit to target an installed browser plugin like Flash. We pick on Chrome and Flash only because they provide extra layer of defense that the other browsers and other extensions including Java and Quicktime do not. A sandbox.</p><p>To successfully compromise a Chrome browser with five layers of Defense-in-Depth, the attacker must overcome:</p><h3>1) <strong>Phishing and malware detection</strong></h3><p>“<a href="https://support.google.com/chrome/bin/answer.py?hl=en&amp;answer=99020">Phishing and malware detection</a>,” enabled by default in Chrome, gives users an interstitial warning that, “Visiting this site may harm your computer.” This is essentially a curated blacklist of dangerous websites and is by no means ever complete. For an attacker to bypass the phishing and malware layer of defense, one of three things would have to take place:</p><p><a href="https://blog.whitehatsec.com/wp-content/uploads/chrome-privacy.png"><br /> <img src="https://blog.whitehatsec.com/wp-content/uploads/chrome-privacy.png" alt="" width="702" height="207" /></a></p><ul><li>Their victim would have to manually disable this setting in the preferences, which is unlikely yet possible.</li><li>Their victim must REALLY wants to see the dancing monkey on the next screen and is willing to risk infection to do so. As we know, people click past warning screens all the time.</li><li>The attacker plants their malware in a location that evades, even temporarily, detection by Google’s and their partners. Certainly possible.</li></ul><p><a href="https://blog.whitehatsec.com/wp-content/uploads/phishing-warning.png"><img src="https://blog.whitehatsec.com/wp-content/uploads/phishing-warning.png" alt="" width="755" height="200" /></a></p><p>It is prudent to assume one of these three scenarios may transpire and the layer of defense will fail, so we need another.</p><p>&nbsp;</p><h3>2) <strong>Ad Blocking</strong></h3><p><strong></strong>Instead of setting up their own infected websites, or compromising otherwise legitimate websites and injecting them with malware, malware purveyors commonly purchase advertising impressions and use them to mass distribute their wares to a potential victim. Malicious advertisements are often referred to as “malvertisements.” Millions of malvertisements can be purchased for mere dollars and this is where ad blocking, with extensions such as <a href="https://chrome.google.com/webstore/detail/gighmmpiobklfepjocnamgkkbiglidom?hl=en-US">Ad Block</a> and <a href="https://chrome.google.com/webstore/detail/cfhdojbkjhnklbpkdaibdccddilifddb?hl=en-US">Adblock Plus</a>, prove highly effective.</p><p>Ad blocking extensions, which do not ship with a mainstream Web browser, prevent HTTP requests from being sent to well-known advertising networks and downloading potentially malicious content. If your browser doesn’t download a malvertisement, then it obviously can’t be exploited by it. With ad blocking, a Web browser may remain unscathed even while visiting a website currently infected by malvertisements. So, not only does ad blocking make for a more pleasant user experience, it makes surfing the Web much safer!</p><p>Since ad blocking is itself a black list, a malicious ad could potentially slip through, and if so, another layer of defense is necessary.</p><p>&nbsp;</p><h3>3) <strong>Plug-in Blocking</strong></h3><p><strong></strong><a href="https://blog.whitehatsec.com/wp-content/uploads/block-all-plugins.png"><img class="alignright size-medium wp-image-1086" src="https://blog.whitehatsec.com/wp-content/uploads/block-all-plugins-300x92.png" alt="" width="300" height="92" /></a>As mentioned earlier, malware exploits are well-known for targeting Web browser plug-ins/extensions such as Flash, Java, Quicktime, and others that auto-execute by default when called by a website. Theoretically, if extensions did not auto-execute, extensions could also not be auto-exploited. To make this theory a reality, in Chrome you can disable the auto-execution of plug-ins.</p><ul><li>Wrench &gt; Preferences</li><li>Under the Hood &gt; Privacy</li><li>Click the “Content Settings&#8230;” button</li><li>Scroll down to “Plug-ins” and select “Block all.”</li></ul><p>Now for Flash, Java, or Quicktime, etc files to play, a user must specifically allow it with additional clicks.</p><p>Normally, extension-based exploits that lead to malware are embedded invisibly so their victim doesn’t see them, especially in malvertisements, which means there is little reason to click to allow them to play. This also means if there is a movie on the screen, or something else that you really want to see, it should be safe enough to allow &#8212; but not always. So, something malicious might still find a way to load and another layer of defense is necessary.</p><p>&nbsp;</p><h3><strong>4) Software Security &amp; Auto / Silent  Patching</strong></h3><p><strong></strong>Google (maker of Chrome), and Adobe (maker of Flash) have invested extraordinary amounts of resources to improve the security quality of the software they ship. Despite their best efforts, software flaws will remain, often found by outsiders, and their products will need to be patched frequently. Patching frequency leads to patch fatigue and without help, every user falls behind eventually.</p><p>To help, Google and Adobe ship with an integrated auto and/or silent update feature for their software. Chrome and Flash regularly check on their own accord if they need to be patched so users don’t have to remember. Doing so has proved measurably effective in keeping users up-to-date on their patches and by extension, secure. However, it is possible for attackers to slip an exploit within the window of time before a would-be victim patches, or they may leverage a zero-day exploit for which no patch exists. This brings us to our last layer of defense-in-depth.</p><p>&nbsp;</p><h3><strong>5) Sandbox</strong></h3><p><strong></strong>A sandbox is a software security wrapper that encompasses both Chrome and the Flash plug-in in a highly-restricted, low-privilege environment. Java and Quicktime do not have a sandbox, but they should. Firefox is working on theirs. Should an attacker leverage an unpatched exploit, or one for where no patch exists, they’ll need another exploit that allows them to breach the sandbox. This means the <a href="http://jeremiahgrossman.blogspot.com/2010/12/sandboxing-welcome-to-dawn-of-two.htmlhttp://jeremiahgrossman.blogspot.com/2010/12/sandboxing-welcome-to-dawn-of-two.html">attacker will need two exploits instead of just one</a>. This is another significant hurdle to overcome because with present security offense knowledge, sandboxes are notoriously difficult to escape.<a href="https://blog.whitehatsec.com/wp-content/uploads/chrome-privacy.png"><br /> </a></p><p>&nbsp;</p><p><strong>For an attacker to succeed in infecting a users PC with malware via the Chrome browser, they’ll have to somehow overcome five layers of Defense-in-Depth&#8230;</strong></p><p>First, the attacker must keep their malware off black-listed sites or have the malware in a location attractive enough where the victim is convinced to manually ignore all the big red warning signs.</p><p>Second, upon landing on the infected Web page the malware must NOT come from a well-known advertising network, but if so, the victim must be enticed to specifically allow the ad to load.</p><p>Third, should the malware try to exploit an extension, the victim must manually allow the extension to load, and the visible content must be attractive enough to convince them to do so.</p><p>Fourth, the attacker’s exploit must be newer or faster than Chrome and Adobe’s patch management system, or they’ll need to use a zero-day vulnerability.</p><p>Lastly, that attacker will need to exploit another vulnerability to escape the sandbox. Then, and only then, after bypassing all five layers of Defense-in-Depth will an attacker be able to infect a user’s PC with malware.</p><p>Collectively, when considering all these layers, Chrome users should be able to click on anything on a Web page that they want, which is the nature of the Web, and not become infected with malware. Of course there are several more speed bumps and layers to be added with other configuration settings and add-ons, but with these five, everyone can do it easily.</p><p>&nbsp;</p><p><span style="color: #800000"><em><strong>So, block all extensions and install ad blocking software. Happy clicking!</strong></em></span></p> <img src="http://feeds.feedburner.com/~r/WhitehatSecurityBlog/~4/cZcPu5_7wiE" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>https://blog.whitehatsec.com/web-browser-defense-in-depth-3-layers-is-good-5-is-better/feed/</wfw:commentRss> <slash:comments>1</slash:comments> <feedburner:origLink>https://blog.whitehatsec.com/web-browser-defense-in-depth-3-layers-is-good-5-is-better/</feedburner:origLink></item> <item><title>A Single-Site Browser’s impact on XSS, CSRF, and Clickjacking</title><link>http://feedproxy.google.com/~r/WhitehatSecurityBlog/~3/id4jVV6BnEo/</link> <comments>https://blog.whitehatsec.com/a-single-site-browsers-impact-on-xss-csrf-and-clickjacking/#comments</comments> <pubDate>Wed, 08 Feb 2012 20:53:35 +0000</pubDate> <dc:creator>Jeremiah Grossman</dc:creator> <category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">https://blog.whitehatsec.com/?p=1061</guid> <description><![CDATA[A Single-Site Browser (SSB) is a highly restricted Web browser only capable of connecting to a single website. A “website” can be defined as a white-listed collection of one or more hostnames, IP addresses, ports, and protocols. For example, the SSB may only connect to Yahoo Mail “*.yahoo.com”, Facebook “https://www.facebook.com,” or Bank of America “https://www.bankofamerica.com/” [...]]]></description> <content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"> <a href="http://api.tweetmeme.com/share?url=https%3A%2F%2Fblog.whitehatsec.com%2Fa-single-site-browsers-impact-on-xss-csrf-and-clickjacking%2F"><br /> <img src="http://api.tweetmeme.com/imagebutton.gif?url=https%3A%2F%2Fblog.whitehatsec.com%2Fa-single-site-browsers-impact-on-xss-csrf-and-clickjacking%2F&amp;source=whitehatsec&amp;style=normal&amp;service=bit.ly&amp;hashtags=%23appsec+%23in&amp;b=2" height="61" width="50" /><br /> </a></div><p>A <a href="http://en.wikipedia.org/wiki/Site-specific_browser">Single-Site Browser (SSB)</a> is a highly restricted Web browser only capable of connecting to a single website. A “website” can be defined as a white-listed collection of one or more hostnames, IP addresses, ports, and protocols. For example, the SSB may only connect to Yahoo Mail “*.yahoo.com”, Facebook “https://www.facebook.com,” or Bank of America “https://www.bankofamerica.com/” and nothing else. In addition to these hostnames, an SSB would likely also need to have entries for off-domain content delivery networks and any required third-party Web widgets, but you get the idea. With a Yahoo Mail SSB you could not visit Facebook and a Facebook SSB could not visit Yahoo Mail.</p><p>Practically no one in the marketplace offers SSBs, you have to build them yourself. When you think about it though, an SSB is functionally similar to a mobile application often provided by service providers very much like these. Often enough, a mobile app is basically a browser without a location bar, rendering a stripped down HTML/Javascript version of their website. SSBs are also very interesting from a security perspective as they have a profound impact on Cross-Site Scripting (XSS), Cross-Site Request Forgery (CSRF), and Clickjacking attacks.</p><p>Hypothetically, let’s say I’m an average online user. My “important” online accounts are Yahoo Mail (email), Facebook (social network), and Bank of America (bank). These are the online accounts I REALLY don’t want hacked. I’m disciplined to only use these services, and more importantly, log-in to them with their respective SSB. All my other promiscuous Web surfing is conducted with a general purpose Web browser like Chrome, Firefox, and Internet Explorer.</p><p>Next, let’s consider a common attack flow for XSS. Assume I’m logged-into Twitter’s website with Chrome, and I click on a link from someone I follow &#8212; you know one of those shortened link things that are impossible to know if they’re safe. That link is a disguised (reflected) XSS attack targeting Yahoo Mail, Facebook, or Bank of America, aka the accounts I care about. If the XSS vulnerability is located on an authenticated section of the website, more than likely, I’ll get redirected and asked to log-in. Obviously I’ll know not to enter my username and password because that is only for that websites SSB. So, I’m safe and not auto-hacked.</p><p>If the vulnerability does NOT require authentication, I’ll get XSS’ed. While the attacker has a control over my browser, at least temporarily, he can’t steal my authenticated session cookies because they don’t exist on this browser. Unless I break my rule of logging-in without my SSB my “important” accounts remain safe.</p><p>What about CSRF? While using a general purpose Chrome browser I click on some random link, could be on a blog post, message board, or news story. This link sends my browser to a malicious website that attempts to CSRF me on Yahoo Mail, Facebook, or Bank of America. Chrome can always be forced to send forged HTTP request to whatever target website, the nature of CSRF, but since I’m not authenticated nothing will happen that will compromise or even adversely affect my “important” accounts. The exact same is true for a Clickjacking attack. Any XSS, CSRF, or Clickjacking payload a bad guy chooses to deploy is limited to unathenticated attacks, which can still be damaging, but the accounts I care about remain safe.</p><p>Now let’s assume I’m operating within an SSB on Yahoo Mail, a website that consumes and redistributes user-supplied content in the form of email. User-supplied content, email, could include some form of HTML/Javascript. Should that content execute Javacript inside the SSB where I’m logged-in to Yahoo, technically a persistent XSS vulnerability, the bad guy can do some real damage. The security benefits of an SSB in this context with respect to XSS are more limited. Technically the XSS payload can do anything I can do (ie read, send, delete email). Data exfiltration, such as stealing session cookies which can lead to account compromise, may also take place via the same mechanisms (email). What the attacker can’t do is chain multi-site XSS attacks.</p><p>Keep in mind, though, that allowing users to send HTML/Javascript content to each other is an inherently dangerous feature to begin with and fortunately it is not all that common on the highly trafficked websites outside of WebMail providers. For example, Facebook and Bank of America do not offer this functionality. As a result, persistent XSS vulnerabilities like the one previously described are rare.</p><p>Another beneficial aspect of SSBs is that if I click on an off-website link, it’ll simply open a new tab in my default general purpose browser.  Any XSS, CSRF, or Clickjacking attack an off-website link tries is now separated from my SSB. That’s huge! However, if the link is on-website then I have to be careful as it could be a non-persistent XSS attack and do everything the early mentioned persistent XSS vulnerability could. A possible exception being calling in additional Javascript payload.</p><p>When everything is considered, the only time I can get my accounts compromised by XSS, CSRF, or Clickjacking is while I’m within the SSB. This dramatically cuts down my risk profile when traversing the Web. Suddenly general purpose browsing with Chrome, Firefox, and Internet Explorer become safer because sessions are separated by desktop application boundaries.</p> <img src="http://feeds.feedburner.com/~r/WhitehatSecurityBlog/~4/id4jVV6BnEo" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>https://blog.whitehatsec.com/a-single-site-browsers-impact-on-xss-csrf-and-clickjacking/feed/</wfw:commentRss> <slash:comments>3</slash:comments> <feedburner:origLink>https://blog.whitehatsec.com/a-single-site-browsers-impact-on-xss-csrf-and-clickjacking/</feedburner:origLink></item> <item><title>In Your Oracle: The Beginning</title><link>http://feedproxy.google.com/~r/WhitehatSecurityBlog/~3/qYQnutC0K4Y/</link> <comments>https://blog.whitehatsec.com/in-your-oracle-the-beginning/#comments</comments> <pubDate>Mon, 06 Feb 2012 17:00:20 +0000</pubDate> <dc:creator>Micheal Cottingham</dc:creator> <category><![CDATA[True Stories of the TRC]]></category> <category><![CDATA[Web Application Security]]></category><guid isPermaLink="false">https://blog.whitehatsec.com/?p=1011</guid> <description><![CDATA[In the TRC, we cover the WASC in our search for vulnerabilities on the web. Among this large list of vulnerabilities is SQL injection. The TRC looks for error-based and blind SQL, and does various tests to verify the vulnerabilities found by both scanning and performing PE-level business logic assessments to create the Sentinel service. Recently, [...]]]></description> <content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"> <a href="http://api.tweetmeme.com/share?url=https%3A%2F%2Fblog.whitehatsec.com%2Fin-your-oracle-the-beginning%2F"><br /> <img src="http://api.tweetmeme.com/imagebutton.gif?url=https%3A%2F%2Fblog.whitehatsec.com%2Fin-your-oracle-the-beginning%2F&amp;source=whitehatsec&amp;style=normal&amp;service=bit.ly&amp;hashtags=%23appsec+%23in&amp;b=2" height="61" width="50" /><br /> </a></div><p>In the TRC, we cover the <a href="http://projects.webappsec.org/w/page/13246978/Threat%20Classification">WASC</a> in our search for vulnerabilities on the web. Among this large list of vulnerabilities is SQL injection. The TRC looks for error-based and blind SQL, and does various tests to verify the vulnerabilities found by both scanning and performing PE-level business logic assessments to create the Sentinel service.</p><p>Recently, <a title="Justin Barron" href="https://blog.whitehatsec.com/author/justinbarron/" target="_blank">Justin</a> and I received a request from a client to dig deeper and show what could be done with an SQL injection vulnerability. This sort of thing isn&#8217;t uncommon, because clients often may want to show developers why a particular vulnerability is a problem, or to explain to upper management why more resources are needed to fix a particular vulnerability in an application.</p><p>Justin and I wanted to have some fun with this request. The vulnerability was a blind SQL injection that was particularly annoying to verify due to its behavior and various blacklisting already done. When I discovered and verified the vulnerability, I was able to fingerprint the database server as Oracle, based on the behavior of the SQL injection. Once we established a true/false/error condition that we could rely on, we started building out our exploits. First, we grabbed the database username, then we grabbed the database name. Next, we decided to take our investigation a step further and use some of Oracle&#8217;s network capabilities.</p><p>Programmatically, we were able to</p><p>&nbsp;</p><p>&nbsp;</p><p>You are probably wondering why I left that incomplete. Stick around for Part Two of this post to learn more about what Justin and I did next.</p> <img src="http://feeds.feedburner.com/~r/WhitehatSecurityBlog/~4/qYQnutC0K4Y" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>https://blog.whitehatsec.com/in-your-oracle-the-beginning/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <feedburner:origLink>https://blog.whitehatsec.com/in-your-oracle-the-beginning/</feedburner:origLink></item> <item><title>Who Would Want to Take Down the Internet?</title><link>http://feedproxy.google.com/~r/WhitehatSecurityBlog/~3/-ax1TUCv_ws/</link> <comments>https://blog.whitehatsec.com/who-would-want-to-take-down-the-internet/#comments</comments> <pubDate>Tue, 24 Jan 2012 16:08:08 +0000</pubDate> <dc:creator>Jeremiah Grossman</dc:creator> <category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">https://blog.whitehatsec.com/?p=1028</guid> <description><![CDATA[This is a question I often ask in response to those sounding the alarm that &#8220;hackers&#8221; can take down the Internet and that we all should be very worried. This is a warning I’ve seen consistently for years ever since The L0pht told the U.S. Congress they could take down the Internet in about 30 minutes. [...]]]></description> <content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"> <a href="http://api.tweetmeme.com/share?url=https%3A%2F%2Fblog.whitehatsec.com%2Fwho-would-want-to-take-down-the-internet%2F"><br /> <img src="http://api.tweetmeme.com/imagebutton.gif?url=https%3A%2F%2Fblog.whitehatsec.com%2Fwho-would-want-to-take-down-the-internet%2F&amp;source=whitehatsec&amp;style=normal&amp;service=bit.ly&amp;hashtags=%23appsec+%23in&amp;b=2" height="61" width="50" /><br /> </a></div><p>This is a question I often ask in response to those sounding the alarm that &#8220;hackers&#8221; can <strong>take down the Internet</strong> and that we all should be very worried. This is a warning I’ve seen consistently for years ever since <a href="http://www.pcworld.com/businesscenter/article/168979/hacker_group_l0pht_makes_a_comeback_of_sorts.html">The L0pht told the U.S. Congress they could take down the Internet in about 30 minutes</a>. I’m not about to disagree with The L0pht’s claims, maybe they and others can, but more importantly I fail to see the motivation for why they, or anyone else fitting their profile, would want to. Interestingly enough, there is only one particular class of attacker where it would make sense to take down the Internet.</p><p>To break this down we’ll use Mikko Hypponen&#8217;s TED talk as a framework. Mikko did a fine job categorizing and articulating the <a href="http://www.youtube.com/watch?v=VM7HQ_zbdIw">three main types of online attackers</a>. They are cyber-criminals, hacktivists, and national-state. While the hacking techniques they use might be very similar to each others, each group has a unique set of motivations that drive their actions.</p><p>Hacktivists, such as Anonymous, LulzSec and others are among those who leverage hacking skills as a means to promote a social or political message &#8212; a form of protest if you will. A hacktivist might deface websites, publish stolen sensitive data, perform targeted Denial of Service attacks, but by enlarge their agenda does lead them to take down the Internet. Quite the contrary. If hacktivists disrupted the Internet, they also couldn’t spread their message, nor could others receive it and join the protest. Not to mention hacktivists are notoriously heavy supporters of the Internet, a free and open Internet.</p><p>Cyber-criminals, all they want is to make money. As much money as they can get their hands on. Cyber-criminals will hack their way into online accounts, directly or via compromised end-user PCs, and steal whatever money and data of value there is. Cyber-criminals also may Denial of Service a website to extract some extortion money, but just like the hacktivists, taking down the Internet would only obstruct their ability to profit. If the Internet went down, it would actually cost them money as they would not be able sell access to their botnet farms.</p><p>This leaves us with national-state, a type of online attacker that is government backed, whose mission is the theft of intellectual property, intelligence gathering, and surreptitious command-and-control over as many critical systems as possible. National-state hackers would also not seem to want to take down the Internet because it would directly prevent them from continuing their mission, especially when their targets are other countries. They’d lose their surveillance capabilities. However, there are exceptions here, two very particular scenarios where national-state and taking down the Internet makes sense.</p><p>In the first scenario, a national-state attacker would take down an enemy countries Internet access as part of an active and kinetic military conflict. The Russia v. Georgia conflict back in 2008 serves as a good example. <a href="http://www.telegraph.co.uk/news/worldnews/europe/georgia/2539157/Georgia-Russia-conducting-cyber-war.html">Russia was accused of attacking Georgian government websites in a cyber war to accompany their military bombardment.</a></p><p>In the second scenario, when national-state enemy is domestic in origin (i.e. the people), then taking down or severely limiting Internet access for the entire country can be used to suppress citizen dissent. There are reports of this having occurred in <a href="http://www.huffingtonpost.com/2011/01/27/egypt-internet-goes-down-_n_815156.html">Egypt</a> and <a href="http://news.yahoo.com/iran-cracks-down-internet-parliamentary-elections-near-131351662.html">Iran</a> &#8212; massive surveillance, disruption of communication, and censorship.</p><p>So when you get right down to it, the only attacker with motivation to &#8220;take down the Internet&#8221; is government backed. Then in one of the two scenarios, if your Internet goes down your government will be responsible. For myself, as one always considering the most pressing day-to-day threats to Internet security, I’m less concerned if the Internet can be taken down, but what happens when it stays up.</p> <img src="http://feeds.feedburner.com/~r/WhitehatSecurityBlog/~4/-ax1TUCv_ws" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>https://blog.whitehatsec.com/who-would-want-to-take-down-the-internet/feed/</wfw:commentRss> <slash:comments>4</slash:comments> <feedburner:origLink>https://blog.whitehatsec.com/who-would-want-to-take-down-the-internet/</feedburner:origLink></item> <item><title>Who are WhiteHat Security’s competitors? — It’s not who you think</title><link>http://feedproxy.google.com/~r/WhitehatSecurityBlog/~3/WwyLYbJ2E6A/</link> <comments>https://blog.whitehatsec.com/who-are-whitehat-securits-competitors-its-not-who-you-think/#comments</comments> <pubDate>Tue, 03 Jan 2012 20:57:17 +0000</pubDate> <dc:creator>Jeremiah Grossman</dc:creator> <category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">https://blog.whitehatsec.com/?p=1000</guid> <description><![CDATA[A significant portion of my travel schedule is dedicated to meeting with InfoSec teams at organizations large and small, mostly asking questions about the current status of their application security programs. From the interaction I learn A LOT about today’s most pressing challenges. Such as what strategies [really] work, which [really] don’t, and what direction [...]]]></description> <content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"> <a href="http://api.tweetmeme.com/share?url=https%3A%2F%2Fblog.whitehatsec.com%2Fwho-are-whitehat-securits-competitors-its-not-who-you-think%2F"><br /> <img src="http://api.tweetmeme.com/imagebutton.gif?url=https%3A%2F%2Fblog.whitehatsec.com%2Fwho-are-whitehat-securits-competitors-its-not-who-you-think%2F&amp;source=whitehatsec&amp;style=normal&amp;service=bit.ly&amp;hashtags=%23appsec+%23in&amp;b=2" height="61" width="50" /><br /> </a></div><p>A significant portion of my travel schedule is dedicated to meeting with InfoSec teams at organizations large and small, mostly asking questions about the current status of their application security programs. From the interaction I learn A LOT about today’s most pressing challenges. Such as what strategies [really] work, which [really] don’t, and what direction things are heading. Budgetary resources, or the lack thereof, is easily the most commonly cited obstacle to progress, second only maybe to management &amp; developer awareness, which is probably the root cause.</p><p>During the same discussions I’m often asked by prospective customers, industry analysts, and the media too, &#8220;Who does <a href="https://www.whitehatsec.com/">WhiteHat Security</a> compete with?&#8221; Sometimes the question is asked to better understand how we’re different or what problems we help solve. Other times the question is about getting a clearer picture of where WhiteHat Security fits in the market. I typically answer with the names of the usual suspects, how they are either a desktop scanner or a billable hour consulting shop, while we’re a better, more efficient, scalable option as an on-demand subscription service. The more I repeat this, though, and the more of the aforementioned discussions I participate in, the more I find this answer wholly superficial and inadequate.</p><p>Here’s the thing. By the time serious application security planning takes place, when it comes time for organizations to invest real $ in executing a strategy, 90% or more of the InfoSec budget has normally already been spent or spoken for &#8212; spent protecting the network and hosts. Important layers such, but it also  leaves just a tiny fraction of the pie available to address the biggest and most important problem the entire security industry is facing. <a href="http://jeremiahgrossman.blogspot.com/2011/01/application-security-spending-conundrum.html">Crumbs to protect the area of IT where the business invests the most money creating &#8212; software</a>. Let me put this another way. <strong>Every firm, every person in the application security field, more directly competes with firewalls and anti-virus products.</strong></p><p>The big security companies out there, the guys who peddle these products to those who purchase them out of habit or compliance mandate, also simply don&#8217;t &#8220;get&#8221; application security, nor do they care to. This is understandable since the overall application market  is still too small for the mega-corps to care about. That’s just basic business economics. If one of their customers wants to invest in application security, to them that probably just means swapping dollars away from their firewall &amp; AV cash cow, and zero net new revenue to them. Yet they’ll be happy to sell you an cheap widget, that is &#8220;better than nothing,&#8221; and/or toss it in as part of larger &#8220;enterprise&#8221; sale.</p><p>Organizations are starting to figure this game out though. They are asking why their firewall, anti-virus, and intrusion detection systesm didn’t protect their multi-million, multi-billion dollar Web-based business from getting hacked &#8212; for the the money or the lulz. With every breach headline, more are more are to realizing how little of what they spent 90% of the budget on is designed to do anything of the kind. This is precisely why I&#8217;m optimistic about change. 2012 is going to be an important year, a year where application security  became too painful to ignore.</p> <img src="http://feeds.feedburner.com/~r/WhitehatSecurityBlog/~4/WwyLYbJ2E6A" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>https://blog.whitehatsec.com/who-are-whitehat-securits-competitors-its-not-who-you-think/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <feedburner:origLink>https://blog.whitehatsec.com/who-are-whitehat-securits-competitors-its-not-who-you-think/</feedburner:origLink></item> <item><title>Cross-Site Request…Framing?</title><link>http://feedproxy.google.com/~r/WhitehatSecurityBlog/~3/VyKvAqnJ1A0/</link> <comments>https://blog.whitehatsec.com/cross-site-request-framing/#comments</comments> <pubDate>Fri, 23 Dec 2011 16:00:36 +0000</pubDate> <dc:creator>Justin Barron</dc:creator> <category><![CDATA[Web Application Security]]></category> <category><![CDATA[Attack]]></category> <category><![CDATA[cross site request forgery]]></category> <category><![CDATA[csrf]]></category> <category><![CDATA[security]]></category> <category><![CDATA[web application security]]></category> <category><![CDATA[xsrf]]></category><guid isPermaLink="false">https://blog.whitehatsec.com/?p=895</guid> <description><![CDATA[I admit, the title of this post is deliberately misleading. It&#8217;s really about Cross-Site Request Forgery (CSRF), but it does involve framing − just not the kind that you might be expecting. Before jumping into the meat of things, let&#8217;s start off with an appetizer: What is Cross-Site Request Forgery? Rather than give you the [...]]]></description> <content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"> <a href="http://api.tweetmeme.com/share?url=https%3A%2F%2Fblog.whitehatsec.com%2Fcross-site-request-framing%2F"><br /> <img src="http://api.tweetmeme.com/imagebutton.gif?url=https%3A%2F%2Fblog.whitehatsec.com%2Fcross-site-request-framing%2F&amp;source=whitehatsec&amp;style=normal&amp;service=bit.ly&amp;hashtags=Attack,cross+site+request+forgery,csrf,security,web+application+security,xsrf&amp;b=2" height="61" width="50" /><br /> </a></div><p>I admit, the title of this post is deliberately misleading. It&#8217;s really about Cross-Site Request Forgery (CSRF), but it does involve framing − just not the kind that you might be expecting.</p><p>Before jumping into the meat of things, let&#8217;s start off with an appetizer: What is Cross-Site Request Forgery? Rather than give you the &#8220;textbook&#8221; definition, I&#8217;ll just dive right into a real-world example.</p><p>Let&#8217;s say you visit http://www.news.test, and there is a logo on the homepage. Let&#8217;s also say that the logo is hosted at this address: http://images.example.com/newsLogo.jpg</p><p>When your browser loads the page at http://www.news.test, it&#8217;s likely you&#8217;ll see an image tag similar to the following: &lt;img src=&#8221;http://images.example.com/newsLogo.jpg&#8221; /&gt;. When your browser renders that image, it must first place a request to images.example.com in order to retrieve the newsLogo.jpg resource. There&#8217;s certainly no harm in this, but for the sake of argument, we can confidently conclude that the www.news.test website forced your browser to place a request to images.example.com without your knowledge or explicit consent. Right?</p><p>Now, let&#8217;s suppose you visit http://www.news.test again, but this time there is an image tag that looks like this: &lt;img src=&#8221;http://yourbanksite.example.org/transferMoney.php?toEmail=attacker@attacker.example.net&amp;amount=99999.00&#8243; /&gt;. As in the example above, when your browser loads the page at www.news.test and attempts to render the image tag, it is going to place a request to http://yourbanksite.example.org/transferMoney.php?toEmail=attacker@attacker.example.net&amp;amount=99999.00. Your browser will place the malicious request without your knowledge, and if you are authenticated to yourbanksite.example.org when you visit www.news.test − assuming the yourbanksite.example.org web application is not protecting against a CSRF attack − your life savings and kid&#8217;s college fund will be gone in a flash.</p><p>This kind of attack succeeds because of a flaw in how the Internet inherently works. When your browser places a request to another site, any cookies that exist for that site are sent along with that request. Since authentication is typically handled through cookies, and your cookies are sent along with the malicious yourbanksite.example.org request, the yourbanksite.example.org application is going to see the request, recognize it as coming from an authenticated user (you), and thus honor/process the request.</p><p>There are more things to consider in this type of attack, but for the scope of this post, that&#8217;s all you really need to know now. While a CSRF attack is typically used to exploit an application that the victim is authenticated to, for the sake of what I&#8217;ll be discussing below, I&#8217;m more interested in the fact that a CSRF attack can be leveraged to force a victim&#8217;s browser to place arbitrary requests.</p><p>For additional reading material on CSRF, see <a title="WhiteHat Security’s Approach to Detecting Cross-Site Request Forgery (CSRF)" href="https://blog.whitehatsec.com/whitehat-security%E2%80%99s-approach-to-detecting-cross-site-request-forgery-csrf/" target="_blank">this post on WhiteHat&#8217;s stance on CSRF</a>, and <a title="Cross Site Request Forgery" href="http://projects.webappsec.org/w/page/13246919/Cross-Site-Request-Forgery" target="_blank">the Web Application Security Consortium&#8217;s page on CSRF</a>.</p><p>Ok&#8230; appetizer digested? Now for the main course&#8230;</p><p>Information is everything. It&#8217;s power. Privacy within Web applications, especially social media applications, is a war zone because information is such a profitable and appealing target. The smallest pieces of information − or *mis*information − in the wrong hands can cost you your identity, your job, or even your freedom.</p><p>Wherever there is a massive data flow of information, there is inevitably going to be monitoring and tracking. From advertising networks, to law enforcement organizations, to intelligence agencies, there is no shortage of people who are interested in obtaining information about you. I&#8217;m not just talking about your personal information, such as name, address, and phone number; I&#8217;m also referring to your browsing history, your social network engagements, and the kind of content you publish to, and consume from, &#8220;the cloud&#8221;.</p><p>Imagine your spouse or your boss opening up your browser&#8217;s history. Would you be concerned about what he/she sees?  Or perhaps the FBI confiscates your computer without warning.  Would you be worried about what they&#8217;d find?  Hopefully, the answer to both of those questions is &#8220;No&#8221;. But what if there was enough incriminating browser activity that you lose your job? Or a warrant is issued for your arrest? Or you even get labeled an &#8220;enemy combatant&#8221;?</p><p>Sounds kind of absurd, right? Well, how else would you explain your Google searches for &#8220;homemade explosives&#8221; and &#8220;President Obama upcoming trips&#8221;? Or your visits to underground child sex trafficking sites? Or your posts made to pro-Al Qaeda message forums? It would seem like you&#8217;ve been up to a whole lot of no good!</p><p>You may protest, &#8220;I would never do such things!&#8221; My point is that through the use of Cross-Site Request Forgery, an attacker can populate <strong>your</strong> browser&#8217;s history with all kinds of unpleasant Web traffic. Not to mention that the requests would actually be originating from, and traveling through, your home or office network. In fact, if you are lured to a malicious page and stay on it for more than a brief period of time (perhaps to watch an interesting 10-minute video), an attacker can simulate real, human behavior by spacing out the incriminating requests so the traffic resembles that of someone actually clicking on links and spending time on questionable pages (rather than have all malicious requests placed in rapid succession).</p><p>&#8220;But wait,&#8221; you say, &#8220;isn&#8217;t there a way to distinguish CSRF traffic from legitimate user traffic?&#8221; Well, the malicious requests will likely have a &#8216;Referer&#8217; header set to the URL of the page where the attacks originated from, such as: &#8220;Referer: http://attacker.example.com/csrfattack.php&#8221;; however, consider the following:</p><p><strong>1.</strong> The &#8216;Referer&#8217; header is not tracked in your browser&#8217;s history, so that won&#8217;t help you in court.<br /> <strong>2.</strong> Although I&#8217;d need to actually research how much detail is tracked by ISPs, government agencies, etc., I suspect that the &#8216;Referer&#8217; is among the lesser-tracked items.  Besides, even if &#8216;Referer&#8217; is tracked, an investigation would still be required to determine that the traffic was spoofed, and that&#8217;s a headache all on its own.<br /> <strong>3.</strong> It may be possible to spoof the &#8216;Referer&#8217; header by exploiting flaws in common technologies such as Java or Flash.<br /> <strong>4. </strong>It is trivial to strip the &#8216;Referer&#8217; altogether (kudos to <a title="Jeremiah Grossman" href="https://blog.whitehatsec.com/author/ut6gotte/">Jeremiah Grossman</a> for the tip).</p><p>The bottom line is, falling victim to this kind of CSRF attack can, at the very least, be an enormous inconvenience and a hassle to clear up. At its worst, being framed in this way − even if you&#8217;re eventually shown to be innocent − could destroy your reputation, your marriage, your career. False accusations can tarnish even the most innocent person&#8217;s reputation, especially if that person is a prominent figure and the media gets involved.</p><p>We live in an amazing age where information − and especially &#8220;news&#8221; − spreads like wildfire. With social media apps connecting billions of people worldwide − I&#8217;m thinking of Twitter in particular − breaking news can hit your cell phone before it even crosses a news anchor&#8217;s desk. If a celebrity, politician, or other public figure were to be targeted by this type of CSRF attack, his or her life could become exceedingly complicated − very quickly.</p><p>Consider the upcoming 2012 election: Such an attack could be just what a candidate needs to derail an opponent&#8217;s campaign progress. By the time the victim could prove the allegations false, the election could be long over!</p><p>Our world is rapidly changing, and each new generation becomes even more submerged in the technological realm than the one before. The more immersed in technology we become as a society, the more sophisticated and damaging attacks on our privacy and personal information will become. For example, it&#8217;s only a matter of time before <a title="The Ubiquitousness of Web apps and the Browsers Who Love Them" href="https://blog.whitehatsec.com/the-ubiquitousness-of-web-apps-and-the-browsers-who-love-them/" target="_blank">hackers start getting into your fridge</a>.</p><p>How long have you been reading this post? Five, maybe ten minutes? Did you switch over to another tab for a while half-way through? Or maybe you got up for a bit to get some food? Better check your browser history&#8230; you never know when − or from where − a CSRF attack might originate&#8230;</p> <img src="http://feeds.feedburner.com/~r/WhitehatSecurityBlog/~4/VyKvAqnJ1A0" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>https://blog.whitehatsec.com/cross-site-request-framing/feed/</wfw:commentRss> <slash:comments>4</slash:comments> <feedburner:origLink>https://blog.whitehatsec.com/cross-site-request-framing/</feedburner:origLink></item> <item><title>sIFR3 Remote Code Execution</title><link>http://feedproxy.google.com/~r/WhitehatSecurityBlog/~3/3PqUTFsbd2M/</link> <comments>https://blog.whitehatsec.com/sifr3-remote-code-execution/#comments</comments> <pubDate>Wed, 14 Dec 2011 21:38:49 +0000</pubDate> <dc:creator>Jason Calvert</dc:creator> <category><![CDATA[True Stories of the TRC]]></category> <category><![CDATA[Web Application Security]]></category> <category><![CDATA[Content Spoofing]]></category> <category><![CDATA[CVE 2011-3641]]></category> <category><![CDATA[Flash]]></category> <category><![CDATA[JavaScript]]></category> <category><![CDATA[patch]]></category> <category><![CDATA[remote code execution]]></category> <category><![CDATA[scalable Inman Flash Replacement]]></category> <category><![CDATA[sifr3]]></category> <category><![CDATA[XSS]]></category><guid isPermaLink="false">https://blog.whitehatsec.com/?p=629</guid> <description><![CDATA[WhiteHat Security Vulnerability Advisory Affected Product:   scalable Inman Flash Replacement (sIFR) version 3 Vulnerability:   Cross Site Scripting CVE ID:   CVE-2011-3641 Affected Versions:   sIFR3 r436 and prior Vendor Homepage:   http://wiki.novemberborn.net/sifr3/ Description:   sIFR3 allows for the use of non-free fonts within a web application via Adobe Flash plugin. The sIFR3 module interfaces with an external JS [...]]]></description> <content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"> <a href="http://api.tweetmeme.com/share?url=https%3A%2F%2Fblog.whitehatsec.com%2Fsifr3-remote-code-execution%2F"><br /> <img src="http://api.tweetmeme.com/imagebutton.gif?url=https%3A%2F%2Fblog.whitehatsec.com%2Fsifr3-remote-code-execution%2F&amp;source=whitehatsec&amp;style=normal&amp;service=bit.ly&amp;hashtags=Content+Spoofing,CVE+2011-3641,Flash,JavaScript,patch,remote+code+execution,scalable+Inman+Flash+Replacement,sifr3,XSS&amp;b=2" height="61" width="50" /><br /> </a></div><p style="text-align: center;"><strong>WhiteHat Security Vulnerability Advisory</strong></p><p><strong>Affected Product:</strong>   scalable Inman Flash Replacement (sIFR) version 3</p><p><strong>Vulnerability:</strong>   Cross Site Scripting</p><p><strong>CVE ID:</strong>   CVE-2011-<span style="font-family: Calibri,Verdana,Helvetica,Arial;">3641</span></p><p><strong>Affected Versions:</strong>   sIFR3 r436 and prior</p><p><strong>Vendor Homepage:</strong>   <a title="http://wiki.novemberborn.net/sifr3/" href="http://wiki.novemberborn.net/sifr3/" target="_blank">http://wiki.novemberborn.net/sifr3/</a></p><p><strong>Description:</strong>   sIFR3 allows for the use of non-free fonts within a web application via Adobe Flash plugin. The sIFR3 module interfaces with an external JS file and utilizes the parameter &#8220;version&#8221; to ensure the two files are compatible. The textField that is displayed upon invalid input in the &#8220;version&#8221; parameter supports limited HTML rendering and allows for remote code execution. An attacker can render arbitrary images that execute malicious javascript and in Adobe Flash player 10.3 and prior include a large break space to remove the encapsulating error message.</p><p><strong>Proof of Concept:</strong></p><p><code>/cochin.swf?version=&lt;a href="javascript:confirm(document.cookie)"&gt;&lt;img src="Attacker_Image.jpg"/&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;</code></p><p><strong>Fix:   </strong></p><p><strong></strong>Recompile any affected modules with the latest release (r437) which can be obtained from the vendor&#8217;s website: <a title="http://dev.novemberborn.net/sifr3/nightlies/sifr3-r437-CVE-2011-3641.zip" href="http://dev.novemberborn.net/sifr3/nightlies/sifr3-r437-CVE-2011-3641.zip" target="_blank">http://dev.novemberborn.net/sifr3/nightlies/sifr3-r437-CVE-2011-3641.zip</a></p> <img src="http://feeds.feedburner.com/~r/WhitehatSecurityBlog/~4/3PqUTFsbd2M" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>https://blog.whitehatsec.com/sifr3-remote-code-execution/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <feedburner:origLink>https://blog.whitehatsec.com/sifr3-remote-code-execution/</feedburner:origLink></item> </channel> </rss><!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using memcached

Served from: blog.whitehatsec.com @ 2012-02-24 08:23:43 -->

