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防线重磅推出渗透测试培训班,加入第7防线一起来学习吧,免费公开课程、官方网站在线答疑、在线靶场实操练习、课程配套工具,扫描下方二维码或者添加d7hacker加入我们吧!

 第7防线官方网站:http://www.d7hk.com


以上是关于XSS注入-简单过滤绕过方法的主要内容,如果未能解决你的问题,请参考以下文章

sql注入 form过滤怎么绕过

2-WAF主要过滤方式及绕过(HPP污染&分块传输&垃圾数据)

XSS绕过与动态扫描

SQL注入绕过防火墙的9种基本方法

XSS绕过filter高级技术 part1

xss绕过过滤方法