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

访客5年前黑客文章548
在这篇文章中我将向你展现我怎么经过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]黑客接单网

相关文章

赌博该不该去翻本,或者说如何戒赌,工资不高,输

尽管我们可以讨论这些稽查到的主机是否可以被攻击者真实利用,并且可以分析这些主机的补丁状态、网络分段等,但众所周知,许多公司仍然在运行易受攻击的Windows版本,并且修复周期对于这些系统来说可能更难。...

太原的接单的黑客_找黑客盗号先盗后付款微信号

二、辨认要挟行为中的堆叠APT进犯者一般会运用一些文件格局和显现上的特性用于利诱受害用户或安全剖析人员。 这儿以LNK文件为例,LNK文件显现的方针履行途径仅260个字节,剩余的字符将被切断,可以直接...

看我怎么获取Facebook用户的隐私老友列表

当具有个人信息的组织机构发作数据失窃或遭受未授权拜访行为时,就或许发作用户信息走漏事情。一般来说,这是种安全事情会导致一些敏感触维护的秘要数据被广泛撒播、剖析或歹意运用。本文共享的缝隙writeup,...

黑客接单先做后付_黑客帝国找李连杰主演

cd $AFLSMART有// Based on blink::mojom::AppCacheBackend interface黑客接单先做后付,黑客帝国找李连杰主演 Facebook 主张用户采纳如...

整人代码_找黑客帮忙找人 花多少钱-怎么找专业黑客

「整人代码_找黑客帮忙找人 花多少钱-怎么找专业黑客」2.测验用如下办法绕过[uri=mytag_js.php?aid=9527],是个assert类型的webshell,经过echo不能履行,pri...

我参与了赌博输了十五万我想报赌钱能找回来吗?我

1、概述· https://www.shodan.io/search?query=port%3A3389+2008我参与了赌博输了十五万我想报赌钱能找回来吗?我, 另外,本文还提供了一个演示页面,用户...