[ SOURCE: http://www.secureroot.com/security/advisories/9761225024.html ] -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Security Advisory: Various Charles Schwab online trading problems *Date 4 December 2000 *Author Jeffrey W. Baker, email jwbaker@acm.org *Copyright Statement This security advisory is Copyright 2000 by Jeffrey William Baker (jwbaker@acm.org). The advisory may be distributed in whole or in part without modification. *Background Charles Schwab operates an online securities trading service. On 25 August 2000 I discovered three security problems with this service. Between 25 August and 28 August 2000, I had discussions with Schwab staff, but with no result. As of the time of this writing, the flaws still exist and I have no reason to believe that they are in the process of being fixed. *Synopsis Through cross-site scripting[1], an attacker can gain control of the account of a Charles Schwab customer who uses the online trading service. The attacker can choose to either gain interactive use of the service, or to cause the account holder to perform inadvertent unwanted actions on the attacker's behalf. Additionally, it may be possible to predict a user's login cookie. *Details The Schwab trading web site does not properly validate form input. In some places, the form input is echoed back to the user's browser without proper HTML escaping. Therefore, it is possible for an attacker to cause JavaScript code to be executed in the user's browser. The attacker could use this ability to retrieve the HTTP cookie which Schwab uses for user authentication. As a proof-of-concept, a Schwab user could visit this URL, and their login cookie will be presented to them in a JavaScript alert dialog. The proof-of-concept can be easily modified to instead send the login cookie to an arbitrary HTTP server. The URL is: https://investing.schwab.com/trading/trdmoesverify/?menu=2&submenu=1&ADOrderEntryNumber=0&AffirmativeDetermination=0&prenv=N&numOrders=3&Symbol0=foo%22>