跨站测试与利用中的绕过技术.docx_第1页
跨站测试与利用中的绕过技术.docx_第2页
跨站测试与利用中的绕过技术.docx_第3页
跨站测试与利用中的绕过技术.docx_第4页
跨站测试与利用中的绕过技术.docx_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.1 bypass Char通常有安全意识的程序员往往会对输入进行一定的过滤,比较常见的是针对某一关键符号进行过滤,比如“”,这种方式很多时候是无法防止攻击的,更安全的方式是通过编程语言提供的函数在输出的时候进行过滤。本节主要针对单字符过滤进行研究,分为引号、尖括号、括号这三个符号进行研究。1.1.1 引号在跨站测试中很多的vector(即攻击向量)本身是不包含引号的,例如下面的一些vector。但是在利用中经常需要使用引号,如果对引号进行了过滤,可以采取如下措施进行绕过。vector: alert(/insight-labs/) insight-labs here.1)String.fromCharCodefromCharCode可以对利用代码中的引号进行编码处理,但是需要利用eval函数结合进行使用,例如:alert(insight-labs) eval(String.fromCharCode(97,108,101,114,116,40,39,105,110,115,105,103,104,116,45,108,97,98,115,39,41)2)location.hash将带有引号的内容放在location.hash中,其实这个也可以突破跨站长度的控制。eval(location.hash.slice(1)#alert(a)3)/string/.source/string/中的string表示的是正则表达式,用.source则可以取到正则表达式的文本形式,然后使用eval(/string/.source);就可以执行。1.1.2 尖括号通常程序员为了偷懒都只会过滤尖括号,因此尖括号在跨站过滤中遇到情况最多。一般情况下如果输入没有显示在其他标签里,那么基本上是没有办法进行攻击的,但是如果是输出到其他标签里,则可以结合上下标签进行如下测试:1)事件函数常用的一些事件函数有:onerror、onmouseover、onload等(同时可以关注下HTML5新标签),需要的时候可以对JavaScript的事件函数进行fuzz。 insight-labs here. 2)style与expression通过标签的style样式进行跨站(测试中只有IE成功,同时还得考虑filter问题)。3)JavaScript伪协议JavaScript伪协议进行绕过。 (仅IE6)1.1.3 括号如果测试中发现括号被过滤了,或者无法注入括号,可以进行如下测试:1)外部文件通过src引入外部文件,而利用代码放在外部文件中(其中外部文件的后缀可以不为js)。 2)hex、dec编码利用十六进制与十进制进行编码。click to continuehttp:/vulnerabledoma.in/xssable?q =223CA20href3Djavascript26.x3A的3Balert2628283B12629293B / / =3Exxx http:/vulnerabledoma.in/xssable?q=”xxx2)utf7通过UTF7-BOM实现注入代码,全补丁情况下只有当header里编码为utf-7才能成功,可以参考文献3。%2BACIAPgA8-script%2BAD4-alert%28/insight-labs/%29%2BADw-%2Fscript%2BAD4APAAi-&oe=Windows-31J3) Flash在 www.B.com域名下用iframe嵌入www.A.com的flash XSS文件。当受害者打开了www.B.com的域名时,我们可以成功获取其在www.A.com的cookies数据,参见文献8。测试代码如下(IE):iframe/src=”/images/price_trend/open-flash-chart.swf?get-data=(function()location.href=%22javascript:alert(document.cookie)%22)()”在chrome中,可能会导致浏览器崩溃,可以改用以下代码。4) magic_quotes_gpcPHP如果开启了”魔术引号”特性(magic_quotes_gpc = On),则 (single-quote), “(double quote), (backslash) 和 NULL 字符将都会被反斜杠转义(%00 =0).通过一些测试,发现ie xss filter对NULL字符的转义处理并不感冒,意思是它并不了解这种转换过程。参见文献9alert(1)%c0”;alert(%00)/%c0”/(%000000%0dalert(1)/1.2.2 chrome filterchrome浏览器针对xss过滤规则跟IE有比较大的区别,不同版本的chrome测试也会不同,现有的资料可以参考文献4、5。1)data协议?vuln=click /会拦截转换成 click/bypass?vuln=click-OK1.3 bypass richtext富文本常见类别有留言,日志或者邮件等。与一般的跨站相比它可以使用现有的标签进行测试分析。一般过滤机制分为两种:黑名单、白名单,这两类机制实质都是基于正则匹配进行过滤,因此在测试过程中需要对比输入和输出,然后进行针对性变化。常见测试流程:输入常见标签和事件是否有存在的标签没有过滤-变形或者分析其属性标签:object, applet, base, link, meta, import, embed, vmlframe, iframe, script, style, isindex, form,textarea,字符:javascript:, vbscript:事件:onload,onerror,on*1.3.1 绕过规则本小节将一些常见的一些变化规则进行了归类,实际测试中结合多种方式进行组合测试。1)未递归过滤很多富文本过滤都是针对关键字过滤,但是没有进行递归过滤,导致过滤后的结果重新组成新的标签,例如: iframe之过滤- script过滤-2)编码利用字符的十六进制和十进制编码进行绕过关键字。由于expression只有IE能执行,因此仅限于IE。insight-labsinsight-labs/两次不同类型编码 insight-labs 5)HTML5利用HTML5新标签或者新属性进行绕过,相对而言这类利用要求的环境相对比较苛刻,详细见参考文献6。新标签:,新属性:autocomplete, autofocus, pattern .etc 6)浏览器方面可以从浏览器解析角度进行考虑,需要浏览器解析方面进行深入分析,然后进行改进与分析,提供几个这类的vector。/ IE的注释方式 img src=” IE1.3.2 利用技巧在实际利用中常常会遇到一些其它问题,比如说代码死循环,长度不够用等先将其总结如下: 1)expression由于expression属性比较特殊,同时只支持IE,而其执行相当于一个死循环的EVAL函数,同时style标记里不能出现”;”字符,也就是不能构造多条连接在一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论