博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
采用unicode的零宽字符来实现字符隐藏代码
阅读量:5744 次
发布时间:2019-06-18

本文共 1303 字,大约阅读时间需要 4 分钟。

hot3.png

(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

你可能感兴趣的文章
nginx rewrite
查看>>
前端安全系列(一):如何防止XSS攻击?
查看>>
查看Linux并发连接数
查看>>
你是谁不重要,关键是你跟谁!
查看>>
CSS中规则@media的用法
查看>>
pychecker:分析你的python代码
查看>>
我的友情链接
查看>>
DNS显性+隐性URL转发原理
查看>>
我的友情链接
查看>>
网易有道 IP地址、手机号码归属地和身份证 查询接口API
查看>>
鼠标停留在GridView某一行时行的颜色改变
查看>>
系列3:WAS Liberty Profile hello mysql jdbc
查看>>
基础知识:python模块的导入
查看>>
Android MVC之我的实现
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
关于批处理-1
查看>>
Tomcat部署Web应用方法总结
查看>>
Python3 django2.0 字段加密 解密 AES
查看>>
CCNA实验之:网络地址转换(NAT)实验
查看>>