Unicode符号表在文章结尾提供
Unicode简介
在早期的互联网发展阶段,由于缺乏统一规划,不同国家、不同操作系统各自采用不同的字符编码体系。比如,ASCII 作为英文字符集,仅能处理英文等少量字符;GB2312 专为简体中文设计,用于在计算机中表示汉字 。
这种分散的编码方式,在跨语言、跨系统交互时,极易出现编码冲突问题,导致文字显示乱码、信息传递错误等情况。
为解决这一难题,统一码(Unicode)应运而生。它致力于为世界上所有文字提供统一的编码方案,让不同语言的内容能在同一屏幕上正常显示,从根本上避免编码冲突,极大便利了跨语言的信息交流与展示,成为互联网全球化进程中关键的基础支撑 。
Unicode之娱乐
Unicode作为支持字符最多的编码集,几乎包括了世界上所有字符,像什么各种国家的语言,标点符号,偏旁部首,数学运算符等等,以及一些可见的或不可见的字符。
那么我们就来翻检一下字符表,看看有哪些好玩的字符
抽象字符
你一定在网上看到过一些抽象文案,比如:
古埃及先哲来告诉你: 𓀀 𓀁 𓀂 𓀃 𓀄 𓀅 𓀆 𓀇 𓀈 𓀉 𓀊 𓀋 𓀌 𓀍 𓀎 𓀏 𓀐 𓀑 𓀒 𓀓 𓀔 𓀕 𓀖 𓀗 𓀘 𓀙 𓀚 𓀛 𓀜 𓀝 𓀞 𓀟 𓀠 𓀡 𓀢 𓀣 𓀤 𓀥 𓀦 𓀧 𓀨 𓀩 𓀪 𓀫 𓀬 𓀭 𓀮 𓀯 𓀰 𓀱 𓀲 𓀳 𓀴 𓀵 𓀶 𓀷 𓀸 𓀹 𓀺 𓀻 𓀼 𓁊 𓁋 𓁌 𓁍 𓁎 𓁏 𓁐 𓁑 𓁒 𓁓 𓁔 𓁕 𓁖 𓁗 𓁘 𓁙 𓁚 𓁛 𓁜 𓁝 𓁞 𓁟 𓁠 𓁡 𓁢 𓁣 𓁤 𓁥 𓁦 𓁧 𓁨 𓁩 𓁪 𓁫 𓁬 𓁭 𓁮 𓁯 𓁰 𓁱 𓁲 𓁳 𓁴 𓁵 𓁶 𓁷 𓁸 𓁹 𓁺 𓁻 𓁼 𓁽 𓁾 𓁿 𓂀 𓂁 𓂂 𓂃 𓂄 𓂅 𓂆 𓂇 𓂈 𓂉 𓂊 𓂋 𓂌 𓂍 𓂎 𓂏 𓂐 𓂑 𓂒 𓂓 𓂔 𓂕 𓂖 𓂗 𓂘 𓂙 𓂚 𓂛 𓂜 𓂝 𓂞 𓂟 𓂠 𓂡 𓂢 𓂣 𓂤 𓂥 𓂦 𓂧 𓂨 𓂩 𓂪 𓂫 𓂬 𓂭 𓂮 𓂯 𓆨 𓆩 𓆪 𓆫 𓆬 𓆭 𓆮 𓆯 𓆰 𓆱 𓆲 𓆳 𓆴 𓆵 𓆶 𓆷 𓆸 𓆹 𓆺 𓆻 𓆼 𓆽 𓆾 𓆿 𓇀 𓇁 𓇂 𓇃 𓇄 𓇅 𓇆 𓇇 𓇈 𓇉 𓇊 𓇋 𓇌 𓇍 𓇎 𓇏 𓇐 𓇑 𓇒 𓇓 𓇔 𓇕 𓇖 𓇗 𓇘 𓇙 𓇚 𓇛 𓇜 𓇝 𓇞 𓇟 𓇠 𓇡 𓇢 𓇣 𓇤 𓇥 𓇦 𓅹 𓅺 𓅻 𓅼 𓅽 𓅾 𓅿 𓆀 𓆁 𓆂 𓆃 𓆄 𓆅 𓆆 𓆇 𓆈 𓆉 𓆊 𓆋 𓆌 𓆍 𓆎 𓆏 𓆐 𓆑 𓆒 𓆓 𓆔 𓆕 𓆖 𓆗 𓆘 𓆙 𓆚 𓆛 𓆜 𓆝 𓆞 𓆟 𓆠 𓆡 𓆢 𓆣 𓆤 𓆥 𓆦 𓆧 𓅈 𓅉 𓅊 𓅋 𓅌 𓅍 𓅎 𓅏 𓅐 𓅑 𓅒 𓅓 𓅔 𓅕 𓅖 𓅗 𓅘 𓅙 𓅚 𓅛 𓅜 𓅝 𓅞 𓅟 𓅠𓅡 𓅢 𓅣 𓅤 𓅥 𓅦 𓅧 𓅨 𓅩 𓅪 𓅫 𓅬 𓅭 𓅮 𓅯 𓅰 𓅱 𓅲 𓅳 𓅴 𓅵 𓅶 𓅷 𓅸 𓃵 𓃶 𓃷 𓃸 𓃹 𓃺𓅠𓅡𓅢𓅣𓅤𓅥𓅦𓅧𓅨𓅩𓅪𓅫𓅬𓅭𓅮𓅯𓅰𓅱𓅲𓅳𓅴𓅵𓅶𓅷𓅸𓅹𓅺𓅻𓅼𓅽𓅾𓅿𓆀𓆁𓆂𓆃𓆄𓆅𓆆𓆇𓆈𓆉𓆊𓆋𓆌𓆍𓆎𓆏𓆐𓆑𓆒𓆓𓆔𓆕𓆖𓆗𓆘𓆙𓆚𓆛𓆜𓆝𓆞𓆟𓆠𓆡𓆢𓆣𓆤𓆥𓆦𓆧𓆨𓆩𓆪𓆫𓆬𓆭𓆮𓆯𓆰𓆱𓆲𓆳𓆴𓆵𓆶𓆷𓆸𓆹𓆺𓆻𓆼𓆽𓆾𓆿𓇀𓇁𓇂𓇃𓇄𓇅𓇆𓇇𓇈𓇉𓇊𓇋𓇌𓇍𓇎𓇏𓇐𓇑𓇒𓇓𓇔𓇕𓇖𓇗𓇘𓇙𓇚𓇛𓇜𓇝𓇞𓇟𓇠𓇡𓇢𓇣𓇤𓇥𓇦𓇧𓇨𓇩𓇪𓇫𓇬𓇭𓇮𓇯𓇰𓇱𓇲𓇳𓇴𓇵𓇶𓇷𓇸𓇹𓇺𓇻𓇼𓇽𓇾𓇿𓈀𓈁𓈂𓈃𓈄𓈅𓈆𓈇𓈈𓈉𓈊𓈋𓈌𓈍𓈎𓈏𓈐𓈑𓈒𓈓𓈔𓈕𓈖𓈗𓈘𓈙𓈚𓈛𓈜𓈝𓈞𓈟𓈠𓈡𓈢𓈣𓈤𓈥𓈦𓈧𓈨𓈩𓈪𓈫𓈬𓈭𓈮𓈯𓈰𓈱𓈲𓈳𓈴𓈵𓈶𓈷𓈸𓈹𓈺𓈻𓈼𓈽𓈾𓈿𓉀𓉁𓉂𓉃𓉄𓉅𓉆𓉇𓉈𓉉𓉊𓉋𓉌𓉍𓀀𛀍𛰼/p>
再比如说:
你说的对!但是我们两河流域不这么看: 𒀰𒀱𒀲𒀳𒀴𒀵𒀶𒀷𒀸𒀹𒀺𒀻𒀼𒀽𒀾𒀿𒀰𒀱𒀲𒀳𒀴𒀵𒀶𒀷𒀸𒀹𒀺𒀻𒀼𒀽𒀾𒀿𒁀𒁁𒁂𒁃𒁄𒁅𒁆𒁇𒁈𒁉𒁊𒁋𒁌𒁍𒁎𒁏𒁐𒁑𒁒𒁓𒁔𒁕𒁖𒁗𒁘𒁀𒁁𒁂𒁃𒁄𒁅𒁆𒁇𒁈𒁉𒁊𒀰𒀱𒀲𒀳𒀴𒀵𒀶𒀷𒀸𒀹𒀺𒀻𒀼𒀽𒀾𒀿𒁀𒁁𒁂𒁃𒁄𒁅𒁆𒁇𒁈𒀰𒀱𒀲𒀳𒀴𒀵𒀶𒀷𒀸𒀹𒀺𒀻𒀼𒀽𒀾𒀿𒁀𒁁𒁂𒁃𒁄𒁅𒁆𒁇𒁈𒁉𒁊𒁋𒁌𒁍𒁎𒁏𒁐𒁑𒁒𒁓𒁔𒁕𒁖𒁗𒁘𒁉𒁊𒁋𒁌𒁍𒁎𒁏𒁐𒁑𒁒𒁓𒁔𒁕𒁖𒁗𒁘𒁋𒁌𒁍𒁎𒁏𒁐𒁑𒁒𒁓𒁔𒁕𒁖𒁗𒁘𒀰𒀱𒀲𒀳𒀴𒀵𒀶𒀷𒀸𒀹𒀺𒀻𒀼𒀽𒀾𒀿𒁀𒁁𒁂𒁃𒁄𒁅𒁆𒁇𒁈𒁉𒁊𒁋𒁌𒁍𒁎𒁏𒁐𒁑𒁒𒁓𒁔𒁕𒁖𒁗𒁘
又比如说:
我刚吃了日本海鲜,救我,我要开始变异了…进化…生存……优先种族需要进食………我已经神志不清了! V我50…~..**jjjjjjjjjĵjj肯德基…
以上这些抽象奇怪的符号,其实在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字符,可以在中间插入零宽字符或其他字符,绕过服务器过滤,最后被浏览器渲染执行
(在写上面JS代码时,alert语句被小黑盒过滤,使用零宽字符成功绕过)
总结
Unicode字符表网站:https://symbl.cc/cn/unicode-table/
Uincode除了正常的使用之外,更多的还是用来进行娱乐,Unicode安全只能提供一些简单的思路,很少可以做到直接攻击,大多都是通过视觉欺骗来进行钓鱼等攻击。
Unicode字符还是有很多娱乐效果的,这里给大家提供几个思路:
各个国家地区文字的相似符号和字符组合
可以达到的效果有:重复ID,账号伪装,夸张的文本显示
格式字符,如零宽间隔,连接符和无连接符,从左至右或从右至左
可以达到的效果有:绕过字符过滤,特殊视觉效果,字符占位等
另外,插入不可见字符也是会增加字数统计中的字符个数的,所以好像也可以用来凑字数?
更多游戏资讯请关注:电玩帮游戏资讯专区
电玩帮图文攻略 www.vgover.com