tls指纹之到底怎么判断是否有tls、到底怎么对抗tls

akamai TLS指纹(即JA3) akamai1.75 TLS指纹 ja3 akamai2.0 Cloudflare 5秒盾 阅读详情
AI摘要

本文介绍了如何判断是否存在TLS校验,包括检查请求头、HTTP2.0协议、请求参数一致性等。提供了多种Python请求失败的场景分析和解决方案,如调整请求编码、安装低版本库等。同时,文章讨论了不同强度的TLS校验及对应的绕过策略,如使用特定库或魔改工具,并列举了一些已知有TLS检测的平台。最后,给出了全面的TLS应对方法总结。

 声明

以下只是搬运下我公众号的东西。很早就发过了。原帖地址:

tls指纹之到底怎么判断是否有tls、到底怎么对抗tls (qq.com)

已经发公众号的为什么还发csdn

有的圈内朋友,不经过我的允许,删减摘录我公众号的内容,这里就不提谁了,心里清楚,还能获得一些关注和流量。很无语,所以我还不如自己也发发。【猛男落泪】

一、前言

其实自从大概一年前,发了tls/ja3那篇文章之后开始 ,就时不时有朋友找我私聊,让我帮忙看看某某平台,“怎么回事啊?”,“怎么python请求不到?”,“到底是不是tls?”,“怎么过tls?”,等等...

真的还挺多的

所以,这篇文章,我把我想的写出来,还不太懂的,请仔细看,一个字一个字的看,因为有的朋友问的问题,之前的文章其实都有的,所以我希望各位朋友,这篇文章请认真看

如果看完我这篇文章,还是无法确定是否是tls的话,也可以继续问我,但我希望你是经过自己思考还是没搞定的情况下再来的。

对tls还很陌生的朋友,可以看下猿人学的题,外部题19题,内部题22、29题,5s盾,阿什么迈

以及下面这几篇文章(请按顺序从上到下看)

https://mp.weixin.qq.com/s/Qx7PjnBgrTR30oCurU6CGw

https://www.cnblogs.com/Eeyhan/p/15662849.html

深度剖析ja3指纹及突破

ja3指纹补充说明

python完美突破tls/ja3

python突破tls后续:pip install

能过tls检测的curl-impersonate win版,搞起来啊

二、怎么判断有没有tls

这个话题我其实之前也说过了

你先排除以下情况:

1.验证了请求头顺序

比如猿人学的一道题,就验证了请求参数

我以前写过的博客:

https://www.cnblogs.com/Eeyhan/p/15292983.html

2.强制HTTP2.0协议

还是猿人学的一道题

我以前写的博客

https://www.cnblogs.com/Eeyhan/p/15662528.html

3.请求参数保证和抓包工具完全一致

比如,你的cookies,还有请求参数json.dumps的时候,是否要去掉空格

separators=(',', ':')

1.某车xx

群友给的,就不好说全名了,postman可以:

用python就是不行:

加下这个separators就可以了

2.某姓平台

访问进去的会有个验证,主要他还提示有个ssl安全加密

让你不得不联想到可能有tls,但是其实并没有,requests就可以访问的

3.某家平台

浏览器访问:
 

python下复制过来啥都不改就能访问的:

4.请求编码问题

某量引擎的请求参数 ,需要这样编码,才能正常请求

data="""{"keyword_list":["xxx"],"start_date":"20230115","end_date":"20230215","app_name":"aweme","region":[]}""".encode("utf-8")

某音也有类似的问题

更多的就得你自己具体问题具体分析

5.补充

补充一点就是,新版的requests 和 urllib3库,对ssl有校验,导致你开了抓包工具后,就无法请求数据,即使设置了verify=False,

解决办法就是安装低版本的requests和urllib3库即可

ip uninstall requests urllib3  # 先卸载 pip install requests==2.27  urllib3==1.25.8 -i https://pypi.doubanio.com/simple  # 指定版本安装,不然默认会装最新版

4.其他语言或者工具可以请求,就python不行

你到这里,那确实可能有tls校验,注意我说的词,【可能有】,因为也不一定

5.web平台,除了浏览器可以,其他语言都不行,app平台,除了app,其他语言都不行

你到这里,那有tls校验概率就很高很高了。

为啥还是没法100%确定有?别急,下面有解释

三、怎么判断有没有强校验的tls

请先用上面的流程判断是否有tls之后,再来看这里

1.弱校验

就是postman可以 ,javascript也可以(js也可能不行),curl也可以,就python不行,那大概率是很弱的校验,只需要照着我下面的方案即可解决:

以猿人学的题为例:

https://www.cnblogs.com/Eeyhan/p/15662849.html

2.中校验

按照我上面的改tls套件的方法不行,但是curl或者postman就是可以

毕竟方案已经公开,可能针对性的改了下,所以你针对性的分析,

可以用以下方案过可以过

  • go库:ja3transport,不支持HTTP2.0

  • go库:cycletls,支持HTTP2.0

  • requests go版:https://github.com/wangluozhe/requests

  • 志远大佬的方案,魔改openssl

3.强校验

python、postman、curl、js请求都不行,只有浏览器可以

用以下方案可以过:

四、误区:抓包工具没法判断是否有tls

很多人用抓包工具(wireshark,charles)看是否有tls,这个也是我之前对tls还不了解犯的错:

https://www.cnblogs.com/Eeyhan/p/15662849.html

抓包工具看到的是tls的套件算法,能不能验证是否有tls,这个是服务端判断的,只要有ssl,都会有tls套件的,比如,我用抓包工具看百度

比如上面,这里面能看到一堆tls算法,他就一定是tls吗,python也能直接请求百度啊。

tls真正的验证实际在服务端,所以我上面说判断是否有tls,我都没用肯定的语气词,都说的可能,大概率,这东西只有靠排除和猜的,在服务端的东西,前端是看不到的
 

五、哪些网站、平台确定有tls检测

有某迈、5s防护盾的网站

国外的电商平台基本都有tls(某逊等)

六、怎么过tls校验

请先用上面的流程判断是否有tls之后,再来看这里

上面解释怎么判断tls强弱的时候,已经总结了点,之前的文章【ja3补充说明】也总结了点,这里我重新做一个比较全面、完整的总结:

根据tls校验程度从小到大排序:

1.原生python层面修改tls套件

参考:

https://www.cnblogs.com/Eeyhan/p/15662849.html

2.用go的库ja3transport

https://github.com/CUCyber/ja3transport

3.用go的库requests

https://github.com/wangluozhe/requests

4.用go的库cycletls

https://github.com/Danny-Dasilva/CycleTLS

5.魔改openssl

志远大佬的方案,我就不好贴地址了

6.用python的库 pyhttpx

这个是我群里的大佬自己实现了底层socket搞出来的:

https://github.com/zero3301/pyhttpx

7.用杆总魔改的pycurl

我之前的文章里有详细配置步骤:

python完美突破tls/ja3

8.用python的库

其实就是魔改的pycurl的简易安装版,群里一个大佬编译好的,

里面有详细的步骤:

https://github.com/synodriver/pycurl/blob/master/special.markdown

9.pycurl 的docker版

我的docker镜像:

docker pull geekbyte1/pyantitls:v1.0docker run -it -d geekbyte1/pyantitls:v1.0

Q佬的docker file:

https://mp.weixin.qq.com/s/UZlLuzlQZrI7w82HI7zGuw

10.直接调用curl_impersonnate

就是魔改版的pycurl,用的核心的东西,直接操作终端然后调用curl_impersonnate

现在curl_impersonnate已经出windows版

能过tls检测的curl-impersonate win版,搞起来啊

11.cycletls的python版

https://github.com/Danny-Dasilva/cycletls_python

cycletls的作者已经在开发python版的cycletls了,刺不刺激

不过别高兴太早,目前还没pip install ,作者自己也说了,在积极开发中

去年12月我跟他发过邮件,想让他帮忙搞个python版出来,他到现在没回我,也不知道是不是因为我发的邮件让他想搞个python版出来,总之是有了,且快了

结语

这次应该算是够完整了吧,如果你还遇到问题,也乐意交流的

工作避坑&内推(仅成都)、技术交流、商务合作、报课优惠、技术交流群

扫码或者搜ID:geekbyte

TLS指纹的校验原理和绕过 2、抓网卡 注:如果我们的电脑有多张网卡,可以通过:ifconfig查看ip所属的网卡名,然后在wireshark上点击监控即可,或者将鼠标移到wireshark页面所展示的网卡名,wireshark会自动显示ip地址,然后选择我们要监控ip所在的网卡即可。它基于传输层安全协议(TLS)的特征,通过比较预期的TLS指纹和实际连接的TLS指纹来进行校验。比较指纹:将预期的TLS指纹与实际连接的TLS指纹进行比较。预期的TLS指纹获取:在进行TLS指纹校验之前,你需要事先获取预期的TLS指纹。 阅读详情

相关推荐

技术实践 | TLS指纹在Bot对抗中的应用实践

TLS指纹是一种极其有效的工具,通过对TLS客户端client hello包中的不同字段进行深入分析,我们可以生成独特的JA4指纹并利用这些指纹来识别特定的恶意Bot流量。

WangsuSecurity的博客 2325

总结TLS指纹反爬

TLS指纹,也有人叫JA3指纹。在创建TLS连接时,根据TLS协议在Client Hello阶段发送的数据包就是就是TLS指纹。不同浏览器、不同版本(不同框架)因为对协议的理解和应用不一样,所以发送的数据包内容也就不一样,所以就形成了TLS指纹。

老鹰的博客 6121

Burpsuite指纹绕过实战:从HTTP头伪装到TLS指纹对抗

在网络安全领域,指纹识别是WAF(Web应用防火墙)和IDS(入侵检测系统)用于检测恶意流量的核心技术。其原理是通过分析网络请求中的特征信息,如HTTP头部顺序、TLS握手的加密套件列表等,生成唯一标识符来区分正常客户端与自动化工具。这项技术的价值在于能有效拦截扫描器、爆破工具等攻击流量,提升应用安全防护的精准性。应用场景广泛覆盖金融、电商、政务等各类Web系统的安全防护。本文聚焦于Burpsuite这一渗透测试常用工具,针对其易被识别的HTTP请求头特征(如默认User-Agent、缺少Sec-Fetch

abcyan1235的博客 452

常见反爬策略整理——TLS 指纹

讲解 TLS 指纹特征以及通用解决方案

qq_38223858的博客 3682

网页自动化对抗风控:从TLS指纹到Canvas指纹的攻防实战

浏览器指纹是网站识别自动化工具与真实用户的关键技术,它无需cookie或登录即可在后台生成设备唯一标识。其核心原理在于,浏览器在建立HTTPS连接和渲染页面时,会暴露网络栈与图形处理等底层特征,最终通过哈希算法形成可比较的指纹。TLS指纹与Canvas指纹分别代表网络层与渲染层的典型识别维度:前者在加密握手之前就已明文传输,后者则依赖JS采集画布像素差异。理解这些技术有助于开发者构建更稳固的网页自动化方案,并规避风控系统的交叉验证。无论是爬虫对抗、账号环境隔离,还是批量操作管理,都需要从底层到上层进行系统性

weixin_42533120的博客 236

TLSFOWARD抓包软件 tls指纹

轻量化抓包软件

2603_96485347的博客 871

TLS指纹模拟

安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。在渗透攻防中也常常利用来进行隐蔽隧道通信,从而也衍生出了tls的检测与对抗,本文就围绕tls的检测和绕过来展开。

weixin_39251927的博客 3416

TLS指纹随机化:基于Chromium源码的浏览器指纹对抗实践

HTTPS通信在HTTP请求前需完成TLS握手,而ClientHello中的密码套件、椭圆曲线和扩展顺序构成了独特的TLS指纹。JA3/JA4算法基于这些参数生成哈希值,令服务器无需解析HTTP就能识别浏览器类型,即使修改UA和Canvas指纹也无济于事。通过分析Chromium源码中ClientHello的拼装逻辑,建立指纹配置池并随机注入,可实现TLS指纹的随机化与合法化,有效对抗基于指纹的风控识别。本文从TLS握手原理出发,结合BoringSSL源码改造,详细讲解配置池构建、SSL_CTX注入及验证方

weixin_32234493的博客 272

移动安全相关知识(自用)

各种安全知识:HYLUZ - 我们可能有光明的前途!IMEI相关:Android 各个版本获取IMEI、MEID_unity获取android 10以上的meid码_MirkoWug的博客-优快云博客Android如何获取双卡手机IMEI的方法示例-腾讯云开发者社区-腾讯云 (tencent.com)tls指纹:tls指纹之到底怎么判断是否有tls、到底怎么对抗tls_I am geekbyte的博客-优快云博客

East_bo的博客 130

TLS指纹反爬实战:从原理到对抗Akamai检测的完整方案

TLS(传输层安全)协议是保障HTTPS加密通信的基石,其握手过程中的Client Hello报文携带了客户端的核心身份信息。通过提取TLS版本、密码套件列表及扩展列表等字段生成的TLS指纹,已成为服务器识别客户端类型的关键技术。这项技术对于网络安全和流量管理具有重要价值,能有效区分正常浏览器流量与自动化脚本。在数据采集和爬虫开发领域,TLS指纹检测是主流反爬机制的核心,尤其被Akamai等高级防护服务广泛应用。本文聚焦于TLS指纹的构成原理与JA3算法,并深入探讨如何通过工具抓包分析、使用tls-clie

weixin_30924239的博客 399

TLS指纹检测全解析:从Wireshark抓包到Akamai反爬对抗实战

本文全面解析TLS指纹检测技术,从Wireshark抓包到Akamai反爬对抗实战,深入探讨JA3指纹原理、主流浏览器特征及高级对抗方案。通过实战案例展示如何突破Akamai防护,为安全研究和爬虫开发提供关键技术指导。

websocket5live的博客 242

tls指纹之chrome新版功能/近期问题汇总/目前能直接使用的tls对抗库

今天在找某个东西的时候,无意间,想看看ja3相关的东西,有没有啥值得研究的,然后就突然想起chrome随机指纹那个事,这个其实在2023年开年上班那几天的时候,就我群里看到群友说,chrome新版,自带随机ja3指纹,卧槽?我当时是不信的,结果试了半天,确实是不一样了????我用的以下网站测试,ja3官网现在经常无法访问了这是什么个情况?我反复确认,确实是不一样了,具体哪里不一样了呢?颠覆了啊,卧槽,为啥,ja3官网之前不是说一个浏览器客户端ja3指纹基本是固定的吗?

app安全逆向、移动开发、tls/ja3、爬虫、反爬 2981

爬虫对抗实战:从TLS指纹到Cloudflare挑战的绕过全解析

在爬虫开发中,网站反爬机制不断升级,从基础的User-Agent伪装到TLS指纹识别、JavaScript挑战、行为分析与验证码校验,层层设防。理解这些技术原理,是构建稳定数据采集系统的前提。TLS指纹通过ClientHello特征识别客户端类型,ja3/ja4指纹检测能有效拦截requests等默认HTTP库;Cloudflare的JS Challenge与Turnstile验证码则通过动态环境检测区分真实用户与自动化脚本。工程实践中,采用curl_cffi模拟浏览器指纹、Playwright处理挑战Co

weixin_28716443的博客 315

TLS指纹对抗技术:原理、实现与实战应用

TLS指纹技术通过分析SSL/TLS握手阶段的特征参数组合,能够唯一标识客户端身份,广泛应用于反爬系统和网络安全领域。JA3/JA4算法通过加密套件、扩展列表等参数生成唯一指纹,传统爬虫工具如requests因固定指纹特征易被识别。动态参数变异和底层协议栈修改是主要对抗策略,通过随机化加密套件顺序、修改系统级SSL配置实现指纹伪装。在Python中,可通过pyOpenSSL等库动态生成随机化TLS参数,模拟浏览器指纹特征。该技术在电商平台反爬、自动化测试等场景具有重要价值,结合流量混淆和分布式架构可提升对抗

weixin_26642481的博客 3

Python爬虫进阶:TLS指纹绕过技术与高级反爬对抗实战

TLS(Transport Layer Security)协议是HTTPS连接的基础,负责在客户端和服务器之间建立加密通道。在TLS握手过程中,客户端会向服务器发送一个Client Hello消息,其中包含了客户端的TLS版本、加密套件、扩展列表等信息。这些信息的组合形成了客户端的TLS指纹。JA3是一种流行的TLS指纹生成方法,它通过以下组件生成指纹哈希:TLS版本支持的加密套件扩展列表支持的椭圆曲线支持的椭圆曲线格式对于需要更精细控制的场景,我们可以直接配置SSL上下文:python。

2201_76125261的博客 1816

Python爬虫进阶:TLS指纹对抗,彻底解决JA3/JA4指纹被识别问题(2026终极版)

TLS版本加密套件列表椭圆曲线、扩展字段压缩算法这些参数组合生成一个唯一哈希值JA3指纹真实浏览器:指纹动态且符合规范指纹永久固定,一抓一个准创建"""Scrapy TLS指纹对抗中间件 - 模拟Chrome JA3指纹"""# 核心:用curl_cffi发送请求,模拟Chrome120 TLS指纹impersonate="chrome120", # 模拟真实浏览器指纹proxies=request.meta.get('proxy'), # 兼容代理IP。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1702

TLS与Canvas指纹识别原理及反指纹对抗实战解析

浏览器指纹是风控系统识别自动化工具的核心手段,其采集维度横跨网络、渲染、环境与存储等多个层面。其中,TLS握手阶段的ClientHello特征与Canvas渲染产生的像素差异,分别从网络协议与图形绘制两个维度暴露客户端身份,构成最难绕过的双重验证。理解JA3/JA4指纹的生成逻辑、Canvas绘图指令的硬件烙印,是构建自洽虚拟身份的前提。在爬虫工程、自动化测试与反欺诈风控场景中,通过utls模拟浏览器握手预设、注入脚本对像素与文本测量结果施加确定性扰动,并同步协调WebGL、音频等关联维度,可有效提升指纹伪

weixin_32234493的博客 247

CycleTLS:使用GO和Javascript欺骗TLSJA3指纹,并增加了对代理的支持

循环TLS 目前正在积极开发中 去做: 修复TS API 重做套接字请求api 错误修正(错误的https代理,不正确的JA3等) 状态检查golang 并发和速度测试 设置 npm install --dev npm run build 如果窗户 npm run build:windows 如果是Linux npm run build:linux 如果是Mac npm run build:mac: Golang示例 package main import ( "log" "github.com/Danny-Dasilva/cycletls" ) var FirefoxAuto = cycletls. Browser { JA3 : "771,4865-4867-4866-49195-49199-52393-52392-49196-4

上一篇: 对某数藏app逆向安全分析
下一篇: python完美突破tls/ja3
geekbyte.
博客等级 码龄11年 308粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值