Abusing the "data" Protocol to Patsy Third Parties

2011-01-19 ~ Brendan Coles <bcoles at gmail dot com>

It is possible to send traffic to a third-party website without leaking the referer. With this knowledge it is possible to "patsy" a third party by forcing their browser to submit "evil" requests to a target server.

How It Works

RFC2616 - Section 14.36 states :

Mozilla Firefox 3.6.13, Opera 10.51 and Opera 11 treat the "data" protocol appropriately and do not send the HTTP referer. As a result it is possible to craft HTML which will force a user's browser to send a HTTP GET request to a third party target, without leaking the attacker's refering URL. This attack does not work on Internet Explorer 8. Earlier versions of IE are untested.

The following proof of concept is available.

Payloads

Any exploits which require HTTP GET requests can be used. For example :

Denial of Service

An attacker could chew up a target's bandwidth by pointing a user's browser to a large file on the target's server, without leaking the attacker's refering URL. This scenario is only likely if the attacker has access to a server with a large amount of internet traffic. The following proof of concept is available :

Some IRC servers do not close the connection when they receive a HTTP packet. This may result in a Denial of Service condition against the IRC server when too many open connections are initiated, without leaking the attacker's refering URL. This scenario is only likely if the attacker has access to a server with a large amount of internet traffic. The following proof of concept is available :

Pointing a user to a script which redirects back to the HTTP referer, without providing a referer, will result in a loop which could cause a denial of service condition on the target when too many open connections are initiated, without leaking the attacker's refering URL. This scenario is only likely if there's a broken redirect script on the target's server and the attacker has access to a server with a large amount of internet traffic.

Appendix

Abusing the data: Protocol to Patsy Third Parties - Live Proof of Concept