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

访客5年前黑客工具1327

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

相关文章

看我怎么编写一个验证码辨认程序

在此之前我收到了一些读者对我的反应,他们期望我能够在文中解说相关解析器的开发流程。为了满意我们的需求,我决议和你们共享一个我非常重要的项目的完好施行进程。话不多说,让我们现在就开端! 当我开发这些脚本...

操控流程完整性:给我们介绍一种“特殊”的Javascript反剖析技能

写在前面的话 了解歹意软件的实在代码对歹意软件剖析人员来说对错常有优势的,由于这样才干够实在了解歹意软件所要做的工作。但不幸的是,咱们并不总是能够得到“实在”的代码,有时歹意软件剖析人员或许需求相似...

浅谈web安全之手艺检测sql注入以及取得信息

所谓SQL注入,便是经过把SQL指令刺进到Web表单递送或输入域名或页面恳求的查询字符串,终究到达诈骗服务器履行歹意的SQL指令。 查验是否可以注入 and 1=1 正常 and 1=2 犯错 h...

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

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

网站被挂木马与777权限的微妙

 某天VIP大讲堂微信群里的一位同学说网站被人挂马了,查了半响也查不到原因。艺龙SEO负责人刘明问了一句“是不是技能把linux体系里网站的中心目录设置777文件权限了”,同学查后发现不出所料。那么,...

网络爬虫暗藏杀机:在Scrapy中利用Telnet服务LPE-黑客接单平台

网络抓取结构中运用最多的莫过所以scrapy,但是咱们是否考虑过这个结构是否存在缝隙妮?5年前曾经在scrapy中爆出过XXE缝隙,但是这次咱们发现的缝隙是一个LPE。 经过该缝隙能够获得shell,...