使用视觉含糊测验技能探究zalgoscript

访客5年前黑客工具1316

请咱们先调查下面这条JavaScript句子:
̀̀̀̀̀́́́́́̂̂̂̂̂̃̃̃̃̃̄̄̄̄̄̅̅̅̅̅̆̆̆̆̆̇̇̇̇̇̈̈̈̈̈̉̉̉̉̉̊̊̊̊̊ͅͅͅͅͅͅͅͅͅͅͅalert(̋̋̋̋̋̌̌̌̌̌̍̍̍̍̍̎̎̎̎̎̏̏̏̏̏ͅͅͅͅͅ1̐̐̐̐̐̑̑̑̑̑̒̒̒̒̒̓̓̓̓̓̔̔̔̔̔ͅͅͅͅͅ)̡̡̡̡̡̢̢̢̢̢̛̛̛̛̛̖̖̖̖̖̗̗̗̗̗̘̘̘̘̘̙̙̙̙̙̜̜̜̜̜̝̝̝̝̝̞̞̞̞̞̟̟̟̟̟̠̠̠̠̠̣̕̕̕̕̕̚̚̚̚̚ͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅ

写在前面的话
当Twitter宣告将推文字符约束从140提升到280之后,我就想弄清楚在这种新的字符约束下,怎么运用Unicode字符来“搞工作”。我测验了某些特别字符,并在Twitter上引起了一些显现过错,即所谓的ZalgoScript。此刻我就想知道怎么自动化地去辨认这些字符,由于你无法经过查看页面DOM树结构来发现某些字符的特别行为,咱们需求截图才干知道浏览器所要出现的视图。我一开始运用的是JavaScript和canvas技能来进行截图,但生成的图片并不匹配浏览器中真实出现的画面。所以我需求其他的办法,Headless Chrome便是更佳的挑选。我在这里运用了puppeteer,这是一个Node *** 模块,答应咱们操控Headless Chrome并获取截图。
生成字符
为了生成Zalgo字符,你能够重复运用单个字符,或许运用两个字符并重复第二个字符。下面的码点能够经过自我重复来发生视觉作用,它们大多都是Unicode兼并字符:
834,1425,1427,1430,1434,1435,1442,1443,1444,1445,1446,1447,1450,1453,1557,1623,1626,3633,3636,3637,3638,3639,3640,3641,3642,3655,3656,3657,3658,3659,3660,3661,3662
比如说,下面的JavaScript代码能够运用上面的某些字符来生成十分丑陋的文本:
script>document.write(String.fromCharCode(834).repeat(20))script>
得到的成果为: ͂͂͂͂͂͂͂͂͂͂͂͂͂͂͂͂͂͂͂͂
风趣的是,假如兼并运用多个字符的话,还能够发生不同的作用。比如说,用字符311和844兼并之后,相同的技能会发生如下的作用:
script>document.write(String.fromCharCode(311)+String.fromCharCode(844).repeat(20))script>
得到的成果为:ķ͌͌͌͌͌͌͌͌͌͌͌͌͌͌͌͌͌͌͌͌
构建含糊测验器
含糊测验器的构建其实十分简略,首要咱们需求一个用来出现字符作用的Web页面,然后经过CSS来添加页面宽度,并让正常字符平移到页面右侧,这样咱们就能够检测页面的左边、顶部和底部了,我把需求测验的div元素放在了页面中心。
下图为字符“a”和“b”出现在fuzzer中的作用,为了让咱们更好地了解fuzzer的处理进程,咱们把fuzzer查看的当地在图中进行了标示:

而上述代码所出现的字符ķ和~的码点为311和834,fuzzer也记载下了这两个字符所生成的风趣的视图作用:

style>
.parent{
  position: absolute;
  height: 50%;
  width: 50%;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -moz-transform:    translateY(-50%);
  -ms-transform:     translateY(-50%);
  -o-transform:      translateY(-50%);
  transform:         translateY(-50%);
}
.fuzz{
  height: 300px;
  width:5000px;
  position: relative;
  left:50%;
  top: 50%;
  transform: translateY(-50%);
}
style>
head>
body>
divclass="d54e-060a-4783-d513 parent">
  div class="060a-4783-d513-cf8c fuzz"id="test">div>
div>
script>
varchars = location.search.slice(1).split(',');
if(chars.length> 1) {
  document.getElementById('test').innerHTML =String.fromCharCode(chars[0])+String.fromCharCode(chars[1]).repeat(100);

[1] [2] [3]  黑客接单网

相关文章

SQL 注入有病,安全专家有何良方?

SQL 注入进犯现状 SQL 注入进犯是一个十分老的进犯办法,因为许多运用程序都存在 SQL 注入缝隙而且 SQL 注入办法与手法变化无常,虽然大型企业一般都花巨资购买多种安全维护体系,可是 SQL...

由此次阿里云事情谈粗犷的安全防护手法

 昨日阿里接连爆出了两个有意思的事情,一是阿里云服务器呈现毛病,导致误删除了许多用户文件( http://www.weibo.com/1747505067/CyvEkrxPS );二是阿里供认下一年校...

怎么避免网站要害数据被人歹意收集

 昨天晚上花了几个小时用Jsoup写了一个网站收集器,帮一个高中同学收集了一个工业信息门户上的芯片待售信息。网站上显现的数据多达60w+条, 我写的程序跑了7个小时只收集了一半,算是能够交差了。 这现...

JSP运用过滤器避免SQL注入

 什么是SQL注入进犯?引证百度百科的解说: sql注入_百度百科: 所谓SQL注入,便是通过把SQL指令刺进到Web表单提交或输入域名或页面恳求的查询字符串,终究抵达诈骗服务器履行歹意的SQL指令。...

技能共享:几种常见的JavaScript混杂和反混杂东西剖析实战

信息安全常被描述成一场军备竞赛,白帽与黑帽,浸透测验者与黑客,善与恶,本文将聚集这场永无止境决战中的一个小点。 HTML5 & JS 运用中充满着对输入进行验证/注入的问题,需求开发人员一直...

你的PoC和EXP可能得改改了-黑客接单平台

一、前语 在MySQL 5.7.5之前的所有主版别存在一个BUG,该或许导致影响POC/EXP需求从头编写或批改的问题。 BUG信息链接: https://bugs.mysql.com/bug.ph...