标签搜索
侧边栏壁纸
  • 累计撰写 25 篇文章
  • 累计收到 31 条评论

逆向之TLS指纹

z
z
2021-11-10 / 1 评论 / 22 阅读 / 正在检测是否收录...

大概过tls的思路

1.最主要的 设置requests tls指纹
requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS

2.看发tls带了啥,一般有 http1.1和User-Agent 有的要弄上这两个 有的没检测这
requests发的tls默认写http1.0 要改源码为1.1

教程:
先用fd抓包,看每次发请求前都有一个Tunnel,甚至还有一把小锁的图标
kvszaulf.png
点进来看 写的version 3.3(TLS/1.2) 这个就是了

先搞TLS指纹吧
图中的Ciphers就是指纹key 但是这个是假的
用小鲨鱼 wireshark抓包
kxr7pux9.png
点Client Hello然后Cipher Suites里面的Cipher Suite 显示有16个
第一个去掉,复制后面15个就行了 复制先备用
打开官方的密码表网址:https://www.openssl.org/docs/man1.1.1/man1/openssl-ciphers.html
kvt0r8zc.png
循环搜索你复制的N个 Cipher Suite 然后再把右边的value粘贴下来 如图
只要右边的 最后以value:value:... 拼凑成一串
再在python里

import requests.packages.urllib3.util.ssl_
requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS = "TLS_AES_128_GCM_SHA256:xxx:xxx:xxx"
#xxx粘贴你自己弄的那些

第一步就完事了 可以尝试下能跑吗 不能就继续

第二步
右边的CONNECT 网址 HTTP1.1 和Headers{Connecton User-Agent} 都弄上
位置在源码 python/Lib/http/client.py

//可以在python里直接写这个
import http.client
http.client.HTTPConnection
//然后ctrl+鼠标左键单击HTTPConnection 跳转到源码位置
//第886行的这个函数->_tunnel(self)
//改成下面这样 headres按需扩展
  def _tunnel(self):
        connect_str = "CONNECT %s:%d HTTP/1.1\r\n" % (self._tunnel_host,
            self._tunnel_port)
        connect_bytes = connect_str.encode("ascii")
        self.send(connect_bytes)
        self._tunnel_headers={
          "Connection":"keep-alive",
          "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"
        }
        for header, value in self._tunnel_headers.items():
            header_str = "%s: %s\r\n" % (header, value)
            header_bytes = header_str.encode("latin-1")
            self.send(header_bytes)
        self.send(b'\r\n')

改完了记得把import源码那个删除掉

可以了,不写了,该干饭了

0

评论 (1)

取消
  1. 头像
    Mask
    MacOS · Google Chrome

    吊啊

    回复