XSS注入-简单过滤绕过方法
Posted 第7防线渗透吧
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XSS注入-简单过滤绕过方法相关的知识,希望对你有一定的参考价值。
javascript伪协议触发XSS
将javascript代码添加到客户端的方法是把它放置在伪协议说明符javascript后的URL中。这个特殊的协议类型声明了URL的主体是任意的javascript代码,它由javascript的解释器运行。如果javascript:URL中的javascript代码含有多个语句,必须使用分号将这些语句分隔开。
javascript:var now = new Date();"<h1>The time is:</h1>" + now;
javascript URL还可以包含只执行动作,但不返回值的javascript语句。
javascript:alert(“hello world!”)
双写绕过
根据前面介绍的知识寻找过滤内容,当某些关键字只被处理过滤一次的情况下,就可以使用双写策略进行绕过,例如在过滤domain为空时,可以通过domdomainaim进行绕过测试。
编码绕过
Payload: "><script>eval(atob('YWxlcnQoZG9jdW1lbnQuZG9tYWluKQ=='));</script>
上面使用了base64对alert(document.domain)进行了编码,然后又通过atob进行base64的解码。当然在不同的场景下还可以使用其它的编码方式尝试绕过测试,例如:html编码、Js编码、jsfuck编码。
空格绕过
在注入烦人过程中当某个关键字被替换或过滤时,可以尝试使用空格分割关键字。
a标签中链接依旧会被当做HTML执行。
IE浏览器特性
利用IE浏览器的某些特性可能会绕过XSS注入的过滤,同时也限制了这种XSS漏洞只能针对使用IE浏览器的用户发起攻击。例如:IE中两个反引号``可以闭合一个左边双引号。
IE中CSS特性触发XSS
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本动语言态地对网页各个元素进行格式化。
css expression(css表达式)又称Dynamic properties(动态属性)是早期微软DHTML的产物,以其可以在css中定义表达式来达到建立元素间属性之间的联系等作用,从IE5开始得到支持,后因标准、性能、安全性等问题,微软从IE8 beta2标准开始,取消对css expression的支持。
实际应用,早期很多开发人员利用css expression实现了许多效果,比如将元素相对鼠标指针进行定位,根据一个定时器来移动元素等等。当然这些效果能够使用js效果来实现。虽然css表达式问题很多,但是我们依然能够在网上看到他们的影子,甚至在一些成熟的商业网站上。最常见的一个应用就是悬浮在页面上的某个模块(比如导航、返回顶部等)。
css插入js举例:
background-color:#f00;background:url(“javascript:alert(document.domain);”); 次特性只适用于IE某些低版本的浏览器。
css中的注释//**
绕过对关键字expression的过滤。ex/**/pression
16进制或unicode绕过触发XSS
当用户输入被实体化输出到页面时,<>等符号会被进行实体化转义,此时可以尝试使用16进制或unicode编码进行转换尝试绕过。
Payload举例:\x3cscript\x3ealert(socument.domain);\x3cscript\x3e
注:本文转自csdn.com,如有侵权请联系删除。
第7防线官方网站:http://www.d7hk.com
以上是关于XSS注入-简单过滤绕过方法的主要内容,如果未能解决你的问题,请参考以下文章