Taras, On Tue, May 19, 2009 at 6:59 PM, Taras P. Ivashchenko <naplan...@gmail.com> wrote: > > Hi, Dimitri! > > Thanks for interesting in W3AF! > How often in real there is such situation (when some input param is echoed > back to the browser after url decoding)?
I also think that it's a little bit strange to find, but I've found some web apps that behave like this. > >> Hi guys, >> I played with the w3af for the first time today. I'm specifically >> interested in the XSS scanning (crawling + fuzzing). >> >> It seems w3af does not catch the case when the site echoes the >> double-encoded Javascript. >> I added the following tests in xss.py, function _get_xss_tests : >> >> # D.S - url escaped injection string >> >> xss_tests.append(('%3CSCrIPT%3Ealert%28%22RANDOMIZE%22%29%3C/SCrIPT%3E', >> [browsers.ALL, ])) >> >> # D.S - double quoted injection string >> >> >> xss_tests.append(('%2522%253E%253Cscript%253Ealert%2528/RANDOMIZE/%2529%253C/script%253E', >> [browsers.ALL, ])) >> >> then it does pick it up. >> >> Here's the PHP file that I used to test it: >> >> <?php >> $param = $_GET['param']; >> echo "Initial param: $param<BR>\n"; >> $param_esc = urldecode($param); >> echo "Param decoded: $param_esc <BR>\n"; >> // compose the URL to the current page >> $url = $_SERVER{'HTTPS'} ? 'https://' : 'http://'; >> $url .= $_SERVER{'SERVER_NAME'}; >> if ($_SERVER{'SERVER_PORT'}) { >> $url .= ":" . $_SERVER{'SERVER_PORT'}; >> } >> $url .= $_SERVER{'PHP_SELF'}; >> if ($_SERVER{'QUERY_STRING'}) { >> $url .= '?' . $_SERVER{'QUERY_STRING'}; >> } else { >> $url .= '?' . 'param=a'; >> } >> echo '<A href="' . $url . "\">$url</A>"; >> ?> >> >> and here's the related w3af output with the added tests: >> >> Starting xss plugin execution. >> Cross Site Scripting was found at: "[URL]", using HTTP method GET. The sent >> data was: >> "param=%252522%25253E%25253Cscript%25253Ealert%252528/9v5SFsQ4yG8Wd/%252529%25253C/script%25253E". >> This vulnerability affects ALL browsers. This vulnerability was found in the >> request with id 45. >> >> One request - would it be possible to add an option in the audit config xss: >> set numberOfChecks all >> so that when you are modifying the source you would not have to worry about >> the number of tests you run. It would be also interesting to give each test >> a short but descriptive name (like "double.enc") and allow the user to >> specify exactly which tests they want to run. >> >> Cheers, may the brute force be with you! :) >> >> Dimitri >> > > > -- > Тарас Иващенко (Taras Ivashchenko), OSCP > www.securityaudit.ru > ---- > "Software is like sex: it's better when it's free." - Linus Torvalds > > ------------------------------------------------------------------------------ > Crystal Reports - New Free Runtime and 30 Day Trial > Check out the new simplified licensing option that enables > unlimited royalty-free distribution of the report engine > for externally facing server and web deployment. > http://p.sf.net/sfu/businessobjects > _______________________________________________ > W3af-develop mailing list > W3af-develop@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/w3af-develop > > -- Andrés Riancho Founder, Bonsai - Information Security http://www.bonsai-sec.com/ http://w3af.sf.net/ ------------------------------------------------------------------------------ Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT is a gathering of tech-side developers & brand creativity professionals. Meet the minds behind Google Creative Lab, Visual Complexity, Processing, & iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian Group, R/GA, & Big Spaceship. http://www.creativitycat.com _______________________________________________ W3af-develop mailing list W3af-develop@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/w3af-develop