<?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"?><!--Generated by Squarespace Site Server v5.11.81 (http://www.squarespace.com/) on Tue, 07 Feb 2012 06:42:19 GMT--><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>GDS Blog</title><link>http://blog.gdssecurity.com/labs/</link><description /><lastBuildDate>Mon, 28 Nov 2011 22:51:58 +0000</lastBuildDate><copyright>© 2011 Gotham Digital Science All Rights Reserved</copyright><language>en-US</language><generator>Squarespace Site Server v5.11.81 (http://www.squarespace.com/)</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/GdsSecurityBlog" /><feedburner:info uri="gdssecurityblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><title>SOURCE Barcelona: Rails Slides Posted</title><category>Application Security</category><category>Rails</category><category>SOURCE</category><category>conference</category><dc:creator>Daniel Peláez</dc:creator><pubDate>Fri, 25 Nov 2011 11:28:17 +0000</pubDate><link>http://feedproxy.google.com/~r/GdsSecurityBlog/~3/ZyryYzh5ovg/source-barcelona-rails-slides-posted.html</link><guid isPermaLink="false">936190:11268292:13860345</guid><description>&lt;p&gt;My presentation slides (Security Goodness with Ruby on Rails) from last week's SOURCE Barcelona Conference &lt;a href="http://blog.gdssecurity.com/storage/presentations/SecurityGoodnessWithRoRv2.pdf"&gt;are posted here&lt;/a&gt;. During the talk I spoke about strategies for both auditing and writing more secure applications with this popular framework. I covered a number of different topics including: best practices, security tools and APIs, and how to identify and address the most common vulnerabilities.&lt;/p&gt;&lt;p&gt;Thanks to Stacy and the SOURCE Barcelona Advisory Board for putting on such a great conference. As always, I felt very comfortable there and had a great time. I highly recommend attending SOURCE next year and enjoying Barcelona as well.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=ZyryYzh5ovg:3Md_hJCqwBE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=ZyryYzh5ovg:3Md_hJCqwBE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?i=ZyryYzh5ovg:3Md_hJCqwBE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=ZyryYzh5ovg:3Md_hJCqwBE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><wfw:commentRss>http://blog.gdssecurity.com/labs/rss-comments-entry-13860345.xml</wfw:commentRss><feedburner:origLink>http://blog.gdssecurity.com/labs/2011/11/25/source-barcelona-rails-slides-posted.html</feedburner:origLink></item><item><title>Ekoparty Presentation: Cloud &amp; Control</title><dc:creator>Tom Ritter</dc:creator><pubDate>Mon, 26 Sep 2011 13:15:27 +0000</pubDate><link>http://feedproxy.google.com/~r/GdsSecurityBlog/~3/8vXwWhz3_zk/ekoparty-presentation-cloud-control.html</link><guid isPermaLink="false">936190:11268292:12985144</guid><description>&lt;p&gt;I gave my first presentation at a security conference on Friday, presenting at &lt;a href="http://ekoparty.org"&gt;ekoparty&lt;/a&gt; on some work I did at the beginning of the year on distributing complex tasks to hundreds or thousands of computers. &lt;a href="http://en.wikipedia.org/wiki/SETI@home"&gt;SETI@Home&lt;/a&gt; was the project that pioneered the idea of distributed volunteer computing, and their command &amp;amp; control software evolved into a generic project called &lt;a href="http://en.wikipedia.org/wiki/Berkeley_Open_Infrastructure_for_Network_Computing"&gt;BOINC&lt;/a&gt;.  You can run just about any application in BOINC - whether it's open or closed source, uses GPUs, the network, or even if it's not CPU intensive (like nmapping the internet).&lt;/p&gt;

&lt;p&gt;Setting up a server isn't the most exciting topic to talk about, so I used two examples to illustrate BOINC in my presentation: factoring RSA512 to recover the private key to SSL certificates or PGP keys and cracking passwords. Factoring was a huge success, but cracking didn't work out that well. BOINC was able to distribute the work and crack things really quickly - by splitting up wordlists automatically based on hash functions I was able to scale out to more machines than I think most people are able to... but the problem came from never actually looking at the output. The best crackers, especially in cracking contests, find patterns in the cracked passwords to make mangling rules and masks and crack more passwords. You could still use BOINC as a work distributor to scale out, but you need to be behind the wheel making work units - not use it as a fire-and-forget system.&lt;/p&gt;

&lt;p&gt;Getting applications running in BOINC is a bit of trial and error. If it's an open source application, you have to patch it a little bit and if it's closed source you have to write a job.xml file defining how to run the application. In either case you have to define input and output templates that let BOINC know what files to send with the workunit and to expect the program to produce. And when I was sending a couple hundred MB wordlists and resource files, I wanted to compress them and decompress them on the client, so that added a little bit of work too. To try and make it easier on you, I've released all the scripts, templates, config files, and patches I created while working with BOINC. I've also not just released my slides, but annotated them with links to the reference material for everything mentioned. Everything is up on &lt;a href="http://github.com/GDSSecurity/cloud-and-control"&gt;github&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I've wanted to factor large numbers for a while, and this was actually what got me into this whole mess. I have some (simple) observations about &lt;a href="https://github.com/GDSSecurity/cloud-and-control/tree/master/gnfs-info"&gt;factoring using the General Number Field Sieve&lt;/a&gt;, as well as instructions for how to do it yourself (with or without BOINC).&lt;/p&gt;

&lt;p&gt;I have to thank Leonardo and all the ekoparty organizers for putting on a great conference. They went out of the way to make the international arrivees as comfortable as possible, and even had simultaneous translation from english to spanish &lt;em&gt;and&lt;/em&gt; from spanish to english. Buenos Aires is a wonderful city, and I really recommend you visit!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=8vXwWhz3_zk:vgoTLBCqO_k:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=8vXwWhz3_zk:vgoTLBCqO_k:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?i=8vXwWhz3_zk:vgoTLBCqO_k:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=8vXwWhz3_zk:vgoTLBCqO_k:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><wfw:commentRss>http://blog.gdssecurity.com/labs/rss-comments-entry-12985144.xml</wfw:commentRss><feedburner:origLink>http://blog.gdssecurity.com/labs/2011/9/26/ekoparty-presentation-cloud-control.html</feedburner:origLink></item><item><title>.NET Server.Transfer vs Response.Redirect - Reiterating a Security Warning</title><category>.NET</category><category>Application Security</category><category>Response.Redirect</category><category>Server.Transfer</category><dc:creator>Mark Andrews</dc:creator><pubDate>Fri, 09 Sep 2011 04:17:00 +0000</pubDate><link>http://feedproxy.google.com/~r/GdsSecurityBlog/~3/HOT54vOZr6I/net-servertransfer-vs-responseredirect-reiterating-a-securit.html</link><guid isPermaLink="false">936190:11268292:12634329</guid><description>&lt;p&gt;During several recent .NET (C#) security code review projects, multiple severe authorization bypass vulnerabilities were identified that allowed unprivileged remote users to access any page hosted on the web server, despite not having been provisioned with the appropriate required security access permissions.&amp;nbsp; (Typically an attacker could leverage this type of vulnerability to access application administration functionality, both to obtain access to application data and to consolidate on-going future privileged access for themselves.)&lt;/p&gt;
&lt;p&gt;The primary cause of these vulnerabilities was insecure use of the Server.Transfer method.&amp;nbsp; As we continue to regularly identify and exploit this issue during our security reviews I thought I would write this quick blog in an effort to further raise awareness around this simple yet often overlooked security item.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ultimately, any use of the Server.Transfer method that takes in user controllable input is likely to result in authorization bypass vulnerabilities (amongst other possible security issues).&amp;nbsp; This is a known issue and is captured in the Microsoft Support KB Article ID: 320976 (&lt;a href="http://support.microsoft.com/kb/320976/"&gt;http://support.microsoft.com/kb/320976/&lt;/a&gt;).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The underlying security &amp;ldquo;gotcha&amp;rdquo; that is not well communicated/publicized to developers is that when using the Server.Transfer method, the new page is being retrieved and presented by a separate handler, during which no authorization checks are performed regarding the actual remote user/callers identity.&amp;nbsp; This is very different from the Response.Redirect method which instructs the user&amp;rsquo;s browser to request a different page, and forces a new page request - thus (hopefully) triggering an appropriate authorization check.&lt;/p&gt;
&lt;p&gt;&lt;span class="full-image-block ssNonEditable"&gt;&lt;span&gt;&lt;img style="width: 460px;" src="http://blog.gdssecurity.com/storage/ResponseRedirectv5.png?__SQUARESPACE_CACHEVERSION=1314810329880" alt="" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="full-image-block ssNonEditable"&gt;&lt;span&gt;&lt;img style="width: 460px;" src="http://blog.gdssecurity.com/storage/ServerTransferv5.png?__SQUARESPACE_CACHEVERSION=1314810340186" alt="" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Unfortunately, much of the core standard documentation available to developers makes no mention of this important security factor, including those found on the MSDN site (&lt;a href="http://msdn.microsoft.com/en-us/library/ms525800%28v=vs.90%29.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms525800%28v=vs.90%29.aspx&lt;/a&gt;).&amp;nbsp; In fact, on first glance the documentation on MSDN states that &amp;ldquo;Server.Transfer acts as an efficient replacement for the Response.Redirect method&amp;rdquo; but does not highlight the potential security implications of using this method.&lt;/p&gt;
&lt;p&gt;(However, to be fair, the MS Patterns and Practices team do capture this exact issue in Chapter 6 of their &amp;ldquo;Improving .NET Application Performance and Scalability&amp;rdquo; publication: &lt;a href="http://msdn.microsoft.com/en-us/library/ff647787.aspx"&gt;http://msdn.microsoft.com/en-us/library/ff647787.aspx&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;As an example, the following vulnerable code snip is representative of those we regularly identify and leverage in proof-of-concept authorization bypass attacks:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;em&gt;&lt;span style="color: blue;"&gt;protected&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; btnBack_Click(&lt;span style="color: blue;"&gt;object&lt;/span&gt; sender, System.&lt;span style="color: #2b91af;"&gt;EventArgs&lt;/span&gt; e)&lt;/em&gt;&lt;em&gt; &lt;br /&gt;&lt;/em&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;string&lt;/span&gt; returnUrl = Request[&lt;span style="color: #a31515;"&gt;"ReturnUrl"&lt;/span&gt;]; &lt;br /&gt;&lt;/em&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (returnUrl == &lt;span style="color: blue;"&gt;null&lt;/span&gt;) &lt;br /&gt;&lt;/em&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&lt;/em&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; returnUrl = &lt;span style="color: #a31515;"&gt;"Login.aspx"&lt;/span&gt;; &lt;br /&gt;&lt;/em&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Server.Transfer(returnUrl); &lt;br /&gt;&lt;/em&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.End(); &lt;br /&gt;&lt;/em&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The function above will redirect the browser to the page contained in the ReturnUrl parameter, unless it is null in which case the browser will be redirected to the login page.&lt;/p&gt;
&lt;p&gt;A typical application will have authorization checks to confirm if a user is authorized to view a requested page but as discussed previously when the Server.Transfer method is used, this logic will be bypassed (assuming that the page requested is hosted on the server). As the &amp;ldquo;ReturnUrl&amp;rdquo; parameter is user controllable, this function makes it possible to load any page on the server, including admin pages that lower privileged users should not be authorized to view. It is also possible to download DLLs from the /bin directory if the name of the dll is known (the dll can then be decompiled for further analysis). However, IIS does prevent the web.config file from being viewed.&lt;/p&gt;
&lt;p&gt;If the Response.Redirect method was used in the code sample above, the browser would issue a new request for the page passed in the ReturnUrl parameter; because this would be a new request it would pass through the permissions checks again and the authorization bypass vulnerability would be prevented.&lt;/p&gt;
&lt;p&gt;The Server.Transfer method of course can be used in valid circumstances such as to redirect to a page where the destination is not user-controllable (i.e. perhaps using an index of hardcoded &amp;lsquo;safe&amp;rsquo;, non-privileged destinations). Developers should take into account the differences between the Server.Transfer and Response.Redirect methods and understand that the Server.Transfer method is NOT always a secure replacement for the Response.Redirect method.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=HOT54vOZr6I:ZseJh8GGiJ8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=HOT54vOZr6I:ZseJh8GGiJ8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?i=HOT54vOZr6I:ZseJh8GGiJ8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=HOT54vOZr6I:ZseJh8GGiJ8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><wfw:commentRss>http://blog.gdssecurity.com/labs/rss-comments-entry-12634329.xml</wfw:commentRss><feedburner:origLink>http://blog.gdssecurity.com/labs/2011/9/9/net-servertransfer-vs-responseredirect-reiterating-a-securit.html</feedburner:origLink></item><item><title>XSS in Microsoft ReportViewer</title><category>XSS</category><dc:creator>Adam Bixby</dc:creator><pubDate>Fri, 19 Aug 2011 16:54:39 +0000</pubDate><link>http://feedproxy.google.com/~r/GdsSecurityBlog/~3/51B-849f8N8/xss-in-microsoft-reportviewer.html</link><guid isPermaLink="false">936190:11268292:12567488</guid><description>&lt;p&gt;Lost amongst the numerous issues patched during this month's Patch Tuesday was a bug I found in Microsoft's ReportViewer 2005 Web Controls. While the issue was really just a vanilla XSS, the surprising thing was that it was in a product that has been out for 6 years and hasn't been found or patched in that time.&amp;nbsp; You mean to tell me nobody's ever fuzzed that request!?&amp;nbsp; We're not talking about a complex memory corruption bug here!&amp;nbsp; Anyway, the technical details and a walkthrough of the bug can be found below.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Overview&lt;br /&gt;&lt;/strong&gt;The Microsoft ReportViewer Controls are a freely redistributable control that enables embedding reports in applications developed using the .NET Framework.&amp;nbsp; A Cross-Site Scripting (XSS) vulnerability was found in the Microsoft.ReportViewer.WebForms.dll library.&amp;nbsp; The XSS vulnerability appears to affect all websites that utilize the affected controls.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Technical Details&lt;br /&gt;&lt;/strong&gt;File: Microsoft.ReportViewer.WebForms.dll (PerformOperation() method of the SessionKeepAliveOperation class)&lt;/p&gt;
&lt;p&gt;1) User controllable data enters via the "TimerMethod" URL parameter value and is assigned to the "andEnsureParam" string variable.&lt;/p&gt;
&lt;pre&gt;string andEnsureParam = HandlerOperation.GetAndEnsureParam
  (urlQuery, "TimerMethod");&lt;/pre&gt;
&lt;p&gt;2) The "andEnsureParam" variable with user-controllable input is then passed into the "s" string variable which is dynamically building a javascript block.&amp;nbsp; The "s" variable is then passed to response.write(). Writing the un-validated data to the JS block creates the XSS exposure.&lt;/p&gt;
&lt;pre&gt;string s = string.Format(CultureInfo.InvariantCulture, "&amp;lt;html&amp;gt;
&amp;lt;body&amp;gt;&amp;lt;script type=\"text/javascript\"&amp;gt;parent.{0}();&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;", new object[]
 { andEnsureParam }); response.Write(s);&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Proof-of-Concept Exploit&lt;br /&gt;&lt;/strong&gt;This vulnerability can be exploited against websites that have deployed the vulnerable Microsoft.ReportViewer.WebForms.dll library.&amp;nbsp; You will note that since the data is being written into an existing Javascript block that the attacker does not need to include any opening or closing tags (i.e.,&amp;lt;img&amp;gt;, &amp;lt;script&amp;gt;, etc) to execute code.&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;Reproduction Request:&lt;/span&gt;&lt;/p&gt;
&lt;pre&gt;https://test.com/Reserved.ReportViewerWebControl.axd?Mode=true&amp;amp;
ReportID=&amp;lt;arbitraryIDvalue&amp;gt;&amp;amp;ControlID=&amp;lt;validControlID&amp;gt;&amp;amp;
Culture=1033&amp;amp;UICulture=1033&amp;amp;ReportStack=1&amp;amp;OpType=SessionKeepAlive
&amp;amp;TimerMethod=KeepAliveMethodctl00_PlaceHolderMain_
SiteTopUsersByHits_ctl00TouchSession0;alert(document.cookie);
//&amp;amp;CacheSeed=&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;(Note: During testing of this issue, it appeared as though a valid ControlID parameter value was needed to exploit this issue)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Recommendation&lt;br /&gt;&lt;/strong&gt;Update to the latest versions.&amp;nbsp; For more information please see &lt;a href="http://www.microsoft.com/technet/security/Bulletin/MS11-067.mspx"&gt;http://www.microsoft.com/technet/security/Bulletin/MS11-067.mspx&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=51B-849f8N8:mRuTE08g_98:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=51B-849f8N8:mRuTE08g_98:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?i=51B-849f8N8:mRuTE08g_98:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=51B-849f8N8:mRuTE08g_98:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><wfw:commentRss>http://blog.gdssecurity.com/labs/rss-comments-entry-12567488.xml</wfw:commentRss><feedburner:origLink>http://blog.gdssecurity.com/labs/2011/8/19/xss-in-microsoft-reportviewer.html</feedburner:origLink></item><item><title>Accepting Un-Trusted Certificates using the iOS Simulator</title><category>General Security</category><category>Tools</category><category>certificates</category><category>ios</category><category>mobile security</category><category>simulator</category><dc:creator>Ron Gutierrez</dc:creator><pubDate>Mon, 08 Aug 2011 00:51:42 +0000</pubDate><link>http://feedproxy.google.com/~r/GdsSecurityBlog/~3/ymF5wjX81Cw/accepting-un-trusted-certificates-using-the-ios-simulator.html</link><guid isPermaLink="false">936190:11268292:12427570</guid><description>&lt;p&gt;There are scenarios where an iOS developer might want to accept an un-trusted SSL certificate, such as when they are testing their application using the iOS simulator. By default applications using the NSUrlConnection API for performing remote connections contains built-in certificate validation. Therefore, developers or testers may encounter issues when testing HTTPS traffic using the iOS simulator. Some example scenarios may include applications communicating with remote services hosted on a non-production environment using self-signed certificates or the testers who need to debug SSL communication between the application and service using a local proxy tool, such as &lt;a href="http://portswigger.net/burp/download.html"&gt;Burp Proxy&lt;/a&gt; or &lt;a href="http://www.fiddler2.com/fiddler2/"&gt;Fiddler&lt;/a&gt;. From a developer&amp;rsquo;s perspective, what is the best way to accept SSL certificates? While performing a Google search, I encountered the following thread on &lt;a href="http://stackoverflow.com/questions/933331/how-to-use-nsurlconnection-to-connect-with-ssl-for-an-untrusted-cert"&gt;Stack Overflow&lt;/a&gt;&amp;nbsp;discussing ways to accept self-signed certificates when using NSUrlConnection to connect to a website. In general, the responses all recommended performing code level changes in order to disable the built in certificate validation performed by iOS. Although, some answers recommend disabling certificate validation against certain hosts, there are also recommendations for disabling validation against all hosts. Given the temptation to copy and paste, this guidance is likely to result in insecure iOS application releases to the Apple App Store as the applications will be susceptible to &lt;a href="http://www.sans.org/reading_room/whitepapers/threats/ssl-man-in-the-middle-attacks_480"&gt;man in the middle attacks&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Is there a better way to temporarily trust un-trusted certificates within the Simulator? In my opinion, the more secure way&amp;nbsp;is to add the Certificate Authority(CA) certificate which signed the website&amp;rsquo;s certificate as a Trusted CA on the simulator. On an iOS device, this can be performed easily by opening the CA certificate on the device by emailing the certificate; however this is not possible with the simulator. Behind the scenes, when a CA certificate is added as a Trusted CA on the device, the certificate is inserted into the tsettings table of the TrustStore.sqlite3 database. This database is also used by the Simulator and can be found in the &lt;em&gt;~/Library/Application Support/iPhone Simulator/&amp;lt;SDK version&amp;gt;/Library/Keychains/&lt;/em&gt; directory on your Mac workstation.&lt;/p&gt;
&lt;p&gt;The tsettings table stores the contents of the CA certificate (Fingerprint, Subject, etc) but the only field needed by iOS during validation is the sha1 column which refers to the certificate's SHA1 fingerprint. The table can be manually modified by using one of the many available SQLite clients. In order to simplify this process, I wrote a simple python script which can be used to import CA certificates into each TrustStore database &amp;nbsp;used by the Simulator. The following example will walkthrough the steps for importing the Portswigger CA certificate. Importing this certificate will provide testers with the ability to intercept application HTTPS traffic using Burp Proxy. Although we can view and intercept SSL HTTP traffic while testing applications, the insecurity of accepting un-trusted certificates is no longer built into the application logic&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Modify the System Preferences/Network Proxy settings on your Mac in order to have all HTTP/HTTPS traffic be sent to your Burp Proxy.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Visit an HTTPS website using Firefox. You will be shown a &amp;ldquo;This Connection is Untrusted&amp;rdquo; error page. Choose the &lt;strong&gt;Add Exception&lt;/strong&gt; option and then click the &lt;strong&gt;View&lt;/strong&gt; button. Enter the &lt;strong&gt;Details tab&lt;/strong&gt; and you will be shown information about the certificate chain. Select the PortSwigger CA within the &amp;ldquo;Certificate Hierarchy&amp;rdquo; listing. &lt;strong&gt;Export&lt;/strong&gt; the Certificate to the directory of your choice.&lt;/p&gt;
&lt;p&gt;&lt;span class="full-image-block ssNonEditable"&gt;&lt;span&gt;&lt;img style="width: 450px;" src="http://blog.gdssecurity.com/storage/post-images/Screen Shot 2011-08-07 at 7.25.49 PM.png?__SQUARESPACE_CACHEVERSION=1312830118800" alt="" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 3: &lt;/strong&gt;Run the add_ca_to_iossim script and pass in the exported certificate as an argument.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: monospace;"&gt;Sample Usage:&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt; python add_ca_to_iossim.py PortSwiggerCA.cer &lt;/code&gt;&lt;br /&gt;&lt;br /&gt; &lt;code&gt; Successfully added CA to /User/GDS/Library/Application Support/iPhone Simulator/4.3/Library/Keychains/TrustStore.sqlite3 &lt;/code&gt;&lt;br /&gt;&lt;br /&gt; &lt;code&gt; Successfully added CA to /User/GDS/Library/Application Support/iPhone Simulator/4.3.2/Library/Keychains/TrustStore.sqlite3 &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Run the simulator while proxying through Burp Proxy and you should be able to intercept HTTPS application sent by your application.&lt;/p&gt;
&lt;p&gt;The add_ca_to_iossim python script can be download within the &lt;a href="https://github.com/GDSSecurity/Add-Trusted-Certificate-to-iOS-Simulator"&gt;GDS Github page&lt;/a&gt;.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=ymF5wjX81Cw:GzEx_O1vLgY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=ymF5wjX81Cw:GzEx_O1vLgY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?i=ymF5wjX81Cw:GzEx_O1vLgY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=ymF5wjX81Cw:GzEx_O1vLgY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><wfw:commentRss>http://blog.gdssecurity.com/labs/rss-comments-entry-12427570.xml</wfw:commentRss><feedburner:origLink>http://blog.gdssecurity.com/labs/2011/8/7/accepting-un-trusted-certificates-using-the-ios-simulator.html</feedburner:origLink></item><item><title>OWASP NYC Slides Posted</title><category>Application Security</category><category>OWASP</category><category>PadBuster</category><category>Padding Oracle</category><dc:creator>Brian Holyfield</dc:creator><pubDate>Thu, 16 Jun 2011 19:55:07 +0000</pubDate><link>http://feedproxy.google.com/~r/GdsSecurityBlog/~3/vErHD2JbCkU/owasp-nyc-slides-posted.html</link><guid isPermaLink="false">936190:11268292:12210354</guid><description>&lt;p&gt;The deck from my recent OWASP session &lt;a href="http://blog.gdssecurity.com/storage/presentations/Padding_Oracle_OWASP_NYC.pdf"&gt;has been posted&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;The discussion focused on identifying and exploiting Padding Oracles in custom web applications, and walked through specifics on how to use PadBuster in a variety of common scenarios.  Hopefully those using PadBuster will find the second half of the deck a useful reference.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=vErHD2JbCkU:VpCHZXB8HdY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=vErHD2JbCkU:VpCHZXB8HdY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?i=vErHD2JbCkU:VpCHZXB8HdY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=vErHD2JbCkU:VpCHZXB8HdY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><wfw:commentRss>http://blog.gdssecurity.com/labs/rss-comments-entry-12210354.xml</wfw:commentRss><feedburner:origLink>http://blog.gdssecurity.com/labs/2011/6/16/owasp-nyc-slides-posted.html</feedburner:origLink></item><item><title>Beyond Padding Oracle - Manger's Oracle and RSA OAEP Padding</title><category>General Security</category><category>Padding Oracle</category><dc:creator>Tom Ritter</dc:creator><pubDate>Thu, 02 Jun 2011 16:54:46 +0000</pubDate><link>http://feedproxy.google.com/~r/GdsSecurityBlog/~3/JCSZzRUiehE/beyond-padding-oracle-mangers-oracle-and-rsa-oaep-padding.html</link><guid isPermaLink="false">936190:11268292:12210353</guid><description>&lt;p&gt;Several months ago I was looking at the proceedings from &lt;a href="https://hashdays.ch/"&gt;#days 2010&lt;/a&gt; and read &lt;a href="http://crypto.junod.info/"&gt;Pascal Junod&lt;/a&gt;'s slides &lt;a href="http://crypto.junod.info/hashdays10_talk.pdf"&gt;Open-Source Cryptographic Libraries and Embedded Platforms&lt;/a&gt;.  In them, he mentioned James Manger's attack on RSA OAEP, a padding scheme first defined in PKCS #1 v2.0.  I hadn't heard of it before, and it interested me enough to investigate.  (The paper is available via &lt;a href="http://www.google.com/search?q=%22A+Chosen+Ciphertext+Attack+on+RSA+Optimal+Asymmetric+Encryption+Padding+(OAEP)+as+Standardized+in+PKCS+%231+v2.0%22"&gt;Google&lt;/a&gt; or &lt;a href="http://portal.acm.org/citation.cfm?id=704143"&gt;ACM&lt;/a&gt; if you're a member.)&lt;br /&gt;&lt;br /&gt;The basics of the attack are similar to the Padding Oracle attack in that a small piece of information is exposed via error messages and doing some clever math you can use that to retrieve the plaintext from the ciphertext.  After the ciphertext is decrypted, the OAEP decoding process begins.  The decrypted plaintext is supposed to fit in one less byte than the maximum size of the ciphertext.  If the plaintext does not have a 00 in the highest byte, the ciphertext is considered to have been tampered with and an error is returned.  Because of the properties of RSA, you can directly influence the plaintext p by multiplying the ciphertext c by x&lt;sup&gt;e&lt;/sup&gt; mod n - where e is the exponent from the public key, n the modulus, and x the arbitrary number you want to multiply the plaintext by.  This will produce a plaintext p*x mod n after decryption.  &lt;br /&gt;&lt;br /&gt;Manger's Oracle relies on manipulating the plaintext and detecting when it has overflowed into the highest byte.  Using a method reminiscent of &lt;a href="http://en.wikipedia.org/wiki/Binary_search_algorithm"&gt;binary search&lt;/a&gt;, the possible values of the plaintext are narrowed down until only one remains - allowing recovery of the plaintext from the ciphertext.  The number of oracle queries needed depends on keysize; for 1024, it's around 1200.  &lt;br /&gt;&lt;br /&gt;I checked the popular implementations of RSA-OAEP and found none of them vulnerable to Manger's Oracle.  OpenSSL specifically protects against it, calling Manger out by name in the comments.  BouncyCastle and the .NET implementation were secure because they didn't throw an error if the first byte was non-zero (probably on the assumption that another part of OAEP, the hash, wouldn't match).  Libgcrypt didn't implement RSA-OAEP - a patch had been provided a few years ago, but it was never merged... until a few weeks ago when it was committed to trunk.  &lt;br /&gt;&lt;br /&gt;The new code wasn't actually directly vulnerable - the same error code was returned no matter the type of error that occurred.  Regardless, I decided this would be a fun exercise and set about implementing the attack.  I got it working; but only after editing the source of libgcrypt to 'cheat', providing my own oracle.  I managed to find a mistake in the original paper too, a &lt;acronym title="Mathematical function that rounds down"&gt;floor()&lt;/acronym&gt; that should have been a &lt;acronym title="Mathematical function that rounds up"&gt;ceil()&lt;/acronym&gt; - detailed in the code linked later.&lt;br /&gt;&lt;br /&gt;Since I modified the libgcrypt code to provide an oracle, it was an overly contrived example, but it seemed like it might be possible to exploit it using a timing attack.  After measuring and graphing the differences between the two cases, I saw you &lt;em&gt;could&lt;/em&gt; determine the error from timing information - so long as you looked at the percentiles over a sufficient number of trials, as shown below.  It isn't 100% reliable, but I was able to get a working proof of concept going with just timing information.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://s3.media.squarespace.com/production/936190/11268292/l/timing-small.png" alt="Timing Comparison" /&gt;&lt;br /&gt;&lt;em&gt;Left two box plots show the longer execution time, right two show the shorter.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;I've published the code to exploit the oracle in a contrived case, and included the code and steps to demonstrate the timing differential.  &lt;a href="https://github.com/GDSSecurity/mangers-oracle"&gt;The code is on github&lt;/a&gt;, and as far as I know, this is the only public implementation of Manger's Oracle. (Although apparently it is assigned as &lt;a href="http://stackoverflow.com/questions/5889519/java-rsaes-oaep-attack"&gt;homework&lt;/a&gt; somewhere...)&lt;br /&gt;&lt;br /&gt;&lt;em&gt;"OAEP Padding" is indeed an example of &lt;a href="http://en.wikipedia.org/wiki/RAS_syndrome"&gt;RAS Syndrome&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=JCSZzRUiehE:XzWlQemC5b4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=JCSZzRUiehE:XzWlQemC5b4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?i=JCSZzRUiehE:XzWlQemC5b4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=JCSZzRUiehE:XzWlQemC5b4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><wfw:commentRss>http://blog.gdssecurity.com/labs/rss-comments-entry-12210353.xml</wfw:commentRss><feedburner:origLink>http://blog.gdssecurity.com/labs/2011/6/2/beyond-padding-oracle-mangers-oracle-and-rsa-oaep-padding.html</feedburner:origLink></item><item><title>The ISSD Conference 2011</title><category>Application Security</category><category>ISSD</category><category>conference</category><dc:creator>Andrew Nairn</dc:creator><pubDate>Fri, 13 May 2011 15:55:20 +0000</pubDate><link>http://feedproxy.google.com/~r/GdsSecurityBlog/~3/VR5wL4fm0Lg/the-issd-conference-2011.html</link><guid isPermaLink="false">936190:11268292:12210352</guid><description>&lt;p&gt;The second&amp;nbsp;&lt;a title="ISSD Conference" href="http://www.enabled-security.com/index.php/issd/issd-2011" target="_blank"&gt;International Secure Systems Development Conference (ISSD)&lt;/a&gt; is being held next week in London, and GDS are once again very happy to be supporting it as both speakers and conference sponsors. Event details this year are as follows:&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;strong&gt;The 2nd International Secure Systems Development Conference (ISSD)&lt;/strong&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;strong&gt;18th &amp;amp; 19th May 2011, Hilton London Olympia Hotel&lt;/strong&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;strong&gt;Dealing with Tomorrow's Threats Today - by Designing Security In&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Both Matt &amp;amp; Justin are speaking on the opening day - Wed 18 May:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;10.30am - Are Agile and Secure Development Mutually Exclusive? - Matt Bartoldus&lt;/li&gt;
&lt;li&gt;11.45am - Metrics &amp;ndash; knowing before you start &amp;ndash; Justin Clarke&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you would like to attend its not too late - contact us (mention this blog post) and we can organize a discount on your tickets. &amp;nbsp;Hope to see you there!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=VR5wL4fm0Lg:X6fPB32YkkI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=VR5wL4fm0Lg:X6fPB32YkkI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?i=VR5wL4fm0Lg:X6fPB32YkkI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=VR5wL4fm0Lg:X6fPB32YkkI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><wfw:commentRss>http://blog.gdssecurity.com/labs/rss-comments-entry-12210352.xml</wfw:commentRss><feedburner:origLink>http://blog.gdssecurity.com/labs/2011/5/13/the-issd-conference-2011.html</feedburner:origLink></item><item><title>Regional Broadcast Using an Atmospheric Link Layer</title><category>April Fools</category><category>General Security</category><category>RFC</category><dc:creator>Tom Ritter</dc:creator><pubDate>Fri, 01 Apr 2011 15:08:21 +0000</pubDate><link>http://feedproxy.google.com/~r/GdsSecurityBlog/~3/tEKsLYTc3G8/regional-broadcast-using-an-atmospheric-link-layer.html</link><guid isPermaLink="false">936190:11268292:12210351</guid><description>&lt;p&gt;I'm happy to announce my latest endeavor, published today by the IETF: &lt;a href="http://www.rfc-editor.org/rfc/rfc6217.txt"&gt;RFC 6217: Regional Broadcast Using an Atmospheric Link Layer&lt;/a&gt;.  It provides recommendations for broadcasting text or binary data to a geographic region, in an efficient manner that does not impede existing network infrastructure.  It also defines a new protocol, Asynchronous Dumb Visual Exchange of Raw Transmissions, for the Network Layer, designed to be both extremely compact but also flexible enough for use in different communities and for different uses.  &lt;br /&gt;&lt;br /&gt;The RFC does raise, and attempt to address, certain security concerns. If organizations feel this protocol may be beneficial to them but are concerned about testing their infrastructures prior to deployment, Gotham Digital Science is poised to offer the best advice and services relating to this cutting-edge technology.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=tEKsLYTc3G8:Q9CrY8_jR2o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=tEKsLYTc3G8:Q9CrY8_jR2o:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?i=tEKsLYTc3G8:Q9CrY8_jR2o:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=tEKsLYTc3G8:Q9CrY8_jR2o:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><wfw:commentRss>http://blog.gdssecurity.com/labs/rss-comments-entry-12210351.xml</wfw:commentRss><feedburner:origLink>http://blog.gdssecurity.com/labs/2011/4/1/regional-broadcast-using-an-atmospheric-link-layer.html</feedburner:origLink></item><item><title>Hackers Puzzle Challenge in the CSAW 2010 CTF Final Round</title><category>CSAW</category><category>CTF</category><category>Crypto</category><category>General Security</category><dc:creator>Tom Ritter</dc:creator><pubDate>Thu, 18 Nov 2010 20:37:52 +0000</pubDate><link>http://feedproxy.google.com/~r/GdsSecurityBlog/~3/0eRH2Ut6e64/hackers-puzzle-challenge-in-the-csaw-2010-ctf-final-round.html</link><guid isPermaLink="false">936190:11268292:12210350</guid><description>A few weeks ago NYU Polytechnic held the final round of their Capture the Flag. Marcinand I both wrote challenges for the final round, and my challenge was primarily based around steganographic tricks with file formats, surrounded by some simple cryptography.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=0eRH2Ut6e64:Gjdm94dHMjk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=0eRH2Ut6e64:Gjdm94dHMjk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?i=0eRH2Ut6e64:Gjdm94dHMjk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/GdsSecurityBlog?a=0eRH2Ut6e64:Gjdm94dHMjk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/GdsSecurityBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><wfw:commentRss>http://blog.gdssecurity.com/labs/rss-comments-entry-12210350.xml</wfw:commentRss><feedburner:origLink>http://blog.gdssecurity.com/labs/2010/11/18/hackers-puzzle-challenge-in-the-csaw-2010-ctf-final-round.html</feedburner:origLink></item></channel></rss>

