精华内容
下载资源
问答
  • 零宽字符

    千次阅读 2020-11-26 20:07:02
    最近写了个有关于零宽字符隐写的misc,在此简单记录一下! 什么是零宽字符: 零宽度空格符 (zero-width space) U+200B : 用于较长单词的换行分隔 零宽度非断空格符 (zero width no-break space) U+FEFF : 用于阻止...

    前言:

    最近写了个有关于零宽字符隐写的misc,在此简单记录一下!

    什么是零宽字符:

       零宽度空格符 (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 : 用于在混合文字方向的多种语言文本中,规定排版文字书写方向为右至左
    

    零宽度字符是一种字节宽度为0的不可打印的Unicode字符, 在浏览器和一般的文本编辑器中是不可见, 但是真是存在, 获取字符串长度时也会占位置, 表示某一种控制功能的字符。

    零宽字符有什么用处:

    • 数据防爬
      将零宽度字符插入关键词文本中,使得匹配关键字时不能正确匹配,但是不影响用户的正常阅读
    • 信息隐藏(可做水印)

    怎么判断是零宽字符隐写:

    • 在kali中(简单,最可取

    vim

    • 记事本中
      在这里插入图片描述
      在这里插入图片描述
      光标在第二个字母后,却显示第134列

    解密方式:

    用网上的在线解密网站,注意解密网站还可根据零宽度字符的不同选择
    在这里插入图片描述
    <200f>也就是U+202F,有些站解出来结果不太对或者解不出来是因为没有这个零宽字符,要选择有这个零宽字符的解密网站
    如:Zeroi-Width-Steg-Online

    展开全文
  • 0x01 零宽字符 零宽度字符是一些不可见的,不可打印的字符。它们存在于页面中主要用于调整字符的显示格式,下面就是一些常见的零宽度字符及它们的unicode码和原本用途: 零宽度空格符 (zero-width space) U+200B : ...

    0x01 零宽字符

    零宽度字符是一些不可见的,不可打印的字符。它们存在于页面中主要用于调整字符的显示格式,下面就是一些常见的零宽度字符及它们的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 : 用于在混合文字方向的多种语言文本中,规定排版文字书写方向为右至左

    0x02 字符特征

    一般的文本编辑器:
    在这里插入图片描述
    010Editor/WinHex:
    ​​​​​​​​​​在这里插入图片描述
    vim:
    在这里插入图片描述
    通常情况下,零宽度字符在一般的文本编辑器中是不可见的,这也是其被作为隐写的根本原因。

    0x03 如何隐写

    每一种基于零宽度字符的隐写都可以有自己的隐写方式及加密方式,所以可能用这一个工具(或脚本)加密过的字符串在另一个解密网站就无法成功解密……

    加密方式虽多种多样,但万变不离其宗。零宽度字符隐写就是将想要隐藏的内容,用各种零宽字符的排列组合来代替,从而达到隐写的目的。本质上其实就是一种编码,类似于Unicode或ASCII。

    注:加密和解密是一个可逆的过程,但是一定要用相同的方式(相同的工具/网址)进行加解密。

    0x04 相关工具

    0x05 相关使用

    • 隐形水印
    • 逃脱敏感词匹配
    • 传递隐秘信息

    0x06 网刃杯CTF

    进入题目拿到一个压缩包,解压后得到 flag.txt 和 cipher.txt, 打开 flag.txt:
    在这里插入图片描述
    010editor 打开:
    在这里插入图片描述
    存在隐藏字符,初步判定是零宽隐写。

    ​​​vim 打开:
    在这里插入图片描述

    发现 200b、200c、200d、200e,用 http://330k.github.io/misc_tools/unicode_steganography.html 勾选这四个选项:
    ​​在这里插入图片描述
    在这里插入图片描述
    根据提示,生成 flag.txt md5 校验和:
    在这里插入图片描述
    key = f71b6b842d2f0760c3ef74911ffc7fdb

    注:这里不能直接拿 flag.txt 的文本内容进行 md5 加密


    https://tool.oschina.net/encrypt 尝试对 cipher.txt 中的内容进行解密:
    在这里插入图片描述
    最终使用 Rabbit 算法解得 flag{WelY0me_2_bOl3an}

    0x07 Reference

    http://www.ga1axy.top/index.php/archives/20/

    展开全文
  • var rep = { // 替换用的数据,使用了4个零宽字符代理二进制 '00': '\u200b', '01': '\u200c', '10': '\u200d', '11': '\uFEFF' }; function hide(str) { str = str.replace(/[^\x00-\xff]/g, function(a) ...
    (function(window) {
        var rep = { // 替换用的数据,使用了4个零宽字符代理二进制
            '00': '\u200b',
            '01': '\u200c',
            '10': '\u200d',
            '11': '\uFEFF'
        };
    
        function hide(str) {
            str = str.replace(/[^\x00-\xff]/g, function(a) { // 转码 Latin-1 编码以外的字符。
                return escape(a).replace('%', '\\');
            });
    
            str = str.replace(/[\s\S]/g, function(a) { // 处理二进制数据并且进行数据替换
                a = a.charCodeAt().toString(2);
                a = a.length < 8 ? Array(9 - a.length).join('0') + a : a;
                return a.replace(/../g, function(a) {
                    return rep[a];
                });
            });
            return str;
        }
    
        var tpl = '("@code".replace(/.{4}/g,function(a){var rep={"\u200b":"00","\u200c":"01","\u200d":"10","\uFEFF":"11"};return String.fromCharCode(parseInt(a.replace(/./g, function(a) {return rep[a]}),2))}))';
    
        window.hider = function(code, type) {
            var str = hide(code); // 生成零宽字符串
    
            str = tpl.replace('@code', str); // 生成模版
            if (type === 'eval') {
                str = 'eval' + str;
            } else {
                str = 'Function' + str + '()';
            }
    
            return str;
        }
    })(window);
    

    直接复制到浏览器控制台可以使用,我们现在来试试

    var code = hider('alert("测试一下。。")');
    console.log(code);

    在http的提交的数据的head头中隐藏这些字符并匹配一个sign签名可以达到诱骗渗透测试的目的

    转载于:https://my.oschina.net/9199771/blog/3018484

    展开全文
  • 行业分类-物理装置-基于零宽字符的加密信息隐写方法.zip
  • 宽度字符是隐藏不显示的,也是不可打印的,也就是说这种字符用大多数 程序或编辑器是看不到的。最常见的是宽度空格,它是Unicode字符空格,就像如果在两个字母间加一个宽度空格,该空格是不可见的,表面上两个...

    前言

    零宽度字符是隐藏不显示的,也是不可打印的,也就是说这种字符用大多数
    程序或编辑器是看不到的。最常见的是零宽度空格,它是Unicode字符空格,就像如果在两个字母间加一个零宽度空格,该空格是不可见的,表面上两个字母还是挨在一起的。比如这两个 (​​​​​) 括号中间我放了5个零宽字符,你们能看见吗?

    这种字符的出现是为了文字控制排版作用的,但是由于它拥有肉眼无法观察到的特性,零宽度字符可作为识别某些用户身份的“指纹”数据,也可非常方便地追溯到某些秘密数据的泄露源。

    下面介绍三种零宽字符

    不换行空格

    不换行空格,全称 No-Break Space,它是最常见和我们使用最多的空格,大多数的人可能这个字符叫做 Zero Width Space,中文可称为“零宽空白”,这个字符在主流文本编辑器中均没有任何显示效果,就像一只看不见、摸不着的幽灵。拷贝也会带上零宽空白,HTML 字
    符值引用为: &#8203;

    零宽不连字

    不换行空格,全称 No-Break Space,它是最常见和我们使用最多的空格,大多数的人可能它叫零宽不连字,全称是 Zero Width Non Joiner,简称“ZWNJ”,是一个不打印字符,放在电子文本的两个字符之间,抑制本来会发生的连字,而是以这两个字符原本的字形来绘制。Unicode 中的零宽不连字字符映射为(zero width non-joiner,U+200C),HTML 字符值引用为: &zwj;&#8204;

    零宽连字

    零宽连字,全称是 Zero Width Joiner,简称“ZWJ”,是一个不打印字符,放在某些需要复杂排版语言(如阿拉伯语、印地语)的两个字符之间,使得这两个本不会发生连字的字符产生了连字效果。零宽连字符的 Unicode 码位是 U+200D
    HTML 字符值引用为: &zwnj;&#8205; )。

    实现

    最近忙着做毕设和准备面试, 没什么时间来写实现, 后面会展示html和java的代码实现

    展开全文
  • 正则表达式中零宽字符、正向预查、反向预查(自己总结) 前言 刷HackerRank的Python题目时遇到一道与正则表达式有关的,发现涉及到自己不太了解的知识点,特此记录一下。 题目 Validating Postal Codes ...
  • 后面经查询,了解到有零宽字符这一说法(产生原因不明~),解决方案如下: 网上大多通过正则表达式进行替换: 如:去除ZERO WIDTH SPACE 零宽字符: 看不见却占位置的字符 项目中我因为每次出现的位置是固定的,通过...
  • 如何去掉html中的零宽字符 '&# 8203;'

    千次阅读 2019-08-22 16:43:12
    在爬来的数据中有的时候会出现零宽字符&#8203;,一般情况对界面没有什么影响,但是当一行最后一个字后面出现零宽字符&#8203;就会出现换行,影响界面的排版。 我的解决办法是把零宽字符&#8203;从字符串中...
  • 检测页面上的宽度字符,突出显示包含的DOM元素,并在元素的右下角显示警告。 检测页面上的宽度字符。 *突出显示宽度字符。 *突出显示包含宽度字符的DOM元素。 *在元素的右下角显示警告。 *选择文本,然后...
  • 使用不可见的宽度字符隐藏文本,使文本清晰可见。 数字隐写术变得简单。 灵感来自 。 您可以在查看该工具的实时演示。 这个怎么运作 Steganographr的工作原理是将您的私人消息转换为二进制数据,然后将该二进制...
  • C#如何实现零宽字符加密,求资源,利用Unicode编码,有兴趣的或者有经验的大神可以交流一下
  • 原理是利用零宽字符对加密文本进行转码,嵌入到普通文本当中,从而隐藏加密内容;表面看起来是一段普通文本,复制粘贴不会丢失 更新 添加unicode转码, 支持所有字符 npm包使用 npm i zero-encrypt -S var encrypt = ...
  • php-过滤不可见零宽字符\u200B

    千次阅读 2020-07-08 15:08:25
    ​​​​),结果触发了业务的产品需求逻辑,不能有四个连续的字符限制,第一眼一看完全没有连续的啊! 初步猜测是末尾有空格,结果进行文本删除的时候,发现只有一个可见的空格,后面末尾出现了四个不可见的0长度...
  • 后来查阅资料得知这个字符叫做Zero Width Space,中文可称为“零宽空白”,这个字符在主流文本编辑器中均没有任何显示效果,就像一只看不见、摸不着的幽灵。拷贝也会带上零宽空白. 解决方案:替换字符 var contents =...
  • 0宽字符隐藏文本加密及原理

    千次阅读 2019-10-22 15:08:26
    零宽字符 0宽字符加密 隐藏文本 原理 ‍
  • 在虚拟机里面 vim key.txt 打开查看即可
  • 宽度字符完全没有头绪的可以先玩下这个Demo 什么是宽度字符宽度字符是一些不可见的,不可打印的字符。它们存在于页面中主要用于调整字符的显示格式,下面就是一些常见的宽度字符及它们的unicode码和...
  • misc学习笔记1-txt宽度字符隐写

    千次阅读 多人点赞 2020-10-03 13:45:54
    写在前面: 这里是β-AS,准备开新坑了,本次笔记记录一下学习misc中遇到的隐写方式,如果有不对的地方希望各位路过的大佬手下留情(逃 ...零宽空格(zero-width space, ZWSP)用于可能需要换行处。
  • 在线隐藏字符加密/解密工具

    千次阅读 2019-10-05 12:43:41
    基于零宽字符和摩斯电码的隐藏文本加密,原理是利用零宽字符对加密文本进行转码,嵌入到普通文本当中,从而隐藏加密内容;表面看起来是一段普通文本,复制粘贴不会丢失。 工具链接:...
  • 零宽空白&#8203;特殊字符问题

    千次阅读 2018-07-06 19:30:19
    这个字符叫做Zero Width Space,中文可称为“零宽空白”, 这个字符在主流文本编辑器中均没有任何显示效果,就像一只看不见、摸不着的幽灵。拷贝也会带上零宽空白。    在理赔核心录入该字符会存储到数据库可...
  • 网址里面有个特殊字符%E2%80%8B 今天终于活久见, 看上去是一样的, 但是处理不能处理. 看上去是2001603.url编码是2%E2%80%8B001603/ , str(path).split('/')[-1].encode('ascii')=='MAIN_HCP3_AU_ER_G55D_UNIT_DB_...
  • 宽度空字符/不可见的红点字符/Unicode Character 'ZERO WIDTH SPACE' (U+200B)
  • java替换特殊字符

    千次阅读 2018-09-21 15:59:53
    今天处理bug,接口输入特殊字符零宽空白),一种前端js控制替换特殊字符;一种java后端控制 package com.shallowan.spring.boot.blog; import java.io.IOException; import java.util.regex.Matcher; import ...
  • C语言宽字符输出和转换

    千次阅读 2017-03-05 22:31:23
    在locale.h头文件中有个setlocale函数,它的作用是设置运行时的字符集环境。一般C/C++编译器默认字符集环境为”C”,所以你要正常输出单个中文字符,或者用mbstowcs、wcstombs等C库函数的时候,需要设置字符集环境为...
  • C++宽字符类型wchar_t

    2020-09-20 15:49:39
    C++宽字符类型wchar_t 传统的字符数据类型为char,占用一个字节,存放的数据内容为ASCII编码,最多可以存放255种字符,基本的英文以及常用字符都可以涵盖 随着计算机在国际范围内普及,大量使用其它语言的计算机用户也...
  • 常用的宽字符函数

    2018-05-03 11:18:14
    由于Windows NT/2000/XP采用的是Unicode字符编码,字符都是双字节的。所以在MFC编程中,一般需要使用双字节的字符类型wchar_t和对应的字符串及其指针类型LPCWSTR和LPCTSTR,并在常数字符串前添加了L转换符,串长计算...
  • 特殊字符的问题—零宽空格

    千次阅读 2019-12-16 14:24:43
    一、问题 ...在将那条数据复制粘贴到编辑器中观察发现,当删除这个字符串的时候,删除一下的时候,并不能直接删除最后一个数字,得删除两下才能删掉最后一个数字,也就是说,这个字符串后面实际有一个我...
  • php代码-PHP正则表达式宽度
  • 正则表达式零宽断言: 零宽断言是正则表达式中的难点,所以本章节重点从匹配原理方面进行一下分析。零宽断言还有其他的名称,例如”环视”或者”预搜索”等等,不过这些都不是我们关注的重点。 一.基本概念: 零宽断言...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,001
精华内容 12,000
关键字:

零宽字符