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)?
> 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
pgpCbftJ0zoRp.pgp
Description: PGP signature
------------------------------------------------------------------------------ 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 [email protected] https://lists.sourceforge.net/lists/listinfo/w3af-develop
