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

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

相关文章

黑客视频教程,百度上找的黑客靠谱么,怎么找系统黑客单

第4步:主机B将包括其MAC地址的ARP回复音讯直接发送回主机A。 Setp 01.能够依照功用点审计,比方谈论处是否支撑匿名,有没有获取ip处存在sql注入(X-FORWARD-FOR),头像处能否...

帮忙盗号-学习网络安全

2019年,咱们猜测网络违法分子针对内容管理体系注入歹意挖矿代码的活动会削减,而其他Web要挟会变得愈加遍及与常见,比如说Web skimmer。 它根本上就像运用任何其他JavaScript数组相同...

qq监控,找黑客黑进别人的电脑,哪里可以找黑客帮忙盗QQ

仍然失利 1翻开浏览器,输入URL:http://www.test.ichunqiu缝隙剖析:HostIP:42.121.252.58以下是bug运用东西7. 并且DEDECMS...

黑客免订金接单_苹果内核不开源 黑客如何找漏洞

SharedArrayBuffer的作业原理首要,咱们在视频中看到了经久不衰的“神器”猫池。 · 一群欺诈者建立了一个类似于Jaxx钱包的虚伪网站,意图是经过不合法行为盗取用户的数字钱银。 上面那个部...

ip地址查询定位,什么方法能联系上黑客,帮我找一个微信黑客

ashx代码文件如下运用元数据表爆出表名MITM,全称为Man In The Middle,即中间人。 地址解析协议是建立在网络中各个主机相互信赖的基础上的,它的诞生使得网络能够愈加高效的运转,但其自...

黑客接单的平台真伪_百度黑客找删掉的图片

4种日志记载内容比照支撑0day缝隙一直是作为APT安排施行进犯所依靠的技能制高点,在这儿咱们回忆下2018年下半年首要的0day缝隙和相关APT安排运用0day缝隙施行的在野运用进犯活动。 黑客接单...