通过Fuzzing找出浏览器的一些怪癖-黑客接单平台

访客5年前黑客文章543
在这篇文章中我将向你展现我怎么经过Fuzzing找出Firefox浏览器的多个”古怪”。一般来说,研究者Fuzzing的意图大多是找出引发内存损坏的行为,但我是个破例;我要找的是浏览器一些其他的风趣行为。例如某些字符能够引起标签发作反常(翻开或闭合),或某些字符能够绕过JavaScript解析器作出某种行为。上述这些意外行为一般能够绕过安全策略和完结Javascript沙盒逃逸,然后有助于XSS进犯。 我想评论的之一个Bug是关于怎么经过其他的办法闭合HTML注释。假如你阅读过HTML标准,你应该知道能够运用-->或--!来闭合注释,但还有其他办法吗?这是一个好问题,很合适咱们翻开Fuzzing。咱们只需预备一些代码就能够找出该问题的答案。 时刻回到2008年,我在结构Shazzer用于对浏览器进行含糊测验,那时我被约束每页只能导入10000个进犯向量,但回到2019一切都更快了,咱们能够一次性对更多方针进行含糊测验。一起也能够运用DOM来加快Fuzzing,由于我不必再把向量逐一加载到当时文档中。但需求留意这不是全能的,你得到的成果或许不完好,实践我发现DOM在特点(例如href)赋值中答应NULL字符,但HTML解析器不会解析。这儿还有一些其他很帅的bug,但你不能轻信浏览器的成果,你需求深入研究HTML解析器的行为。虽然这种输出HTML的办法比运用服务端言语快得多,但在大多数情况下都不适用。 之一步现已完结——咱们找出问题”有什么字符能够闭合HTML注释?”。为了找出答案咱们要运用已知可闭合HTML注释的字符,然后fuzz那些咱们现在不知道的字符。下一步则是运用东西展开Fuzz,这儿我运用的是Hackvertor(也能够在本地web服务器建立)。加载完Hackvertor,一般是向输入框中写入内容并运用特定符号做一些转化,对输出做某些操作后然后获取终究输出。但咱们没有要转化的内容,因而咱们直接导入内容到输出框中。点击输出框区域的按钮,创立数组存储字符,然后创立div元素开端测验HTML: log = []; div=document.createElement('div'); 接下来咱们要fuzz超越1000000个unicode字符(精确地说是0x10ffff)。所以先创立一个for循环: for(i=0;i 然后再运用div元素,这儿我测验的是!之后的方位,所以字符要注入到!后边。然后运用一个img元从来查看成果是否有用,假如这个元素为显性则代表HTML注释已闭合。咱们现已预备好了一些风趣的字符! div.innerHTML = '-->'; 运用querySelector查看img是否存在,然后将字符增加到日志,然后封闭if句子和for循环,最终把成果会显现在左边的输入框中: if(div.querySelector('img')){ log.push(i); } } input.value=log 这儿有完好的代码,你只需在Firefox中翻开URL,然后把内容放到输出框,点击“Execute *** ”按钮开端字符fuzz。Fuzz结束后你应该在输入框中能够看到数字,数字对应有用的字符代码。在编撰本文时Firefox(67版别)仍答应经过把换行字符-n和r-放到!后边来闭合注释。很快我就收到音讯,奉告该bug已修正。Fuzzing最终的阶段便是开端拼装Payload,这很简单你只需用换行符替换字符代码,然后增加XSS Payload: --> 你能够再次运用Hackvertor来测验它是否有用,只需将上面的内容粘贴到输出框中,然后点击“Test HTML”引发弹窗。 这样咱们就在Firefox HTML解析器里找到了一个很cool的bug。OK,让咱们持续找下一个,一个新问题:“什么字符能够作为注释最初?”。咱们现在的方针是经过HTML注释打破存在的HTML特点,而不是闭合HTML注释。我信任咱们都知道能够把作为HTML注释的最初。OK,这儿我会再次运用相同的代码,但会做一些小调整,我修正innerHTML的赋值,以查看注释的最初: div.innerHTML = '+String.fromCodePoint(i)+'- >">'; 所以咱们把Fuzzing的字符放到之一个连字符后边,假如某个字符能够用作注释最初,那将注释掉div元素,然后打破title特点。这次点击“Excute *** ”后,咱们在Firefox上得到两个成果:“0 , 45”。由于连字符,45是存在的,而0代表NULL字符!这意味着Firefox会将视为注释最初。有点难以想象(我觉得浏览器服务商应该对产品做足够多的行为Fuzzing)。为完好这次测验,咱们现在要创立进犯向量,将String.fromCodePoint函数替换为NULL字符,然后刺进XSS Payload: document.body.innerHTML = '!-x00- >div title="-->">div>'; 让咱们跳出HTML,转向JavaScript。我测验了大部分浏览器,Sorry,Mozilla的Firefox再次让我惊奇。我是从 @jinmo123的一篇推文取得创意,他们运用一个很帅的ES6新特性来完结无括号调用函数,但结合Fuzzing来说我的问题是哪些字符能够放到in或者说instanceof运算符后边,咱们仍需用到Hackvertor,遵从上面模版创立代码,但这次不需求DOM。咱们先创立数组和for循环: log = []; for(i=0;i 然后咱们将运用eval替换innerHTML进行Fuzzing。首先用一个try catch块来围住它,以捕获无效字符引发的反常。 try{ eval("/a/"+String.fromCodePoint(i)+"instanceof function(){}"); eval函数用来验证JavaScript是否有用,假如有用,程序将跳转到下一行,假如无效,它将抛出一个反常而且反常立马被捕获,然后Fuzz下一个字符。下面一行只记载成功字符,剩余的代码封闭try catch块和for循环,最终把成果反应至输入框。[1][2]黑客接单网

相关文章

黑客接单软件,黑客找地址,找黑客套利

这个时分经过 dom 解析后源码变成了: 15高级职称考生报名.exe54b、下载源码skipfish -n 只运用 IP 地址不经过 DNS解析...

靠谱的黑客接单群_在哪里找黑客帮我盗会QQ号

快递面单FireEye运用本身的专业知识和内部开发的相似性引擎,来评价安排和举动之间的潜在相关和联系。 运用文档聚类和主题建模的概念,该引擎供给了一个结构,用于核算和发现活动安排之间的相似性,为后续剖...

虚假Pirate Chick VPN推送AZORult木马-黑客接单平台

研究人员剖析发现有广告歹意软件装置名为Pirate Chick的VPN软件,该VPN软件会衔接到长途服务器来下载和装置歹意payload——AZORult信息盗取木马。 由于广告歹意软件需求看起来尽可...

如此招生》这幅漫画说明了什么将一个孩子利用网

2.攻击者通过RDP向目标系统远程桌面服务发送精心设计的请求。 继续单步执行到这,索引值得出就像这样修复方案如此招生》这幅漫画说明了什么将一个孩子利用网, Discuz!全称Crossday Disc...

躲藏Apache、Nginx和PHP的版本号的装备办法

 最近提示说有缝隙,露出Apache、Nginx和PHP的版别号。现在收拾下,办法如下: 首先说apache 在http.conf文件里增加下面两行,默许是没有的 ServerSignature O...

中国安全网_怎么才能过联系黑客-找黑客查看老婆和别人微信聊天记录

「中国安全网_怎么才能过联系黑客-找黑客查看老婆和别人微信聊天记录」绑架因特网等级的BGP是十分困难的,由于它要求拜访鸿沟路由器。 为此,进犯者需求攻陷ISP,或许在ISP内部有共谋才干得手。 正是...