0x0 简介
零宽度空格,顾名思义即,具有空格的功能,但宽度为零。例如:
1LeftRight
上述文本中,我们看到的是LeftRight,但实际上在Left和Right之间有10个Zero-width space,它不占用宽度,但占用字节空间。
0x1 实例
Zero-width space的Unicode编码为U+FEFF,二进制编码为“\xE2\x80\x8E”,根据维基百科描述,其主要用于后台处理字符边界而又无需可见空格的情况。
例如,下边两个字符串,我们在任意位置鼠标双击时会看到明显效果,
包含Zero-width space,双击任意位置选中某个单词
1LoremIpsumDolorSitAmetConsecteturAdipiscingElitSedDoEiusmodTemporIncididuntUtLaboreEtDoloreMagnaAliquaUtEnimAdMinimVeniamQuisNostrudExercitationUllamcoLaborisNisiUtAliquipExEaCommodoConsequatDuisAuteIrureDolorInReprehenderitInVoluptateVelitEsseCillumDoloreEuFugiatNullaPariaturExcepteurSintOccaecatCupidatatNonProidentSuntInCulpaQuiOfficiaDeseruntMollitAnimIdEstLaborum
不含Zero-width space,双击任意位置选中全部字符
1LoremIpsumDolorSitAmetConsecteturAdipiscingElitSedDoEiusmodTemporIncididuntUtLaboreEtDoloreMagnaAliquaUtEnimAdMinimVeniamQuisNostrudExercitationUllamcoLaborisNisiUtAliquipExEaCommodoConsequatDuisAuteIrureDolorInReprehenderitInVoluptateVelitEsseCillumDoloreEuFugiatNullaPariaturExcepteurSintOccaecatCupidatatNonProidentSuntInCulpaQuiOfficiaDeseruntMollitAnimIdEstLaborum
0x2 攻击
DoS攻击
由于该字符不显示但占用空间,故可以用来发送大量的该字符来DoS,用户看不到任何字符,但已经把空间占满。例如,对QQ、微信等DoS攻击
PS: 微信发送的纯文本大小为16K,测试大量零宽度空格不影响。
UI Spoof
例如CTF题目中提交flag时可以加几个这个字符
再例如在字符串相等判断的代码里加几个这个字符,搞死抄袭代码的程序员:)
参考文献