Clickjacking (User Interface redress attack, UI redress attack, UI redressing) is a malicious technique of tricking a Web user into clicking on something different from what the user perceives they are clicking on, thus potentially revealing confidential information or taking control of their computer while clicking on seemingly innocuous web pages. It is a browser security issue that is a vulnerability across a variety of browsers and platforms. A clickjack takes the form of embedded code or a script that can execute without the user's knowledge, such as clicking on a button that appears to perform another function. The term "clickjacking" was coined by Jeremiah Grossman and Robert Hansen in 2008. Clickjacking can be understood as an instance of the confused deputy problem, a term used to describe when a computer is innocently fooled into misusing its authority.
Clickjacking is possible because seemingly harmless features of HTML web pages can be employed to perform unexpected actions.
A clickjacked page tricks a user into performing undesired actions by clicking on a concealed link. On a clickjacked page, the attackers load another page over it in a transparent layer. The users think that they are clicking visible buttons, while they are actually performing actions on the hidden page. The hidden page may be an authentic page; therefore, the attackers can trick users into performing actions which the users never intended. There is no way of tracing such actions to the attackers later, as the users would have been genuinely authenticated on the hidden page.
A user might receive an email with a link to a video about a news item, but another valid page, say a product page on Amazon.com, can be "hidden" on top or underneath the "PLAY" button of the news video. The user tries to "play" the video but actually "buys" the product from Amazon.
Other known exploits include:
- Tricking users into enabling their webcam and microphone through Flash
- Tricking users into making their social networking profile information public
- Making users follow someone on Twitter
- Sharing links on Facebook
While technical implementation of these attacks may be challenging due to cross-browser incompatibilities, a number of tools such as BeEF or Metasploit Project offer almost fully automated exploitation of clients on vulnerable websites. Clickjacking may be facilitated by - or may facilitate - other web attacks, such as XSS.
Likejacking is a malicious technique of tricking users of a website into posting a Facebook status update for a site they did not intentionally mean to "like". The term "likejacking" came from a comment posted by Corey Ballou in the article How to "Like" Anything on the Web (Safely), which is one of the first documented postings explaining the possibility of malicious activity regarding Facebook's "like" button.
According to an article in IEEE Spectrum, a solution to likejacking was developed at one of Facebook's hackathons. A "Like" bookmarklet is available that avoids the possibility of likejacking present in the Facebook Like Button.
Cursorjacking is a UI redressing technique to change the cursor from the location the user perceives, discovered in 2010 by Eddy Bordi, a researcher at Vulnerability.fr, Marcus Niemietz demonstrated this with a custom cursor icon, and in 2012 Mario Heiderich by hiding the cursor.
Password manager attack
A 2014 paper from researcher at the Carnegie Mellon University found that whilst browsers refuse to autofill if the protocol on the current login page is different from the protocol at the time the password was saved, some password managers would insecurely fill in passwords for the http version of https-saved passwords. Most managers did not protect against iFrame and redirection based attacks and exposed additional passwords where password synchronization had been used between multiple devices.
Protection against clickjacking (including likejacking) can be added to Mozilla Firefox desktop and mobile versions by installing the NoScript add-on: its ClearClick feature, released on 8 October 2008, prevents users from clicking on invisible or "redressed" page elements of embedded documents or applets. According to Google's "Browser Security Handbook" from year 2008, NoScript's ClearClick is "the only freely available product that offers a reasonable degree of protection" against Clickjacking. Protection from the newer cursorjacking attack was added to NoScript 2.2.8 RC1.
GuardedID (a commercial product) includes client-side clickjack protection for users of Internet Explorer and Firefox without interfering with the operation of legitimate iFrames. GuardedID clickjack protection forces all frames to become visible.
Gazelle is a Microsoft Research project secure web browser based on IE, that uses an OS-like security model, and has its own limited defenses against clickjacking. In Gazelle, a window of different origin may only draw dynamic content over another window's screen space if the content it draws is opaque.
Introduced in 2009 in Internet Explorer 8 was a new HTTP header
X-Frame-Options which offered a partial protection against clickjacking and was shortly after adopted by other browsers (Safari, Firefox, Chrome, and Opera). The header, when set by website owner, declares its preferred framing policy: values of DENY, SAMEORIGIN, or ALLOW-FROM origin will prevent any framing, framing by external sites, or allow framing only by the specified site, respectively. In addition to that, some advertising sites return a non-standard ALLOWALL value with the intention to allow framing their content on any page (equivalent of not setting X-Frame-Options at all).
Content Security Policy
frame-ancestors directive of Content Security Policy (introduced in version 1.1) can allow or disallow embedding of content by potentially hostile pages using iframe, object, etc. This directive obsoletes the X-Frame-Options directive. If a page is served with both headers, the frame-ancestors policy is preferred by the browser.
Example frame-ancestors policies:
# Disallow embedding. All iframes etc. will be blank, or contain a browser specific error page. Content-Security-Policy: frame-ancestors 'none' # Allow embedding of [[same-origin policy|own content]] only. Content-Security-Policy: frame-ancestors 'self' # Allow specific origins to embed this content Content-Security-Policy: frame-ancestors example.com wikipedia.org
- Browser security
- Internet security
- Internet safety
- Hacker (computer security)
- Cross-site scripting
- Social jacking
- Robert McMillan (17 September 2008). "At Adobe's request, hackers nix 'clickjacking' talk". PC World. Retrieved 2008-10-08.
- Megha Dhawan (29 September 2008). "Beware, clickjackers on the prowl". India Times. Retrieved 2008-10-08.
- Dan Goodin (7 October 2008). "Net game turns PC into undercover surveillance zombie". The Register. Retrieved 2008-10-08.
- Fredrick Lane (8 October 2008). "Web Surfers Face Dangerous New Threat: 'Clickjacking'". newsfactor.com. Retrieved 2008-10-08.[dead link]
- Sumner Lemon (30 September 2008). "Business Center: Clickjacking Vulnerability to Be Revealed Next Month". Retrieved 2008-10-08.
- You don't know (click)jack Robert Lemos, October 2008
- The Confused Deputy rides again!, Tyler Close, October 2008
- Daniel Sandler (12 February 2009). "Twitter's "Don't Click" prank, explained (dsandler.org)". Retrieved 2009-12-28.
- Krzysztof Kotowicz (21 December 2009). "New Facebook clickjacking attack in the wild". Retrieved 2009-12-29.
- BBC (3 June 2010). "Facebook "clickjacking" spreads across site". BBC News. Retrieved 2010-06-03.
- "The Clickjacking meets XSS: a state of art". Exploit DB. 2008-12-26. Retrieved 2015-03-31.
- Krzysztof Kotowicz. "Exploiting the unexploitable XSS with clickjacking". Retrieved 2015-03-31.
- Cohen, Richard (31 May 2010). "Facebook Work - "Likejacking"". Sophos. Retrieved 2010-06-05.
- Ballou, Corey (2 June 2010). ""Likejacking" Term Catches On". jqueryin.com. Retrieved 2010-06-08.[dead link]
- Perez, Sarah (2 June 2010). ""Likejacking" Takes Off on Facebook". ReadWriteWeb. Retrieved 2010-06-05.
- Kushner, David (June 2011). "Facebook Philosophy: Move Fast and Break Things". spectrum.ieee.org. Retrieved 2011-07-15.
- Perez, Sarah (23 April 2010). "How to "Like" Anything on the Web (Safely)". ReadWriteWeb. Retrieved 24 August 2011.
- Krzysztof Kotowicz (18 January 2012). "Cursorjacking Again". Retrieved 2012-01-31.
- Aspect Security. "Cursor-jacking attack could result in application security breaches". Retrieved 2012-01-31.
- "Mozilla Foundation Security Advisory 2014-50". Mozilla. Retrieved 17 August 2014.
- "Password Managers: Attacks and Defenses" (PDF). Retrieved 26 July 2015.
- Giorgio Maone (24 June 2011). "NoScript Anywhere". hackademix.net. Retrieved 2011-06-30.
- Giorgio Maone (8 October 2008). "Hello ClearClick, Goodbye Clickjacking". hackademix.net. Retrieved 2008-10-27.
- Michal Zalevski (10 December 2008). "Browser Security Handbook, Part 2, UI Redressing". Google Inc. Retrieved 2008-10-27.
- Robert Hansen (4 February 2009). "Clickjacking and GuardedID ha.ckers.org web application security lab". Retrieved 2011-11-30.
- Wang, Helen J.; Grier, Chris; Moschchuk, Alexander; King, Samuel T.; Choudhury, Piali; Venter, Herman (August 2009). "The Multi-Principal OS Construction of the Gazelle Web Browser" (PDF). 18th Usenix Security Symposium, Montreal, Canada. Retrieved 2010-01-26.
- Giorgio Maone (27 October 2008). "Hey IE8, I Can Has Some Clickjacking Protection". hackademix.net. Retrieved 2008-10-27.
- Eric Lawrence (27 January 2009). "IE8 Security Part VII: ClickJacking Defenses". Retrieved 2010-12-30.
- Eric Lawrence (30 March 2010). "Combating ClickJacking With X-Frame-Options". Retrieved 2010-12-30.
- Ryan Naraine (8 June 2009). "Apple Safari jumbo patch: 50+ vulnerabilities fixed". Retrieved 2009-06-10.
- https://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header The X-Frame-Options response header — MDC
- Adam Barth (26 January 2010). "Security in Depth: New Security Features". Retrieved 2010-01-26.
- "Web specifications support in Opera Presto 2.6". 12 October 2010. Retrieved 2012-01-22.
- "HTTP Header Field X-Frame-Options". IETF. 2013.
- "Content Security Policy Level 2". w3.org. 2014-07-02. Retrieved 2015-01-29.