Issue metadata
Sign in to add a comment
|
Security: High-jacking clicks in google-chromes menu buttons to show own deceptive menus. (line of death exploit)
Reported by
webdesig...@gmail.com,
Mar 5 2017
|
||||||||||||||||||||
Issue descriptionThis template is ONLY for reporting security bugs. If you are reporting a Download Protection Bypass bug, please use the "Security - Download Protection" template. For all other reports, please use a different template. Please READ THIS FAQ before filing a bug: https://www.chromium.org/Home /chromium-security/security-faq Please see the following link for instructions on filing security bugs: http://www.chromium.org/Home/chromium-security/reporting-security-bugs NOTE: Security bugs are normally made public once a fix has been widely deployed. VULNERABILITY DETAILS Omnibox (or Location Bar), navigation icons, menu icon, and other indicator icons compromised. Also called the 'line of death'. All buttons and menus can be click highjacked, by any website owner/XSS. Please try this (basic)proof of concept webpage I have created. First click on the chrome menu to the right. A fake menu will popup. 'click update your browser, to download 'google-update-installer.exe'. You can also click the little 'i' to he left of the url, to show a fake popup that tells the user the page is secure +safe'. All the buttons can be mapped,and abused. How this was done: I accidentally came across this when making a browser game (space invaders) , I made a custom cursor. and noticed it crossed both the, 'line of death' as well as into the f12 inspector console. I have made a very simple and rushed webpage to demonstrate how this could be abused, please excuse the crudeness, and bad programming(very tired) I rushed this to bring you a working proof of concept. VERSION Chrome Version: Version 56.0.2924.87 (64-bit) Operating System: Distributor ID: LinuxMint Description: Linux Mint 18 Sarah Release: 18 Codename: sarah REPRODUCTION CASE Please include a demonstration of the security bug, such as an attached HTML or binary file that reproduces the bug when loaded in Chrome. PLEASE make the file as small as possible and remove any content not required to demonstrate the bug. FOR CRASHES, PLEASE INCLUDE THE FOLLOWING ADDITIONAL INFORMATION Type of crash: [tab, browser, etc.] Crash State: [see link above: stack trace, registers, exception record] Client ID (if relevant): [see link above]
,
Mar 5 2017
Here is a video demonstration. Description: Both the info popup and the chrome popup are bypassed, despite the user thinking they are clicking on the google-chrome buttons. Instead our fake menus are shown. Encouraging the user to click the big red button to 'update google chrome'. Instead our own file is downloaded. Called 'Google-update-installer.exe'. This could be a malicous file, that the user unwittingly installs. Believing it to be from google.
,
Mar 6 2017
How this works: Look at the custom cursor I used(cursor-space-2.png). It has a large amount of empty space below it. Using CSS you can change both the cursor, and the point where it clicks. I chose the bottom right corner.. So in this POC while it looks like the cursor is pointing to the menu button or info button next to the URL. In reality it is actually pointing near the top of the screen. Using this deception to our advantage: We can track where the user thinks the mouse is/vs where it actually is using JavaScript. So using the console, and click events. I was able to map out where the mouse was(in pixels) when the 'fake' cursor was on the google-chrome menu buttons...While in reality the actual pointer of the cursor is invisible and still in the webpage, below the 'line of death'. So I started mapping out chromes UI buttons. I started with that (i) to the left of the URL. first, get the buttons corordinates with our 'fake' cursor. Click to the left of the button, click to the right, click to the top, click to the bottom, display in console. All the while the real pointer is hidden, and still on the webpage. Using this I wrote some more code, => If 'mouse click event' (is between these two X co-ordinates) and (is also between these two Y co-ordinates) => then info button has been clicked. => Show own fake popup (info.png). 'This page is secure' ===> It most defiantly is NOT. Ideally the attacker will make his own element, that looks just like a legitimate Chrome popup', and can easily use CSS to perfectly replicate the fade-in and zoom in animation. In the POC I have just used an image, and Animate.css library to crudely demonstrate this. I also mapped out the menu button using similar code. This UI element is to the right of the screen, so we need to work from the right edge for one of the co-ordinates instead, The x axis. This is important because people have different sized screens or might just resize the window, moving the button further to the left. You can't check if it is between two co-ordinates on the x axis. But, The button will ALWAYS be a certain amount of pixels from the right of the window. So: if 'mouse event click' ==> (is x axis 30px from the right?) and (is it also between these two numbers for the y axis?)==> then the menu button has been clicked ==> show fake menu popup(menu.png) 'UPDATE GOOGLE CHROME NOW 'BIG ANGRY RED BUTTON!'===> User:'I Better do what google-chrome tells me to, don't want to get a virus' User then clicks the big angry button, prompting a download of our own fake 'google-chrome-installer.exe'. This is all plausible to the average user. I believe if refined, this POC could be convincing enough even to the more experienced and security aware users. Note: I did not make the chevron/menu overlap the browser in this POC. But it may be possible using another custom cursor with the chevron+mouse on it. By preloading hundred of these with different positions, so that; When you click ==>JavaScript gets the click position ==>finds the correct pointer/chevron combo that will line up with our pop-up==> swapping the cursor in and out so fast it looks animated. the chevron maybe fades-in/out in like 120ms or less. This might fool users to make it look even more official. I have not tried this, but it is worth exploring too.
,
Mar 6 2017
More info on the 'line of death': https://textslashplain.com/2017/01/14/the-line-of-death/
,
Mar 6 2017
I believe this is Issue 640227
,
Mar 6 2017
Can also add this cursor on hover event, for more than 1 sec, change cursor to this 'secure-cursor.png' popup. dismiss on movement away from info in url bar.
,
Mar 6 2017
Re #c6: Indeed. Thanks elawrence@ I knew this was reported earlier but could not find the bug myself.
,
Mar 6 2017
when was it reported? Out of curiosity I was wondering how late I was. I had been sitting on this for a little while. Also How long before I can write an article on it?
,
Jun 18 2017
This bug has been closed for more than 14 weeks. Removing security view restrictions. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot |
|||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||
Comment 1 by webdesig...@gmail.com
, Mar 5 2017