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

访客5年前黑客工具1334

请咱们先调查下面这条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]  黑客接单网

相关文章

MySQL怎么避免SQL注入

 假如您经过网页获取用户输入的 数据 并将其刺进一个MySQL数据库,那么就有可能发生SQL注入安全的 问题 。 本章节将为咱们介绍怎么避免SQL注入,并经过脚原本过滤SQL中注入的字符。  所谓SQ...

HTML5 安全问题解析

HTML5 安全问题解析 标签: html html5 web安全 本文参阅: w3school:html5相关基础知识(w3school.com.cn)...

【对立蠕虫】怎么维护网页里的按钮,不被 XSS 主动点击

前语 XSS 主动点按钮有什么损害? 在交际网络里,大多操作都是经过点击按钮建议的。例如宣布留言,假设留言体系有 BUG,那么 XSS 就能主动点击发送按钮,发布带有恶意代码的留言。老友看了中招后,又...

运用Subversion完成网站自动更新

Subversion概述     概述     Subversion,简称SVN,是一个开放源代码的版别控制体系,相对于的RCS、CVS,采用了分支办理体系。     网站更新拓扑结构       ...

看我怎么发现GitHub提权缝隙取得$10000赏金

之前,我从没参加过GitHub官方的一些缝隙众测项目,在HackerOne建议的HackTheWorld竞赛中,主办方宣扬除了赏金以外,还有时机取得Github供给的终身无约束私有库(unlimit...

腐朽的苹果:对一大波iCloud垂钓网站的监测与剖析

国外的FireEye实验室有一套主动化体系,这套体系可以主动侦测最新注册的歹意域名。所谓的歹意域名,绝大部分都是假装成很多人知道的常用域名,以此来到达“歹意”的目的。比方说假装成苹果公司的域名——Fi...