189 8069 5689

如何绕过WAF的XSS检测机制

本篇文章给大家分享的是有关如何绕过WAF的XSS检测机制,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

成都创新互联成立与2013年,先为江达等服务建站,江达等地企业,进行企业商务咨询服务。为江达企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

概述

本文提出了一种绕过XSS安全机制的新型方法,这种技术由三个阶段组成:确定Payload结构、探测和混淆处理。首先,我们需要针对给定的上下文环境,确定各种不同的Payload结构以达到最优的测试效果。接下来就是探测,这里涉及到根据目标所实现的安全机制来进行各种字符串测试,并分析目标的响应数据以便基于分析结果来做出安全假设。最后,根据分析结果来判断是否要对Payload进行混淆处理或结构调整。

介绍

XSS是Web应用程序中常见的漏洞之一,网站管理员可以通过用户输入过滤、根据上下文转换输出数据、正确使用DOM、强制执行跨源资源共享(CORS)策略以及其他的安全策略来规避XSS漏洞。尽管现在有很多预防XSS攻击的技术,但Web应用程序防火墙(WAF)或自定义数据过滤器是目前使用比较广泛的安全保护技术了,很多厂商都会利用这些技术来抵御新型的XSS攻击向量。虽然WAF厂商仍在尝试引入机器学习技术,但基于正则表达式的字符串检测方法仍是目前最广泛使用的技术。

下面提出了一种构造XSS Payload的新型方法,这种方法构造出来的XSS Payload可以绕过基于正则表达式匹配的安全机制。

HTML上下文

当用户的输入数据映射在Web页面的HTML代码中时,这种场景就是我们所谓的HTML上下文。HTML上下文可以根据用户输入在代码中的映射位置来进一步划分成:

1、 标签内:

2、 标签外:Youentered $input

标签外

在这种上下文场景中,主要字符“<”代表HTML标签的起始。根据HTML定义,标签名必须以字母作为开头,因此我们可以利用下面的规则来判断用来匹配标签名的正则表达式:

1、

2、

3、x

4、

5、

6、

如果上述方式均无法探测成功,则说明目标站点部署的安全机制无法被绕过。这种方式的假阳性率非常高,因此不鼓励使用。如果上述探测方式有一个可行,那么可用来构造Payload的机制就非常多了。

Payload机制#1

<{tag}{filler}{event_handler}{?filler}={?filler}{javascript}{?filler}{>,//,Space,Tab,LF}

找到{tag}的合适值之后,就需要猜测用于匹配标签和事件处理器间数据过滤器的正则表达式了。这一步可以使用下面的探测机制来实现:

1、

2、

3、

4、

5、

6、- 如果无法通过,则为[\s\n\r+]+;

7、

这个组件(例如事件处理器)是Payload结构中最关键的部分。通常,匹配它的是常规正则表达式(例如“on\w+”)或黑名单(例如“on(load|click|error|show)”)。第一个正则表达式非常严格,很难绕过,而基于黑名单的模式可以通过不常用的事件处理器来绕过。安全机制的实现类型可以通过下面两种简单的方法来识别:

1、

2、

下面是一些防火墙黑名单中没标记的事件处理器:

onauxclick
ondblclick
oncontextmenu
onmouseleave
ontouchcancel

常用的Payload结束符如下:


Payload机制#2

,//,Space,Tab,LF}

使用了标签的Payload可以利用下面的Payload机制来构建:

,//,Space,Tab,LF}

Payload机制#3

这种Payload机制有两种形式:明文或混淆处理。

明文结构如下:

,//,Space,Tab,LF}

混淆处理后的Payload结构如下:

,//,Space,Tab,LF}

JavaScript上下文

Payload机制#1

{quote}{delimiter}{javascript}{delimiter}{quote}

可用的Payload有:

'^{javascript}^'
'*{javascript}*'
'+{javascript}+'
'/{javascript}/'
'%{javascript}%'
'|{javascript}|'
'<{javascript}<'
'>{javascript}>'

Payload机制#2

{quote}{delimiter}{javascript}//

可以使用下列Payload机制来构建Payload:

'<{javascript}//'
'|{javascript}//'
'^{javascript}//'

防火墙绕过

在研究过程中,总共绕过了八款WAF。下面的列表包含了可绕过的WAF、Paylaod以及相关的绕过技术:

WAF名称:Cloudflare

Payload:click

绕过技术:非空格填充

WAF名称:Wordfence

Payload:click

绕过技术:数字字符编码

WAF名称:Barracuda

Payload:click

绕过技术:数字字符编码

WAF名称:Akamai

Payload:click

绕过技术:黑名单中缺少事件处理器以及函数调用混淆

WAF名称:Comodo

Payload:click

绕过技术:黑名单中缺少事件处理器以及函数调用混淆

WAF名称:F5

Payload:click

绕过技术:黑名单中缺少事件处理器以及函数调用混淆

WAF名称:ModSecurity

Payload:

绕过技术:黑名单中缺少标签或事件处理器

WAF名称:dotdefender

Payload:

绕过技术:黑名单中缺少结束标签、事件处理器和函数调用混淆

以上就是如何绕过WAF的XSS检测机制,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。


本文题目:如何绕过WAF的XSS检测机制
链接URL:
http://cdxtjz.cn/article/jdjsep.html

联系我们

您好HELLO!
感谢您来到成都网站建设公司,若您有合作意向,请您为我们留言或使用以下方式联系我们, 我们将尽快给你回复,并为您提供真诚的设计服务,谢谢。
  • 电话:028- 86922220 18980695689
  • 商务合作邮箱:631063699@qq.com
  • 合作QQ: 532337155
  • 成都网站设计地址:成都市青羊区锣锅巷31号五金站写字楼6楼

小谭建站工作室

成都小谭网站建设公司拥有多年以上互联网从业经验的团队,始终保持务实的风格,以"帮助客户成功"为已任,专注于提供对客户有价值的服务。 我们已为众企业及上市公司提供专业的网站建设服务。我们不只是一家网站建设的网络公司;我们对营销、技术、管理都有自己独特见解,小谭建站采取“创意+综合+营销”一体化的方式为您提供更专业的服务!

小谭观点

相对传统的成都网站建设公司而言,小谭是互联网中的网站品牌策划,我们精于企业品牌与互联网相结合的整体战略服务。
我们始终认为,网站必须注入企业基因,真正使网站成为企业vi的一部分,让整个网站品牌策划体系变的深入而持久。