文章总结: 本文阐述了Unicode的发展及其在娱乐与安全领域的应用。娱乐方面展示了利用特殊字符制作抽象文案和空白ID。安全方面重点分析了视觉欺骗如同形异义词伪造账号、RLO字符伪装文件后缀、缓冲区溢出及利用特殊字符绕过WAF进行XSS攻击的风险,指出其威胁多集中于钓鱼与视觉欺诈。 综合评分: 85 文章分类: 社会工程学,WEB安全,漏洞分析
Unicode趣谈
原创
风之轻语
星月安全工坊
2025年7月28日 11:31 北京
Unicode趣谈
Unicode符号表在文章结尾提供
Unicode简介
在早期的互联网发展阶段,由于缺乏统一规划,不同国家、不同操作系统各自采用不同的字符编码体系。比如,ASCII 作为英文字符集,仅能处理英文等少量字符;GB2312 专为简体中文设计,用于在计算机中表示汉字 。
这种分散的编码方式,在跨语言、跨系统交互时,极易出现编码冲突问题,导致文字显示乱码、信息传递错误等情况。
为解决这一难题,统一码(Unicode)应运而生。它致力于为世界上所有文字提供统一的编码方案,让不同语言的内容能在同一屏幕上正常显示,从根本上避免编码冲突,极大便利了跨语言的信息交流与展示,成为互联网全球化进程中关键的基础支撑 。
Unicode之娱乐
Unicode作为支持字符最多的编码集,几乎包括了世界上所有字符,像什么各种国家的语言,标点符号,偏旁部首,数学运算符等等,以及一些可见的或不可见的字符。
那么我们就来翻检一下字符表,看看有哪些好玩的字符
抽象字符
你一定在网上看到过一些抽象文案,比如:
古埃及先哲来告诉你: 𓀀 𓀁 𓀂 𓀃 𓀄 𓀅 𓀆 𓀇 𓀈 𓀉 𓀊 𓀋 𓀌 𓀍 𓀎 𓀏 𓀐 𓀑 𓀒 𓀓 𓀔 𓀕 𓀖 𓀗 𓀘 𓀙 𓀚 𓀛 𓀜 𓀝 𓀞 𓀟 𓀠 𓀡 𓀢 𓀣 𓀤 𓀥 𓀦 𓀧 𓀨 𓀩 𓀪 𓀫 𓀬 𓀭 𓀮 𓀯 𓀰 𓀱 𓀲 𓀳 𓀴 𓀵 𓀶 𓀷 𓀸 𓀹 𓀺 𓀻 𓀼 𓁊 𓁋 𓁌 𓁍 𓁎 𓁏 𓁐 𓁑 𓁒 𓁓 𓁔 𓁕 𓁖 𓁗 𓁘 𓁙 𓁚 𓁛 𓁜 𓁝 𓁞 𓁟 𓁠 𓁡 𓁢 𓁣 𓁤 𓁥 𓁦 𓁧 𓁨 𓁩 𓁪 𓁫 𓁬 𓁭
再比如说:
你说的对!但是我们两河流域不这么看: 𒀰𒀱𒀲𒀳𒀴𒀵𒀶𒀷𒀸𒀹𒀺𒀻𒀼𒀽𒀾𒀿𒀰𒀱𒀲𒀳𒀴𒀵𒀶𒀷𒀸𒀹𒀺𒀻𒀼𒀽𒀾𒀿𒁀𒁁𒁂𒁃𒁄𒁅𒁆𒁇𒁈𒁉𒁊𒁋𒁌𒁍𒁎𒁏𒁐𒁑𒁒𒁓𒁔𒁕𒁖𒁗𒁘𒁀𒁁𒁂𒁃𒁄𒁅𒁆𒁇𒁈𒁉𒁊𒀰𒀱𒀲𒀳𒀴𒀵𒀶𒀷𒀸𒀹𒀺𒀻𒀼𒀽𒀾𒀿𒁀𒁁𒁂𒁃𒁄𒁅𒁆𒁇𒁈𒀰𒀱𒀲𒀳𒀴𒀵𒀶𒀷𒀸𒀹𒀺𒀻𒀼𒀽𒀾𒀿𒁀𒁁𒁂𒁃𒁄𒁅𒁆𒁇𒁈𒁉𒁊𒁋𒁌𒁍𒁎𒁏𒁐𒁑𒁒𒁓𒁔𒁕𒁖𒁗𒁘𒁉𒁊𒁋𒁌𒁍𒁎𒁏
又比如说:
我刚吃了日本海鲜,救我,我要开始变异了…进化…生存……优先种族需要进食………ۦُُ۟۟ۖۖۖٛ۟ۗۖۚۥٌُٞۖۛۚ۟ۥٌٌۖۖ۟ۖۦٌۦٌۥۖ۟我已经神志不清了! ُُُٜ۪ۙۚۚۥ۟۟۟۟ۚۚ۟ۛۥۛۚۚۚ۟۟ۡۥۛۛ۟ۙۙۚۥۚۥُُۖ۟۟ۚۗ۟ۖۗۛٛٞۚj̠̪̱̲͕̰̈́͒̌̓̎̇̃͊j̭̥̫͍͉̠̫̇̏̈́̋̓̋̈́̀̿̈́j̥̜͚̥̲̭͙͓ۦُُ۟۟ۖۖۖٛ۟ۗۖۚۥٌُٞۖۛۚ۟ۥٌٌۖۖ۟ۖۦٌۥٌٌۖ۟ۚۛ۟۟۟۟ۡۗۥۚۚۥۥ۟۟۟ۡۛۛۡ۟۟ۘۗۥۗۚۗۖۗۗۚ۟ۥٌَُُُُُٜ۪ۖ۟۟ۚۗ۟ۖۗۛٛٞۚۚۙۚۚۥ۟۟۟۟ۚۚ۟ۛۥۛۚۚۚ۟۟ۡۥۛۛ۟ۙۙۚ肯德基…
以上这些抽象奇怪的符号,其实在Unicode字符表中都可以找到,有些是自带的,有些则是通过多种字符组合达到这种抽象的效果
比如说我要制作一个超出上下行,但其实是在同一行的抽象字符,可以这么做:
首先找一些正常的字符,比如疯狂星期四V我50,然后我们再使用Unicode中一些带有特殊功能的字符,在原本字符上添加
比如使用正常字符和阿拉伯字母扩展A(U+08A0到U+08FF)组合,就可以达到以上吃了日本海鲜的效果
空白名/重复ID
在Unicode字符表中,不仅支持可见字符,像换行、回车等不可见字符也是可以复制使用的,所以我们可以利用这些字符不可见的特性,达到发送空白消息,空白名,起重复ID的效果
比如说在评论区,输入一个空格后提示,不允许发送空白消息,那么我们就可以使用不可见来进行占位,达到发送空白消息的效果
这里以微信举例,我们都知道微信是不能发送空白消息的
那我们使用Unicode不可见字符试试呢?这里我使用的是U+200B零宽间隔作为占位符发送,这个字符的特点就是零宽间隔,也就是说,它的宽度是0,无法选中,从而达到了视觉效果上的不可见,哪怕我现在在这一行里输入了无数个,你们也无法看到
接下来把它复制粘贴到微信中发送,你会发现无法发送,这时候只需要按空格,就可以通过这种方式发送空格达到空白消息的效果
同样的方式也可以用在其他平台的任何输入框中,只要没有对字符进行过滤都可以使用
抖音空白消息
抖音空白昵称
空白热点名
Unicode之安全
通过以上Unicode字符,我们发现了许多字符的特性,有的不可见,有的看起来都要飞起来了但是实际在同一行,有的强制从右到左
对于网络安全来讲,Unicode本身并不存在危害,但是基于这些Unicode字符的特性,我们可以利用这些特性进行攻击和利用
视觉欺骗
视觉问题一般指几个不同的不同的字符在某个字体下看起来较为相同。可能是字符之间一对一相似、多个字符的组合字符和一个字符相似等,这种现象在字体较小的情况下会更加明显,在一些文章中这种问题也被称为同形异义词(homographs)问题。
比如说下面这串字符:
“Aa”和”Аа”,肉眼看上去几乎是一模一样的,但是其实前面是英文字母,后面是西里尔字母,通过这个方法,我们可以达到ID伪造或者重复名的效果
RLO扩展名伪装
在大部分国家和地区,书写和阅读方式都是从左到右,但在阿拉伯地区,他们的阅读和书写是从右到左的,Unicode作为致力于统一全球编码的字符集编码,当然也会兼容这一字符格式
在Unicode中,强制从右到左U+202E这个字符的特性是,将后续的文本的显示方向从默认的左到右(LTR)改为从右到左(RTL)
你可以尝试将手机的布局设置为从右至左,可以更直观的感受一下
从手机开发者选项中打开设置
或者把电脑的系统语言设置为阿拉伯语,会强制将所有布局变为从右至左
接下来回归正题,正常来说,强制从右至左的效果就是将文本翻转,比如”你好世界”,在”你”前面插入字符之后,会变为”界世好你”,那么我们可以使用这种方式,对文件名进行修改,从而让文件看起来像是其他文件类型
比我现在我创建一个名为AI.exe的可执行文件,现在使用RLO字符,使文件看起来像是文本文件
首先创建文件,在.之前右键插入RLO
然后输入txt,重命名完成就可以看到效果了,我们可以把文件图标进行修改,做进一步的伪装
识别方法也很简单,就是通过文件类型判断,在文件修改日期之后,可以看到真正的文件类型
非视觉欺骗
Unicode缓冲区溢出
字符编码的不同,每个字符的占用大小也不同,如果程序在转换时没有进行很好的处理,那么就会造成缓冲区溢出漏洞
参考文章:Unicode缓冲区溢出
假设一个程序被设计为,分配基于ASCII字符的缓冲区,但用户却传入了一个Unicode字符,导致转换时超出缓冲区容量
例如:分配了 200 字节缓冲区处理 ASCII 输入,但输入被转换为 Unicode 后变成 400 字节,造成溢出。
编码绕过
如果 Web 应用程序将用户输入的内容(包括Unicode字符)不安全地回显到页面上,它可能导致跨站脚本攻击(XSS)。例如,攻击者在输入中插入 Unicode 字符,以绕过输入过滤,然后注入恶意脚本。
例如:<script>alert('XSS')</script> ,服务器过滤script关键字,可以在中间插入零宽字符或其他字符,绕过服务器过滤,最后被浏览器渲染执行
总结
Unicode字符表网站:https://symbl.cc/cn/unicode-table/
Uincode除了正常的使用之外,更多的还是用来进行娱乐,Unicode安全只能提供一些简单的思路,很少可以做到直接攻击,大多都是通过视觉欺骗来进行钓鱼等攻击。
Unicode字符还是有很多娱乐效果的,这里给大家提供几个思路:
- 各个国家地区文字的相似符号和字符组合
可以达到的效果有:重复ID,账号伪装,夸张的文本显示
- 格式字符,如零宽间隔,连接符和无连接符,从左至右或从右至左
可以达到的效果有:绕过字符过滤,特殊视觉效果,字符占位等
另外,插入不可见字符也是会增加字数统计中的字符个数的,所以好像也可以用来凑字数?
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:星月安全工坊 风之轻语《Unicode趣谈》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论