So Ive noticed a couple questions relating to Cross Site Scripting
ask for an explanation... and how to test for the vulnerabilities.
CSS is still a commonly misunderstood attack and the dangers
unexplained.

I wont go into GREAT detail, but I will try and cover some of the
basics as I know them.

Cross-Site Scripting attacks are often bundled with In-line
Scripting attacks... they are hard to distinguish between so, its
generally all grouped together... I just like to call them all CSS
vulnerabilities.

CSS issues occurs only in web applications. (AFAIK).
A CSS vulnerability can be identified when a web application
echoes improperly filtered HTTP "client-side" data thus
resulting in executable client-side scripting. (JavaScript,
ActiveX, JScript, VBScript, Flash, Java, etc.).

In english... this is means.... if one were to put in some weird
text string (Containing HTML/JavaScript) into some search
field and the web page response contains the entered string
and thus executes the supplied JavaScript.... there's a
vulnerability.

Search field are a common occurrence of CSS as most
developers dont know to properly filter the output.

something like:
www.foo.com/search.cgi?string=*SCRIPT>CSS ME FUNCTION*/SCRIPT>

or even 404 error pages:
"The request URL: www.foo.com/*SCRIPT>CSS ME FUNCTION*/SCRIPT>
could not be found."


There are generally 2 ways CSS are taken advantage of.

1) target user needing to click on a special link to execute CSS.

Example:
<A HREF="www.foo.com/*SCRIPT>CSS ME FUNCTION*/SCRIPT>">
CLICK FOR PIZZA
</A>


2) target user simply only needs to view a page.

common in WebMail, Message Boards and On-line Auctions.
Someone send you an email...you read a post... or whatever...
No clicky, clicky needed.

Yes, the second is far far the worst.


So... why is CSS such a big deal? What are the bad things that
can be done? Well... of course cookie stealing can be performed
which leads to session stealing and such. But... this is just
one potential. The real danger of CSS attacks as I see
them is that the "Code" executes in the same domain as the
target site. Such as "foo.com" or "whatever.com"

Having all the same abilities and access as the target domain.

For all intents and purposes the attack becomes whoever.com
for that moment in time. Like your favorite web mail
provider. This is very important to understand.

Further, these attacks are very hard to detect once they run.
They can be extremely fast and stealthy and most often
leave no log or any trace.

For instance.... when you check you HTML mail on...
"www.cssme.com" and someone has sent you a crafted
HTML email message... the code in that email message
is executed as "www.cssme.com" so... it can steal and
set cookies sure... also can exploit holes in your browser
which can lead to system compromise.... send you
to the latest spammer haven... force you to bid on the latest
rubber toys....or maybe even just track you for fun sending
all your data to some off-domain host. Neat eh.


How to test.... its easy really... yet can get tricky... thats why
so many issues are popping up. Pick you favorite CGI
parameter where you see the data getting echoed to the
screen. If you can get HTML and/or JavaScript to execute
on the response, chances are theres an issue.

Many times data output is not properly filtered... so vulns
are easy to find... the real challenge is to find a way to bypass
the implemented filters when output is actively trying
to be stripped. AKA: "Filter-Bypass Manipulation"


OK, nuff. Done with the ramble.

Hopefully the above made some kind of sense.

Jeremiah Grossman
WhiteHat Security, Inc.




Adik wrote:

> Hi!
> There are a lot of CSS vuln discovered everyday. As i have understood
> Cross site scripting is all about stealing a cookie, right? Cookies do not
> contain logins and passwords in them. So what is so important about them? I
> know that you can steal someone's session id and enter his mailbox but still
> you are limited. I am not quite familiar with it so my question is what is the
> worst thing attacker can do (besides stealing cookie), with a website which is
> vulnerable to cross site scripting? Please enlighten me! Thanks

Reply via email to