[WEB SECURITY] On Session Riding, Client-side Trojans and Cross-site Request Forgeries
Matt Fisher
mfisher at spidynamics.com
Wed May 4 15:12:32 EDT 2005
Has anyone had the chance to test this on two different browsers ?
I.e. I'm doing my bank work on my first instance of IE, I open another
IE to surf.
> -----Original Message-----
> From: Sverre H. Huseby [mailto:shh at thathost.com]
> Sent: Wednesday, May 04, 2005 2:46 PM
> To: Jeremiah Grossman
> Cc: websecurity at webappsec.org
> Subject: Re: [WEB SECURITY] On Session Riding, Client-side
> Trojans and Cross-site Request Forgeries
>
> [Sverre H. Huseby]
>
> | It works on servers which are not vulnerable to HTML Injection, so
> | it's not XSS in the traditional meaning of the word. In fact,
> | scripting need not even be involved.
>
> [Jeremiah Grossman]
>
> | So I'm clear, can you give describe an example of this?
>
> Certainly. You can be the attacker, and I'll play the
> victim. You happen to know that I'm working with finances
> for a large corporation.
> One of my jobs is to pay all the company bills, a task I
> perform using a special enterprise web application at a bank
> (the kind of bank web application I have in mind does exist).
> You also know that I pay so many bills that I'm logged into
> the bank application almost continously throughout the day.
>
> For some reason you are familiar with the payment form the
> bank presents me with when I make payments. A simplified
> version of it may look like this:
>
> <form action="/enterprise/pay.do" method="post">
> From account:
> <select name="fromaccount">
> <option value="1">1234.56.78901</option>
> <option value="2">2345.67.89012</option>
> :
> </select>
> To account:
> <input type="text" name="toaccount"/>
> Amount:
> <input type="text" name="amount"/>
> </form>
>
> The bank server runs at bank.com. And you control the domain
> badguy.org. For some reason you also know, or guess, that I
> have this bad habit of surfing for beautiful women while at
> work. You prepare a very tempting web page for me at
> badguy.org, and inside that web page you embed the following form:
>
> <form action="https://bank.com/enterprise/pay.do" method="post">
> <input type="hidden" name="fromaccount" value="1"/>
> <input type="hidden" name="toaccount" value="3456.78.90123"/>
> <input type="hidden" name="amount" value="1000"/>
> <input type="submit" value="Click for free porn"/>
> </form>
>
> This form, on _your_ web server, now contains a lot of tiny,
> tempting pictures, and a button telling me to "Click for free
> porn" (OK, Kevin Mitnick would probably come up with a much
> more plausible SE attack.).
> Note how the form also contains prefilled stuff that matches
> the expectations of the bank I use, and that the action
> attribute points to the payment handler at the bank web server.
>
> Somehow you trick me into visiting your web site while I'm at work.
> And since I'm such a miserable person, I click on the button
> on _your_ site, hoping to find those babes (trojan). What
> happens? _My_ web browser, which is already authenticated
> over at bank.com, follows the instructions from your form,
> and thus visits that bank (cross-site
> requests) with the values you have dictated, along with the
> session cookie that proves that I'm in fact me (session
> riding). Result? The bank accepts my request to transfer
> 1000 money to some account, probably belonging to you or to
> someone you do not like.
>
> There's no scripting involved. Just the posting of a form
> given on one web site to another web site. The bank need not
> be open to any HTML Injection/Cross-site Scripting attacks.
>
> You _could_ add a script to _your_ web page to automatically
> post the form with no need for me to push that button, but
> that would still not be XSS, since the script is on _your_
> page, and running in the context of my browser's request to
> your web server. The bank would not be involved in the
> scripting in that case, and it would work even if the bank
> application was immune to HTML Injection.
>
>
> Sverre.
>
> --
> shh at thathost.com My web security book: Innocent Code
> http://shh.thathost.com/ http://innocentcode.thathost.com/
>
> ---------------------------------------------------------------------
> The Web Security Mailing List
> http://www.webappsec.org/lists/websecurity/
>
>
---------------------------------------------------------------------
The Web Security Mailing List
http://www.webappsec.org/lists/websecurity/
More information about the websecurity
mailing list