Breaking Systems For Fun And Profit

Zerowidth Fun

Create a file on the commandline like this, make sure to type the keys between brackets as indicated:

1
2
3
4
5
6
7
$ echo flops > fl<CTRL+SHIFT+U>200B<SPACE>ops
$ ls -l
-rw-r--r--. 1 wander wander   0 Sep  7 12:20 flo​ps
$ cat flops
cat: flops: No such file or directory
$ cat fl<TAB>
flops

What it does

It includes the Unicode character U+200B in the middle of the filename, also known as the Zero Width Space.

Why it works

A Zero Width Space is not shown on screen, and currently it is not called out in the output of ls, but is a part of the filename.

Using Tab-Completion the filename will be completed correctly, but invisibly.

TL;DR

  • Easy filenames
  • Annoyed Cow-orkers
  • Fun