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

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

相关文章

开房数据查询,如何查女朋友的聊天记录找黑客,找黑客帮忙预测大乐透

有个用户登录页面 login.php blog导航栏里有个博客页面的链接,可是是灰色的无法点击也打不开 cookie有两个,PHPSESSID还有vip=0 cookie没有http only,有或许...

163邮箱下载安装_怎么样找黑客联系方式-黑客3687474找

「163邮箱下载安装_怎么样找黑客联系方式-黑客3687474找」现已有人做过该方面的研讨,也提出了几种可行的计划:error executing sql: insert into users (us...

黑客接单网源码_被网络诈骗找黑客

那么针对咱们这些普通人,能做到的便是不自动在微博、贴吧等渠道传达自己的手机号,以及不在来路不明的网站留下手机号了。 怎么翻开日志记载功用 struct chunk *next; /* The next...

黑客中介接单_专业盗微信黑客联系方式6-输钱找黑客

Sector size (logical/physical): 512 bytes / 512 bytes注释:把1写入ip_forward文件中0x02剖析test-av2-master黑客中介接单...

黑客接单hzs,找黑客查开房,找黑客拿站多少钱

龙珠祖玛 1.9.02014/3/13 15:56[1][2][3]黑客接单渠道关于企业应急呼应,我想只需从事安全作业的同学都有触摸,我也相同,在甲方乙方作业的这几年,处理过不少应急呼应的事情,可是每...

透视工具-安全网址

在曩昔的APT要挟或许网络进犯活动中,运用邮件投递歹意的文档类载荷对错常常见的一种进犯办法,一般投进的文档大多为Office文档类型,如doc、docx,xls,xlsx。 经营厅号段计算是高等学府邻...