<?xml version="1.0" encoding="UTF-8"?>
<!--Generated by Squarespace Site Server v5.9.2 (http://www.squarespace.com/) on Wed, 10 Mar 2010 23:25:41 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/" version="2.0"><channel><title>O2 Challenges - Can you solve it?</title><link>http://www.o2-ounceopen.com/o2-challenges-can-you-solve/</link><description></description><lastBuildDate>Mon, 17 Aug 2009 05:52:31 +0000</lastBuildDate><copyright></copyright><language>en-GB</language><generator>Squarespace Site Server v5.9.2 (http://www.squarespace.com/)</generator><item><title>O2 Challenge #7: Fix HacmeBank Sql Injection vulnerabilities</title><dc:creator>Dinis Cruz</dc:creator><pubDate>Mon, 17 Aug 2009 05:41:41 +0000</pubDate><link>http://www.o2-ounceopen.com/o2-challenges-can-you-solve/2009/8/17/o2-challenge-7-fix-hacmebank-sql-injection-vulnerabilities.html</link><guid isPermaLink="false">293119:3048599:4922950</guid><description><![CDATA[<p>How 'easy' it is to fix vulnerabilities in web applications? A common view (which I don't agree with) is that fixing vulnerabilities , i.e. writing secure code, is easy, especially for issues like XSS or SQL Injection.</p>
<p>The problem is that we don't have any hard data that supports either side of the argument (i.e. if it is easy or hard to fix security issues?). So here is a challenge that should provide some visibility into this important question.</p>
<p><strong>Challenge: Fix the SQL Injection vulnerabilities that exist in </strong><a href="http://www.o2-ounceopen.com/technical-info/2008/12/8/updated-version-of-hacmebank.html"><strong>this version of Hacme Bank</strong></a><strong>.</strong></p>
<ul>
<li>You are free to use whatever techniques and tools you have and are comfortable with</li>
<li>The fixes should be provided as a new code drop or as a diff of the current version.</li>
<li>Please take notes of HOW MUCH TIME and effort it took to fix the problems</li>
<li>Ideally, detailed information about the fixes would be provided</li>
<li>Ideally, detailed information about the Workflow used to 'apply and test' the fixes would be provided</li>
</ul>
<p>Let us know if you are taking this challenge</p>
<p>Good luck</p>]]></description><wfw:commentRss>http://www.o2-ounceopen.com/o2-challenges-can-you-solve/rss-comments-entry-4922950.xml</wfw:commentRss></item><item><title>O2 Challenge #6: Find security issues in .NET StockTrader Sample Application</title><dc:creator>Dinis Cruz</dc:creator><pubDate>Fri, 06 Feb 2009 10:50:19 +0000</pubDate><link>http://www.o2-ounceopen.com/o2-challenges-can-you-solve/2009/2/6/o2-challenge-6-find-security-issues-in-net-stocktrader-sampl.html</link><guid isPermaLink="false">293119:3048599:2974245</guid><description><![CDATA[<p>The guys at gdssecurity.com have posted an interresting blog entry highlighing several security issues on a Microsoft demo application.</p>
<p><strong>Challenge:</strong> Perform a security review on Microsoft's demo app <a href="http://msdn.microsoft.com/en-us/netframework/bb499684.aspx">.NET StockTrader Sample Application</a> starting with the security issues disclosed here <a href="http://www.gdssecurity.com/l/b/2009/02/05/net-stocktrader-from-msdn-the-new-webgoat/">NET StockTrader from MSDN: The new WebGoat?</a> and seing if more can be discovered.</p>
<p>Extra items:</p>
<ul>
<li>There is a reply comment from Microsoft's&nbsp;Gregory Leake saying they will fix this, so it will be interresting to compare the before and after versions</li>
<li>Analyse previous versions of this application and map their security profile (would be quite interresting to be able to track the lifecycle of a particular vulnerability across multiple releases)</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></description><wfw:commentRss>http://www.o2-ounceopen.com/o2-challenges-can-you-solve/rss-comments-entry-2974245.xml</wfw:commentRss></item><item><title>O2 Challenge #5: Wrap WebServices around the OWASP proxy and consume them from O2</title><dc:creator>Dinis Cruz</dc:creator><pubDate>Mon, 15 Dec 2008 01:13:59 +0000</pubDate><link>http://www.o2-ounceopen.com/o2-challenges-can-you-solve/2008/12/15/o2-challenge-5-wrap-webservices-around-the-owasp-proxy-and-c.html</link><guid isPermaLink="false">293119:3048599:2695689</guid><description><![CDATA[<p>This Challenge is for the O2 dev guys:</p>
<p><strong>Challenge:</strong>&nbsp;Wrap WebServices around the new (under dev) OWASP proxy and consume them from O2. The idea is to be able able to control this Proxy (which is a spin of from OWASP's WebGoat) from O2's WebAutomation modules in order to:</p>
<ul>
<li>Help with PoCs</li>
<li>Allow the creation of site maps&nbsp;</li>
<li>Allow the&nbsp;reconstruction&nbsp;of the exact sequence of request/response events</li>
<li>Show how O2 can integrate with Java Apps</li>
</ul>
<p>&nbsp;</p>
<p>To kickstart the process Here is Rogan's description on the owasp-leaders mailing list:</p>
<p><em>The OWASP Proxy is intended as a library that can be used by developers&nbsp;of tools like WebScarab, so that they don't have to reinvent the wheel.<br /><br />As mentioned in my original mail, some people are taking the proxy&nbsp;classes from WebScarab and wrapping their own code around them.&nbsp;Unfortunately for them, WebScarab's proxy was never designed for this,<br />and consequently they had to mess around with a bunch of dependencies&nbsp;that the WebScarab proxy class requires, but that they had no need for&nbsp;themselves.<br /><br />WebScarab's proxy and HttpClient implementation were also not as&nbsp;"binary-clean" as some people would have liked. For example, while&nbsp;parsing message headers, WebScarab would normalise "Host: &nbsp;host" (note<br />two spaces between ":" and "host") back to "Host: host" (only one&nbsp;space). For some people, that was a big deal, and prevented them from&nbsp;using WebScarab entirely. Amongst other things, it meant that WebScarab<br />was unsuited to testing client-side vulnerabilities. OWASP Proxy uses a&nbsp;byte[] to represent the entire message that is sent between client and&nbsp;server and vice versa, and then layers more friendly methods for&nbsp;accessing specific message properties on top of that.<br /><br />So, OWASP Proxy is intended to address these issues. It is a small (45kB&nbsp;jar) library (not a stand-alone executable) that Java developers can use&nbsp;when they need to add intercepting or logging proxy capabilities to<br />their own programs.<br /><br />OWASP WebScarab-NG will be rewritten around this library as time permits.</em></p>
<p><em>For interested people, the simplest proxy would look something like:<br /><br />&nbsp;&nbsp;import org.owasp.proxy.daemon.Listener;<br /><br />&nbsp;&nbsp;Listener l = new Listener(8008);<br />&nbsp;&nbsp;new Thread(l).start();<br /><br />&nbsp;&nbsp;// wait until told to exit<br /><br />&nbsp;&nbsp;l.stop();<br /><br />This obviously has no customisation, though.<br /><br />To customise the listener, extend the Listener class:<br /><br />&nbsp;&nbsp;public class MyListener extends Listener {<br /><br />&nbsp;&nbsp; public MyListener(int port) throws IOEception {<br />&nbsp;&nbsp; &nbsp; super(port);<br />&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp; @Override<br />&nbsp;&nbsp; protected Response requestReceived(Request request)<br />&nbsp;&nbsp; &nbsp; throws MessageFormatException {<br />&nbsp;&nbsp; &nbsp; request.deleteHeader("Accept-encoding");<br />&nbsp;&nbsp; &nbsp; return null;<br />&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;}<br /><br />This example disables transfer of gzip or deflated content, by&nbsp;preventing the Accept-Encoding header from reaching the server.<br /><br />Similarly, one can intercept responses by overriding two methods:<br /><br />&nbsp;@Override<br />&nbsp;protected boolean responseHeaderReceived(Conversation conversation)<br />&nbsp; &nbsp;throws MessageFormatException {<br />&nbsp; &nbsp;return false; // default is true<br />&nbsp;}<br /><br />&nbsp;@Override<br />&nbsp;protected void responseContentReceived(Conversation conversation,<br />&nbsp; &nbsp;boolean streamed) throws MessageFormatException {<br />&nbsp; &nbsp;conversation.getResponse().deleteHeader("Set-Cookie");<br />&nbsp;}<br /><br />One overrides "responseHeaderReceived" to return false to disable&nbsp;response content streaming. OWASP Proxy defaults to streaming response&nbsp;contents to the client as chunks are read from the server. This makes&nbsp;the proxy more responsive, as the response content does not have to be&nbsp;buffered in the proxy before being sent to the client. However, if you&nbsp;want to modify the response in some way, you don't want it being&nbsp;streamed to the client before you can modify it.<br /><br />"responseContentReceived" is called once the entire response has been&nbsp;read from the server. If the "streamed" parameter is false, (resulting&nbsp;from responseHeaderReceived), then it is possible to modify the response&nbsp;and have that modified response returned to the client.<br /><br />At this stage, it is not possible to modify the response headers in&nbsp;"responseHeaderReceived". This is a limitation that I'd like to remove.&nbsp;With any luck, it should not prove to be too difficult. Naturally,&nbsp;caution should be exercised when modify response headers if the content&nbsp;has not yet been read, as it could change the way in which the response&nbsp;content is interpreted by the OWASP Proxy. e.g. removing a&nbsp;"Transfer-Encoding: chunked" header!<br /><br />As you can see, I'm quite happy to discuss the OWASP Proxy with&nbsp;interested parties! I look forward to your feedback.</em></p>
<p>Rogan</p>]]></description><wfw:commentRss>http://www.o2-ounceopen.com/o2-challenges-can-you-solve/rss-comments-entry-2695689.xml</wfw:commentRss></item><item><title>O2 Challenge #4) Use Visualization Libraries to model CIR and Traces</title><dc:creator>Dinis Cruz</dc:creator><pubDate>Wed, 10 Dec 2008 17:54:26 +0000</pubDate><link>http://www.o2-ounceopen.com/o2-challenges-can-you-solve/2008/12/10/o2-challenge-4-use-visualization-libraries-to-model-cir-and.html</link><guid isPermaLink="false">293119:3048599:2679659</guid><description><![CDATA[<p><strong>Challenge: </strong><em>Use a visualization library such as <a href="http://www.ubietylab.net/ubigraph/content/Demos">http://www.ubietylab.net/ubigraph/content/Demos</a> to model CIR data (i.e. the Application's object model) and Data Traces (i.e. the findings)</em></p>
<p>In previous versions of O2, I've tried to use <a href="http://www.graphviz.org/">GraphViz </a>and <a href="http://research.microsoft.com/research/downloads/Details/c927728f-8872-4826-80ee-ecb842d10371/Details.aspx">Glee</a>, but the fact that they were not dynamic (like the graphs in the UbiGraph examples) created a number of limitations which I felt could only be resolved once we had a better visualization engine (GLEE is still used by the TraceViewer module in O2).</p>
<p>The UbiGraph capabilities seem really interesting, so this challenge is going to be a good case study on how to integrate with 3rd party solutions, and maybe we will get out of it a new way to visualize O2 generated data</p>]]></description><wfw:commentRss>http://www.o2-ounceopen.com/o2-challenges-can-you-solve/rss-comments-entry-2679659.xml</wfw:commentRss></item><item><title>O2 Challenge #3) How to review apps that use JSF</title><dc:creator>Dinis Cruz</dc:creator><pubDate>Wed, 10 Dec 2008 16:58:38 +0000</pubDate><link>http://www.o2-ounceopen.com/o2-challenges-can-you-solve/2008/12/10/o2-challenge-3-how-to-review-apps-that-use-jsf.html</link><guid isPermaLink="false">293119:3048599:2679554</guid><description><![CDATA[<p>A common problem that we find over and over again when reviewing new apps, is (lack of) Framework support (ala Spring, JSF, ASP.NET MVC, MS Enterprise Lib, etc...). The problem is caused by the fact that 'Source to Sink' technology (used by Ounce) is dependent on knowing where the sources and sinks are, and on knowing how the control flow occurs between the different modules (usually they are defined on XML files or by framework specific 'wormholes' created by dynamic invocation of internal methods (using reflection))</p>
<p>And the problem not limited to popular Frameworks (and custom / legacy versions of it), most enterprise apps (the one with 500k+ lines of code) tend to have their own custom developed frameworks (or APIs).</p>
<p>So in this challenge we are going to go over the process of adding support to a particular framework/API that is currently not supported.</p>
<p><strong>Challenge: </strong><em>Gain visibility into JSF (Java Server Faces) and find vulnerabilities (or prove their non existence) of applications that use it.</em></p>
<p>The first step is to gain additional understanding of what JSF is and how they work. Here is a number of links to get us started:</p>
<ul>
<li><a href="http://java.sun.com/javaee/javaserverfaces/">http://java.sun.com/javaee/javaserverfaces</a></li>
<li><a href="http://www.owasp.org/index.php/Java_Server_Faces">http://www.owasp.org/index.php/Java_Server_Faces</a></li>
<li><a href="http://www.jsftutorials.net">http://www.jsftutorials.net</a></li>
<li><a href="http://jsfcentral.com">http://jsfcentral.com</a></li>
<li><a href="http://www.roseindia.net/jsf/jsftags.shtml">http://www.roseindia.net/jsf/jsftags.shtml</a></li>
</ul>
<p>The next step is to find a couple demo apps that we can use as case studies during this challenge.</p>]]></description><wfw:commentRss>http://www.o2-ounceopen.com/o2-challenges-can-you-solve/rss-comments-entry-2679554.xml</wfw:commentRss></item><item><title>O2 Challenge #2) Find the 14 Vulns in Condor 6.7.12</title><dc:creator>Dinis Cruz</dc:creator><pubDate>Mon, 08 Dec 2008 13:11:17 +0000</pubDate><link>http://www.o2-ounceopen.com/o2-challenges-can-you-solve/2008/12/8/o2-challenge-2-find-the-14-vulns-in-condor-6712.html</link><guid isPermaLink="false">293119:3048599:2666203</guid><description><![CDATA[<p>As per the details explained on this blog entry: <a href="http://diniscruz.blogspot.com/2008/12/report-manual-vs-automated.html">Report: Manual vs. Automated Vulnerability Assessment</a>, the&nbsp;<strong>challenge</strong> is to &nbsp;find the 14 vulnerabilities on Condor 6.7.12 using O2.</p>
<p>There are a couple little details which will make this a hard challenge (but hey, that's what makes it interresting):</p>
<ul>
<li><strong>This is a C++ app:</strong> O2 so far has been mainly designed for .NET and Java</li>
<li><strong>The scanning environment (as described by the authors) is Scientific Linux SL release 4.7</strong> (Beryllium): O2 currently is designed to run on Windows (have not tried it using Mono)</li>
<li><strong>Some of the issues are design issues</strong>: this means that we will have to be creative on&nbsp;the creation of rules/scripts required to find them (nothing I have not done before :)&nbsp; )</li>
<li><strong>We don't have (yet) the source</strong> <strong>code that was used to create the published results</strong>: hopefully this will be sorted in the next couple days</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></description><wfw:commentRss>http://www.o2-ounceopen.com/o2-challenges-can-you-solve/rss-comments-entry-2666203.xml</wfw:commentRss></item><item><title>O2 Challenge #1) Viewstate data leak of non-visible data</title><dc:creator>Dinis Cruz</dc:creator><pubDate>Mon, 08 Dec 2008 01:45:37 +0000</pubDate><link>http://www.o2-ounceopen.com/o2-challenges-can-you-solve/2008/12/8/o2-challenge-1-viewstate-data-leak-of-non-visible-data.html</link><guid isPermaLink="false">293119:3048599:2665267</guid><description><![CDATA[]]]></description><wfw:commentRss>http://www.o2-ounceopen.com/o2-challenges-can-you-solve/rss-comments-entry-2665267.xml</wfw:commentRss></item></channel></rss>