跳到主要内容

TLS指纹

怎么判断有没有tls

# 使用低版本requests和urllib3解决
pip install requests==2.27 urllib3==1.25.8
  • 他语言或者工具可以请求,就python不行
    • 可能有tls
  • web平台,除了浏览器,其他语言都不行,app平台除了app其他语言都不行
    • 大概率tls

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

弱校验

就是postman可以 ,javascript也可以(js也可能不行),curl也可以,就python不行,那大概率是很弱的校验,参考这篇文章 https://www.cnblogs.com/Eeyhan/p/15662849.html

中校验

按照上面的改tls套件的方法不行,但是curl或者postman就是可以 毕竟方案已经公开,可能针对性的改了下,所以你针对性的分析, 可以用以下方案过可以过

强校验

python、postman、curl、js请求都不行,只有浏览器可以 用以下方案可以过:

  • 魔改的pycurl
  • pyhttpx
  • curl_impersonate

方案整理

整理一下方案如下: 方案很多,这里有两篇文章参考 python 针对tls的对抗 : https://blog.csdn.net/weixin_44144647/article/details/133864256

https://blog.csdn.net/a5right/article/details/142910718

整理

根据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. pyhttpx https://github.com/zero3301/pyhttpx

  6. python库 其实就是魔改的pycurl的简易安装版,群里一个大佬编译好的, 里面有详细的步骤: https://github.com/synodriver/pycurl/blob/master/special.markdown

  7. pycurl 的docker版 docker pull geekbyte1/pyantitls:v1.0 docker run -it -d geekbyte1/pyantitls:v1.0 Q佬的docker file: python完美突破tls/ja3(docker版)

  8. 直接调用curl_impersonnate 就是魔改版的pycurl,用的核心的东西,直接操作终端然后调用curl_impersonnate 现在curl_impersonnate已经出windows版 能过tls检测的curl-impersonate win版,搞起来啊

  9. cycletls的python版 https://github.com/Danny-Dasilva/cycletls_python

  10. curl_cffi

  11. tls-client