Yeah, the curlsh was fun as well. More fun than scary in my opinion.
Timing attacks have been around for a few decades already and I don’t really think they are gaining traction. Perhaps are they getting more attention, but I see this is as a good thing.
The case of curlsh is, just like here, a nice proof of concept. If it helps people understand the danger of curlsh, that’s good. If you don’t trust a server (and you probably shouldn’t trust a server), don’t curlsh. Download the script, review it, run it. If you do trust a server and this server detects you’re doing curlsh and uses this “exploit” to put you in trouble, then you shouldn’t have trusted this server. :)
Loosely related is the nice warning Paypal displays in the JS console: https://www.paypal.com . I think these proofs of concept are mostly harmless, and mostly beneficial as they raise security awareness.
It just adds to the client-side JS obfuscation toolkit. One could detect if devtools are opened and clear all dom and state to make it harder for end-user to check what is happening. Obviously, like all other obfuscation techniques this is also not fool-proof at all. It is not a break-through at all :)
Amusingly, the text only changes when I’m holding down the resize handle on the devtools window. It seems that the speed difference from merely having devtools open on Mac Chrome isn’t enough to trigger this.
This is fun, well done!
FYI, tested on Chrome 52, works well when I open devtools and the text changes back properly when I close devtools.
s/fun/scary, but sure ;-)
This reminds me quite a bit of the recent story about detecting
curl foo | bashat the server and changing the script output accordingly.I think this is a very bad type of attack that seems to be gaining traction and will change how we think about security.
Yeah, the
curlshwas fun as well. More fun than scary in my opinion.Timing attacks have been around for a few decades already and I don’t really think they are gaining traction. Perhaps are they getting more attention, but I see this is as a good thing.
The case of
curlshis, just like here, a nice proof of concept. If it helps people understand the danger ofcurlsh, that’s good. If you don’t trust a server (and you probably shouldn’t trust a server), don’tcurlsh. Download the script, review it, run it. If you do trust a server and this server detects you’re doingcurlshand uses this “exploit” to put you in trouble, then you shouldn’t have trusted this server. :)Loosely related is the nice warning Paypal displays in the JS console: https://www.paypal.com . I think these proofs of concept are mostly harmless, and mostly beneficial as they raise security awareness.
whoa, I had no idea you could css format console text
I think that’s a chrome-specific extension. You might also want to take a look at
console.tableand a bunch of other nifty extensions.It works in FF too! And anyways, the console is now a standardized1 API. Non-standard stuff will soon either be washed away, or be standardized.
I was aware of
console.table;%c, however, has a nice big red TODO: process%cin the living standard @awal posted below hahaHow is this a bad type of attack? What kind of compromise could happen from knowing the devtools are open?
It just adds to the client-side JS obfuscation toolkit. One could detect if devtools are opened and clear all dom and state to make it harder for end-user to check what is happening. Obviously, like all other obfuscation techniques this is also not fool-proof at all. It is not a break-through at all :)
Gotcha, and yeah, agreed. :)
Amusingly, the text only changes when I’m holding down the resize handle on the devtools window. It seems that the speed difference from merely having devtools open on Mac Chrome isn’t enough to trigger this.
On Chrome on Mac, after I close the console the text does not change back.
Oh, thanks for the report. if only I had a mac to debug properly :(
I’d still see what could be wrong.