突破tls/ja3新轮子

这篇具有很好参考价值的文章主要介绍了突破tls/ja3新轮子。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我之前的文章介绍了SSL指纹识别

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

很多人来问我BYPass的方法

主流的BYPASS方法有两大类:

  1. 使用定制ja3的网络库 go在这块的库比较流行(比如go的库requests还有cycletls) 缺点在于,就是得用go语言开发(cycletls有nodejs的但是也是开了一个go语言的一个websocket)

  2. 魔改curl,最有名的就是curl-impersonate 对应win版本的 https://github.com/depler/curl-impersonate-win 缺点就是编译复杂,使用方式上,得用包装curl的第三方库,用的多就是python的pycurl 其他语言的比较少

正好五一有时间,站在巨人们的肩膀上我用go语言开发了一个代理服务.

只需要设置这个代理服务,就可以自定义ja3参数

这样任何语言都可以直接用了,而且只需要加一个webproxy即可

具体效果可以往下看

image

解压后如上图,包含2个文件

  • ja3proxy.exe ja3proxy是go开发的一个控制台程序
  • localhost_root.pfx 本地证书

(测试加我要)

为了方便本机测试,先安装localhost_root.pfx证书, (如果不安装证书,也可以运行,只不过你需要将请求忽略ssl verify)

证书密码为123456

image

选择位置为:受信任的根证书颁发机构

image

安装成功后,使用如下命令 运行ja3proxy.exe


ja3proxy.exe -pfxFile=localhost_root.pfx -pfxPwd=123456
image

支持的参数共有如下:

  • pfxFile (pfx类型证书)
  • pfxPwd (pfx证书的密码)
  • authName 如果你要开启ja3proxy代理服务的basicauth认证,可以设置
  • authPwd (同上)
  • httpPort (ja3proxy代理的http端口,默认为8080)
  • httpsPort (ja3proxy代理的https端口,默认为8443)
  • certFile 非pfx类型证书可以设置
  • keyFile 同上

ja3proxy运行成功后,测试代码如下:



var proxy = new WebProxy
{
    // 这就是我们的ja3proxy
 Address = new Uri($"http://localhost:8080")
};

var httpClientHandler = new HttpClientHandler
{
 Proxy = proxy,
};

// 因为我们再上面把证书添加到本机受信任了 所以这行代码不需要,如果你不操作受信任证书的话,就需要
//httpClientHandler.ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;


var client2 = new HttpClient(handler: httpClientHandler, disposeHandler: true);

// 设置ja3指纹
client2.DefaultRequestHeaders.Add("tls-ja3","771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,17513-10-18-11-51-13-27-0-35-65281-43-16-45-5-23-21,29-23-24,0");
// 设置ja3proxy执行请求的超时
client2.DefaultRequestHeaders.Add("tls-timeout","10");
// 设置ja3proxy执行请求用代理,设置后请求目标服务器拿到的就是代理ip
// client2.DefaultRequestHeaders.Add("tls-proxy","http://252.45.26.333:5543");

// 设置当前请求的useragent
client2.DefaultRequestHeaders.UserAgent.ParseAdd("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36");


var result = await client2.GetStringAsync("https://kawayiyi.com/tls");
Console.WriteLine(result);

执行后,校验ja3一致

{
  "sni": "kawayiyi.com",
  "tlsVersion": "Tls13",
  "tcpConnectionId": "0HMQ8N2PQCRQE",
  "random": "AwN2jHvxe/TKafrfmZ1KG2JWrD7u6M1N4dpeIGdYQwA=",
  "sessionId": "FvNiwCLizsA2JZt0/8865tX2A5VsfbgjlCu4Qg4jPjg=",
  "tlsHashOrigin": "771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,17513-10-18-11-51-13-27-0-35-65281-43-16-45-5-23-21,29-23-24,0",
  "tlsHashMd5": "05556c7568c3d3a65c4e35d42f102d78",
  "cipherList": [
    "TLS_AES_128_GCM_SHA256",
    "TLS_AES_256_GCM_SHA384",
    "TLS_CHACHA20_POLY1305_SHA256",
    "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
    "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
    "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
    "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
    "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256",
    "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
    "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
    "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
    "TLS_RSA_WITH_AES_128_GCM_SHA256",
    "TLS_RSA_WITH_AES_256_GCM_SHA384",
    "TLS_RSA_WITH_AES_128_CBC_SHA",
    "TLS_RSA_WITH_AES_256_CBC_SHA"
  ],
  "extentions": [
    "extensionApplicationSettings",
    "supported_groups",
    "signed_certificate_timestamp",
    "ec_point_formats",
    "key_share",
    "signature_algorithms",
    "compress_certificate",
    "server_name",
    "session_ticket",
    "renegotiation_info",
    "supported_versions",
    "application_layer_protocol_negotiation",
    "psk_key_exchange_modes",
    "status_request",
    "extended_master_secret",
    "padding"
  ],
  "supportedgroups": [
    "X25519",
    "CurveP256",
    "CurveP384"
  ],
  "ecPointFormats": [
    "uncompressed"
  ],
  "proto": "HTTP/2",
  "h2": {
    "SETTINGS": {
      "1": "65536",
      "3": "1000",
      "4": "6291456",
      "5": "16384",
      "6": "262144"
    },
    "WINDOW_UPDATE": "15663105",
    "HEADERS": [
      ":method",
      ":authority",
      ":scheme",
      ":path"
    ]
  },
  "user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36",
  "clientIp": "103.219.192.197"
}

nodejs测试

const request = require('request');

const options = {
    url:'https://kawayiyi.com/tls',
    method: 'GET',
    headers: {
        'tls-ja3':'771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,17513-10-18-11-51-13-27-0-35-65281-43-16-45-5-23-21,29-23-24,0',
        'tls-timeout':'10',
        'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36', // 设置请求头中的 User-Agent
    },
    proxy: 'http://localhost:8080',
    strictSSL:false
};

request.get(options, (error, response, body) => {
    if (error) {
        console.error(error);
        return;
    }
    console.log('body:', body);
});
image

h2的header顺序:m,a,s,p 和chrome保持一致

原理

image

ja3proxy(是一个中间人)接管你的请求,然后自己去目标建立tls,clienthello就用你指定的ja3参数

 

 

使用方式(20230617新增)

 

header中支持添加如下几项


tls-ja3:771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,0-23-65281-10-11-35-16-5-13-18-51-45-43-27-17513-21,29-23-24,0 (可以https://tls.peet.ws/api/all查看)

tls-timeout: 10 (单位s 代表proxy去发请求的超时时间)

tls-h2settings:1:65536,2:0,3:1000,4:6291456,6:262144 (可以https://tls.peet.ws/api/all查看http2.sent_frames)

tls-proxy:http://127.0.0.1:1080 (代表proxy发请求的时候走代理,也支持socks5://127.0.0.1:1080)

tls-https:true (代表会将你请求的http升级为https,好处是你不需要导入证书,也不必用代码来忽略证书问题)

可以关注后回复ja3proxy下载,包含windows,linux,mac三端都可以用,

license找我免费颁发。 

 

突破tls/ja3新轮子文章来源地址https://www.toymoban.com/news/detail-431861.html

到了这里,关于突破tls/ja3新轮子的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • SSL/TLS介绍以及wireshark抓包TLS Handshake报文

    SSL(Secure Sockets Layer)和TLS(Transport Layer Security)是一种安全协议,用于在计算机网络上实现加密通信。SSL最初由美国Netscape开发,随后发展为TLS,并得到了广泛应用,成为互联网上保护通信安全的标准协议。 TLS 位于 TCP 之上(也有基于 UDP 的,称为DTLS,这里不讨论它),如

    2024年02月03日
    浏览(37)
  • SSL/TLS 介绍以及如何利用openssl生成证书

    SSL:Secure Socket Layer 安全套接字层。 TLS:Transport layer Security 传输层安全性,是一种加密协议。 到2020年,SSL以及TLS1.0,TLS1.1已被弃用 Authentication:通信双方可以确认双方的身份,不被黑客拦截信息伪造身份。 Confidentiality:通信的内容经过加密,更加安全,不被授权的用户无法识别

    2024年02月04日
    浏览(46)
  • 什么是HTTPS加密协议?HTTPS安全传输原理,SSL和TLS介绍,NGINX如何配置SSL证书

    HTTPS是超文本传输协议(HTTP)的安全版本。它使用SSL(安全套接层)或TLS(传输层安全)加密协议来保护数据传输的安全性和机密性,以防止未经授权的访问和窃听。HTTPS协议通常用于处理敏感信息,如在线支付或登录凭证等。可以通过URL的前缀来识别一个网站是否使用了H

    2024年02月03日
    浏览(56)
  • ai写作软件怎么写文章?这篇文章介绍三个好方法

    在人工智能技术的迅速发展下,ai写作成为创作领域的一项炙手可热的新技术。随着越来越多的创作者开始借助ai写作工具,ai写作逐渐引起了广泛的关注。ai写作是指利用人工智能技术和自然语言处理算法,为创作者提供文章的初版。不过有很多小伙伴对这一项技术还不太了

    2024年02月11日
    浏览(39)
  • 推荐 ChatGpt 平替介绍文章

    chenking2020/FindTheChatGPTer: 汇总那些ChatGPT的平替们 (github.com) Alpaca https://github.com/tatsu-lab/stanford_alpaca Alpaca DEMO: https://alpaca-ai-custom6.ngrok.io OpenChatKit https://github.com/togethercomputer/OpenChatKit ChatGLM https://github.com/THUDM/ChatGLM-6B ChatYuan https://github.com/clue-ai/ChatYuan Colossal AI https://github.com/hpca

    2024年02月03日
    浏览(35)
  • 一篇文章介绍分布式事务

    事务 事务指的就是一个操作单元,在这个操作单元中的所有操作最终要保持一致的行为,要么所有操作都成功,要么所有的操作都被撤销。简单地说,事务提供一种“要么什么都不做,要么做全套”机制。 本地事务 本地事务其实可以认为是数据库提供的事务机制。说到数据

    2023年04月23日
    浏览(37)
  • 【易售小程序项目】项目介绍与系列文章集合

    易售二手小程序主要用于校园中二手商品的交易,该系列文章会记录这个小程序前端的整个开发过程并提供详细代码,后台主要基于若依管理系统搭建,文章中也会提及后端关键部分的实现及代码。希望该系列文章可以帮助小白了解项目的开发流程和一个产品的迭代过程,如

    2024年02月10日
    浏览(43)
  • Ja实现对业务用户va如何实现readBytes的操作篇

    这里只介绍liteflow的简单基础使用以及作者对liteflow进行可视化扩展的相关阐述 背景:对于拥有复杂业务逻辑的系统承载着核心业务逻辑,这些核心业务逻辑涉及内部逻辑运算,缓存操作,持久化操作,外部资源调取,内部其他系统RPC调用等等。项目几经易手,维护的成本就

    2024年02月22日
    浏览(36)
  • 【ARM Coresight 系列文章 2 - ARM Coresight 介绍】

    请阅读 【ARM Coresight SoC-400/SoC-600 专栏导读】

    2024年02月12日
    浏览(39)
  • 【Stable Diffusion】专栏介绍和文章索引(持续更新中)

    最近开始学习AIGC,对Stable Diffusion比较感兴趣,所以新建了这个专栏,来记录自己在使用和学习Stable Diffusion的一些方法、资料以及实验过程,也和大家一起分享这些经验和心得体会,一起学习进步。 专栏地址:Stable Diffusion 本专栏会分以下几部分介绍。 入门:主要是介绍SD的

    2024年04月11日
    浏览(40)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包