文章目錄
零寬度字符簡介
零寬度字符是一些不可見的,不可打印的字符。它們存在於頁面中主要用於調整字符的顯示格式。
常見的零寬度字符及它們的unicode碼和原本用途:
零寬度空格符 (zero-width space) U+200B : 用於較長單詞的換行分隔
零寬度非斷空格符 (zero-width no-break space) U+FEFF : 用於阻止特定位置的換行分隔
零寬度連字符 (zero-width joiner) U+200D : 用於阿拉伯文與印度語系等文字中,使不會發生連字的字符間產生連字效果
零寬度斷字符 (zero-width non-joiner) U+200C : 用於阿拉伯文,德文,印度語系等文字中,阻止會發生連字的字符間的連字效果
左至右符 (left-to-right mark) U+200E : 用於在混合文字方向的多種語言文本中(例:混合左至右書寫的英語與右至左書寫的希伯來語),規定排版文字書寫方向為左至右
右至左符 (right-to-left mark) U+200F : 用於在混合文字方向的多種語言文本中,規定排版文字書寫方向為右至左
用法
零寬度字符在通常情況下,在一般的文本編輯器中是不可見的,比如:Hello,misc!
在這句話中我就用零寬度字符隱藏了信息,用CyberChef查看一下即可發現其中的奧秘
當然,將文本儲存為txt格式,用vim查看也可以直接看到其中隱藏的零寬度字符
其實每一種基於零寬度字符的隱寫都可以有自己的隱寫方式及加密方式,所以可能用這一個工具(或腳本)加密過的字符串在另一個解密網站就無法成功解密……
轉化為二進制的加密:https://zhuanlan.zhihu.com/p/87919817
轉化為Morse編碼的加密:https://zhuanlan.zhihu.com/p/75992161
加密方式雖多種多樣,但萬變不離其宗。使用零寬度字符隱寫,關鍵是將想要隱藏的內容用零寬度字符來表示,通過使用不同的零寬度字符,以及不同字符間的排列組合方式來達到隱寫的目的
注:加密和解密是一個可逆的過程,但是一定要用相同的方式(相同的工具/網址)進行加解密
在線解密:
https://330k.github.io/misc_tools/unicode_steganography.html
其他用法
隱形水印
逃脫敏感詞匹配
傳遞隱秘信息
相關文章:
用零寬度字符水印揭露泄密者身份:
https://www.freebuf.com/articles/web/167903.html
零寬度字符:和諧?屏蔽?不存在的
https://juejin.cn/post/6844903669192720391
例題:[UTCTF2020] zero
附件鏈接:https://pan.baidu.com/s/1Ivadp2r9cbKjIZM2vSFDQw
提取碼:7vmf
下載附件得到一個txt文件,里面是一長段英文,乍一看沒有什么特別的地方,但是將這個文件用vim查看,就會發現其中隱藏了大量的信息
很顯然是零寬度字符隱寫,在線網站弄一下,在上圖中可以看到共有五種零寬度字符,嘗試一下將U+200B這一項去掉,選擇其他四種字符進行解密,就可以得到flag:flag{whyNOT@sc11_4927aajbqk14}