js逆向知识-Ja3指纹学习

  • Post author:
  • Post category:其他




目录



一、ja3指纹介绍

  • 1、

    指纹

    :通过一些算法将一些特征加密得到的值,这些值往往能够区分你是谁。每个客户端会生成特定的

    ja3指纹

    ,并不会随ip和useragent改变,

    通过ja3指纹可以定位识别到某个客户端

    (不限于浏览器、python等)

  • 2、

    chrome浏览器

    查看ja3指纹:

    https://ja3er.com/json

    ,或者

    https://ja3er.com/


    在这里插入图片描述

  • 3、

    python的requests包

    查看ja3指纹

    import requests
    headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36",}
    res = requests.get("https://ja3er.com/json", headers=headers, timeout=10)
    print(res.json())
    # {'ja3_hash': '77b2140d11c959ef7cc4e15405e0860b', 'ja3': '771,157-156-49196-49200-49327-49325-49188-49192-49162-49172-163-159-52394-49315-49311-162-158-49314-49310-107-106-196-195-103-64-190-189-57-56-136-135-51-50-69-68-49195-49199-49326-49324-49187-49191-49161-49171-49313-49309-49312-49308-61-60-53-47-192-186-132-65-52393-52392-49267-49271-49266-49270-255,0-11-10-35-22-23-13-21,29-23-25-24,0-1-2', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 Edg/92.0.902.67'}
    
  • 4、

    抓包工具Wireshark

    查看ja3指纹:在其展示的

    Client Hello数据包

    示例。首先得

    下载最新版Wireshark

    ,不然可能看不到ja3指纹。如图看到两个ja3指纹,第一个是ja3相关的5个特征指纹,第二个则是将第一个进行了MD5哈希值计算生成的,通过hash值可以确定ja3指纹是否一样

    在这里插入图片描述

  • 5、

    ja3指纹

    计算规则由5个字段组成:更多详细

    参考文章1



    参考文章2



    参考文章3

    ,Wireshark上的十六进制数(如

    0x0303

    )即如下图片展示的数字。Cipher Suites扩展

    CIPHER SUITE NAMES查询映射关系


    在这里插入图片描述

    在这里插入图片描述



二、ja3指纹解决方案

  • 据前辈们踩坑:python有缺陷暂无法绕过校验严格的ja3指纹检测
  • 但是

    go和js

    可以设置ja3指纹正常请求,具体的待继续研究



版权声明:本文为m0_67391401原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。