websec80

  博客园  :: 首页  :: 新随笔  :: 联系 ::  :: 管理

Burp抓包被WAF拦截?这个插件一键修改JA3指纹!

项目地址 

https://github.com/sleeyax/burp-awesome-tls

 

Burp Awesome TLS — 安装、使用与配置指南
项目简介
Awesome TLS 是一个 Burp Suite 扩展,可以劫持 Burp 的 HTTP/TLS 堆栈,伪装任意浏览器的 TLS 指纹(JA3),用于绕过 CloudFlare、PerimeterX、Akamai、DataDome 等 WAF 的 TLS 指纹检测。

1. 安装
前提条件: 已安装 Burp Suite(社区版或专业版均可)和 Java 运行环境。

前往 Releases 页面 下载对应操作系统的 JAR 文件(或下载 "fat jar",它跨平台通用)
打开 Burp → Extender → Extensions 标签页 → 点击 Add
Extension Type 选择 Java,浏览选择下载的 JAR 文件
点击 Next,加载成功后 Burp 中会出现 "Awesome TLS" 标签页
2. 基本使用
加载后即 开箱即用(plug and play)。在 "Awesome TLS" 标签页中:

每个配置字段都有鼠标悬停提示(tooltip),解释其作用
默认配置已经可以工作,直接开始发包即可
导入自定义 Client Hello(高级用法):

在 Wireshark 中抓取目标浏览器的 Client Hello 包
将其 Hex 流 复制出来
粘贴到 Awesome TLS 标签页的 "Hex Client Hello" 字段中
扩展会自动解析并应用该 TLS 指纹
3. 高级配置
在 Advanced 标签页中,可以开启一个额外的代理监听器(proxy listener),它会自动从入站请求中提取并应用当前指纹。

4. 测试验证
访问以下指纹检测网站来验证 TLS 伪装效果:

测试站点 用途
https://tlsfingerprint.io/ JA3 指纹检测
https://kawayiyi.com/tls TLS 指纹分析
https://tls.peet.ws/ TLS 客户端检测
https://cloudflare.manfredi.io/en/tools/connection CloudFlare 检测
https://scrapfly.io/web-scraping-tools/http2-fingerprint HTTP/2 指纹检测
测试流程:

先关闭 Awesome TLS,用 Burp 原生 TLS 访问上述站点,观察默认指纹和 Bot Score
开启 Awesome TLS 并选择一个浏览器指纹(如 Chrome 的 JA3)
再次访问,对比 Bot Score 是否显著降低
5. 手动构建(可选)
如果需要从源码构建:


# 1. 编译 Go 原生库
cd ./src-go/server
go build -o ../../src/main/resources/linux-x86-64/server.so -buildmode=c-shared ./cmd/main.go

# 2. 用 IntelliJ 编译 GUI 表单(SettingsTab.form)

# 3. 用 Gradle 打包 JAR
gradle buildJar
# 输出在 ./build/libs/
构建需要同时具备 Go 和 Java/Gradle 开发环境。一般用户直接下载 Release 的 JAR 即可,不需要手动构建。

 

JA3 从 62f6a6... 变成了 cd08e3...,说明 Awesome TLS 已经在工作,指纹确实被修改了。

但 29% human 仍然很差。原因是 Awesome TLS 内置的默认指纹已经被各大检测站标记入库了,光换一个内置指纹不够。

下一步:导入真实浏览器的 Client Hello
关键一步 — 你必须用 你自己电脑上真实 Chrome/Firefox 的 Client Hello Hex,而不是用扩展自带的:

用 Wireshark 抓取:

打开 Wireshark,选择你的网卡
过滤器填 tls.handshake.type == 1(只显示 Client Hello)
用 Chrome/Firefox 访问任意 HTTPS 网站(比如 https://www.google.com)
在 Wireshark 中找到 Client Hello 包 → 右键 → Copy → ...as a Hex Stream
粘贴到 Awesome TLS 的 "Hex Client Hello" 字段
同时确保以下 HTTP Header 和你的浏览器一致:

User-Agent — 必须和抓包用的浏览器版本一致
Accept、Accept-Language、Accept-Encoding
Sec-Ch-Ua 系列(Chrome 的 client hints)
如果本地没有真实浏览器可抓包,可以从 JA3 数据库 或 tlsfingerprint.io 查找已知的浏览器 JA3 值作为参考,但直接导入 Hex Client Hello 效果最好,因为 JA3 只是摘要,完整 Client Hello 包含更多特征(扩展顺序、GREASE 值等),这些 tls.peet.ws 也会检测。

做完后再测,目标应该是 >90% human。

 

正确复制方法
在 Wireshark 中:

image

 

找到 Client Hello 包,展开 TLS/SSL 层
右键 Transport Layer Security 这一行(不要右键整个 Frame)
Copy → ...as a Hex Stream
如图,要的是从 16 03 ... 开头的内容,而不是带 Ethernet/IP/TCP 头的。

posted on 2026-05-19 09:34  websec80  阅读(17)  评论(0)    收藏  举报