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

这篇具有很好参考价值的文章主要介绍了tls指纹之到底怎么判断是否有tls、到底怎么对抗tls。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 声明

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

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

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

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

一、前言

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

真的还挺多的

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

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

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

tls指纹,反爬虫与爬虫,tls/ja3,安全,爬虫,python,反爬

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

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可以:

tls指纹,反爬虫与爬虫,tls/ja3,安全,爬虫,python,反爬

用python就是不行:

tls指纹,反爬虫与爬虫,tls/ja3,安全,爬虫,python,反爬

加下这个separators就可以了

tls指纹,反爬虫与爬虫,tls/ja3,安全,爬虫,python,反爬

2.某姓平台

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

tls指纹,反爬虫与爬虫,tls/ja3,安全,爬虫,python,反爬

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

3.某家平台

浏览器访问:
 

tls指纹,反爬虫与爬虫,tls/ja3,安全,爬虫,python,反爬

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

tls指纹,反爬虫与爬虫,tls/ja3,安全,爬虫,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请求都不行,只有浏览器可以

用以下方案可以过:

  • 魔改的pycurl,具体见我之前的文章:python完美突破tls/ja3,python突破tls后续:pip install

  • pyhttpx

  • curl_impersonate

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

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

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

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

tls指纹,反爬虫与爬虫,tls/ja3,安全,爬虫,python,反爬

比如上面,这里面能看到一堆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了,刺不刺激

tls指纹,反爬虫与爬虫,tls/ja3,安全,爬虫,python,反爬

tls指纹,反爬虫与爬虫,tls/ja3,安全,爬虫,python,反爬

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

tls指纹,反爬虫与爬虫,tls/ja3,安全,爬虫,python,反爬

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

tls指纹,反爬虫与爬虫,tls/ja3,安全,爬虫,python,反爬

tls指纹,反爬虫与爬虫,tls/ja3,安全,爬虫,python,反爬

结语

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

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

扫码或者搜ID:geekbyte文章来源地址https://www.toymoban.com/news/detail-556878.html

到了这里,关于tls指纹之到底怎么判断是否有tls、到底怎么对抗tls的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在python中怎么 判断一个值是否为Nan

    在 Python 中,可以使用 math.isnan() 或者 numpy.isnan() 来判断一个值是否为 NaN。 示例代码如下: 在上面的代码中,我们首先使用 float(‘nan’) 创建了一个 NaN 值,并使用 math.isnan() 判断它是否为 NaN。 另外,如果需要判断一个数组中的值是否为 NaN,则可以使用 numpy 库中的 isnan() 函

    2024年02月12日
    浏览(44)
  • TLS指纹模拟

    深蓝实验室@lz520520 https等协议通过tls加密传输,大家可能觉得数据被全加密了应该可以保证无恶意流量特征,流量侧通信不会被发现,但在加密前,会有一个tls协商过程,client和server协商交互才会生成最后加密用的密钥,而这个协商过程就可以切切实实进行指纹提取。这就是

    2024年02月05日
    浏览(14)
  • 【python基础知识】python中怎么判断两个字符串是否相等

    目录 有哪些判断方法 1. == 运算符 2. is 运算符 有哪些特殊情况 1. 字符串中包含空格、换行符、制表符等特殊字符 2. 字符串编码格式的不同 3. 字符串对象的创建方式不同 注意事项 1. 避免使用is运算符进行字符串比较 2. 注意空格、换行符、制表符等特殊字符的影响 3. 注意字符

    2024年02月08日
    浏览(30)
  • 怎么看同一个路由器有几个人在用(判断是否被蹭网)

    棱镜门事件折射出了很多令用户对隐私的担忧,其中这种现象也很常见,不如我们常用的路由器无线网络经常就会遭遇被他人入侵蹭网。今天本文不与大家讨论什么棱镜门事件,而是讨论下很多路由器用户比较关系的路由器有几个人在用的问题。有兴趣的朋友不妨阅了解下。

    2024年02月06日
    浏览(25)
  • 怎么看路由器有几个人在用判断路由器是否被蹭网等情况

    棱镜门事件折射出了很多令用户对隐私的担忧,其中这种现象也很常见,不如我们常用的路由器无线网络经常就会遭遇被他人入侵蹭网。今天本文不与大家讨论什么棱镜门事件,而是讨论下很多路由器用户比较关系的路由器有几个人在用的问题。有兴趣的朋友不妨阅了解下。

    2024年02月07日
    浏览(16)
  • vue前端判断某一个String类型的集合中是否包含某一个字符串怎么做

    在上面的代码中,我们使用 includes() 方法判断 strList 数组中是否包含 targetStr 字符串,如果包含则输出“字符串集合中包含目标字符串”,否则输出“字符串集合中不包含目标字符串”。 该博文为原创文章,未经博主同意不得转。本文章博客地址:https://cplusplus.blog.csdn.net/a

    2024年02月21日
    浏览(21)
  • python解决JA3 TLS指纹反爬几种方案

    curl_cffi: 支持原生模拟浏览器 TLS/JA3 指纹的 Python 库 Pyhttpx: https://github.com/zero3301/pyhttpx 修改urllib3 ssl_源码的DEFAULT_CIPHERS里的加密算法 requests版本 scrapy版本

    2024年02月12日
    浏览(16)
  • 手机指纹传感器:是否真的那么安全?

    快速链接: . 👉👉👉 个人博客笔记导读目录(全部) 👈👈👈 付费专栏-付费课程 【购买须知】: 【精选】ARMv8/ARMv9架构入门到精通-[目录] 👈👈👈 — 适合小白入门 【目录】ARMv8/ARMv9架构高级进阶-[目录]👈👈👈 — 高级进阶、小白勿买 【加群】ARM/TEE/ATF/SOC/芯片/安全-学习交

    2024年02月03日
    浏览(18)
  • 聊一聊 C# 的线程本地存储TLS到底是什么

    有朋友在后台留言让我说一下C#的 ThreadStatic 线程本地存储是怎么玩的?这么说吧,C#的ThreadStatic是假的,因为C#完全是由CLR(C++)承载的,言外之意C#的线程本地存储,用的就是用C++运行时提供的 __declspec(thread) 或 __thread 来虚构的一套玩法,这一篇我们就来简单聊一聊。 在

    2024年02月03日
    浏览(20)
  • 区块链是否可以对抗新冠

      现如今,几乎每一项技术都涉及到人工智能和机器学习。 计算机视觉正在使自动驾驶汽车和机器人助手成为现实。 但人工智能不仅仅是一种给人们带来便利的工具,它带来的一些最显著的进步在医疗保健领域亦有体现,并且相关技术人员每天都在追求新技术的更多应用。

    2024年02月02日
    浏览(17)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包