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

访客5年前黑客工具1374

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

相关文章

短网址安全浅谈

何谓短网址(Short URL)?望文生义,便是形式上比较短的网址,当时首要是凭借短网址来替代原先冗长的网址,便利传输和共享。短网址服务也便是将长网址转化为短网址的服务,这种服务在便利了广阔网民的一起...

小学生都会挖掘的JSON Hijacking实战利用

JSON Hijacking缝隙的具体使用,有点相似与CSRF,不过原理使用方法不同,在这边文章我侧重解说json跨域绑架的使用环境建立与方法。 0×01缝隙的发掘 一般发掘的过程中,burpsuit...

恣意用户暗码重置(五):重置凭据可暴破

在逻辑缝隙中,恣意用户暗码重置最为常见,或许出现在新用户注册页面,也或许是用户登录后重置暗码的页面,或许用户忘掉暗码时的暗码找回页面,其间,暗码找回功用是重灾区。我把日常浸透过程中遇到的事例作了缝隙成...

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

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

JSP运用过滤器避免SQL注入

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

LimeRAT在野外传达

几天前,Cybaze-Yoroi ZLab安全团队遇到了一类风趣的感染链,它运用多种杂乱技能,能够绕过传统安全防御机制并躲藏其payload,对方针用户形成严重威胁。 整个感染链始于一个LNK文件,运...