?聲明
以下只是搬運下我公眾號的東西。很早就發(fā)過了。原帖地址:
tls指紋之到底怎么判斷是否有tls、到底怎么對抗tls (qq.com)
已經(jīng)發(fā)公眾號的為什么還發(fā)csdn
有的圈內(nèi)朋友,不經(jīng)過我的允許,刪減摘錄我公眾號的內(nèi)容,這里就不提誰了,心里清楚,還能獲得一些關(guān)注和流量。很無語,所以我還不如自己也發(fā)發(fā)?!久湍新錅I】
一、前言
其實自從大概一年前,發(fā)了tls/ja3那篇文章之后開始 ,就時不時有朋友找我私聊,讓我?guī)兔纯茨衬称脚_,“怎么回事???”,“怎么python請求不到?”,“到底是不是tls?”,“怎么過tls?”,等等...
真的還挺多的
所以,這篇文章,我把我想的寫出來,還不太懂的,請仔細看,一個字一個字的看,因為有的朋友問的問題,之前的文章其實都有的,所以我希望各位朋友,這篇文章請認真看
如果看完我這篇文章,還是無法確定是否是tls的話,也可以繼續(xù)問我,但我希望你是經(jīng)過自己思考還是沒搞定的情況下再來的。
對tls還很陌生的朋友,可以看下猿人學的題,外部題19題,內(nèi)部題22、29題,5s盾,阿什么邁
以及下面這幾篇文章(請按順序從上到下看)
https://mp.weixin.qq.com/s/Qx7PjnBgrTR30oCurU6CGw
https://www.cnblogs.com/Eeyhan/p/15662849.html
深度剖析ja3指紋及突破
ja3指紋補充說明
python完美突破tls/ja3
python突破tls后續(xù):pip install
能過tls檢測的curl-impersonate win版,搞起來啊
二、怎么判斷有沒有tls
這個話題我其實之前也說過了
你先排除以下情況:
1.驗證了請求頭順序
比如猿人學的一道題,就驗證了請求參數(shù)
我以前寫過的博客:
https://www.cnblogs.com/Eeyhan/p/15292983.html
2.強制HTTP2.0協(xié)議
還是猿人學的一道題
我以前寫的博客
https://www.cnblogs.com/Eeyhan/p/15662528.html
3.請求參數(shù)保證和抓包工具完全一致
比如,你的cookies,還有請求參數(shù)json.dumps的時候,是否要去掉空格
separators=(',', ':')
1.某車xx
群友給的,就不好說全名了,postman可以:
用python就是不行:
加下這個separators就可以了
2.某姓平臺
訪問進去的會有個驗證,主要他還提示有個ssl安全加密
讓你不得不聯(lián)想到可能有tls,但是其實并沒有,requests就可以訪問的
3.某家平臺
瀏覽器訪問:
?
python下復制過來啥都不改就能訪問的:
4.請求編碼問題
某量引擎的請求參數(shù) ,需要這樣編碼,才能正常請求
data="""{"keyword_list":["xxx"],"start_date":"20230115","end_date":"20230215","app_name":"aweme","region":[]}""".encode("utf-8")
某音也有類似的問題
更多的就得你自己具體問題具體分析
5.補充
補充一點就是,新版的requests 和?urllib3庫,對ssl有校驗,導致你開了抓包工具后,就無法請求數(shù)據(jù),即使設(shè)置了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就是可以
畢竟方案已經(jīng)公開,可能針對性的改了下,所以你針對性的分析,
可以用以下方案過可以過
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后續(xù):pip install
pyhttpx
curl_impersonate
四、誤區(qū):抓包工具沒法判斷是否有tls
很多人用抓包工具(wireshark,charles)看是否有tls,這個也是我之前對tls還不了解犯的錯:
https://www.cnblogs.com/Eeyhan/p/15662849.html
抓包工具看到的是tls的套件算法,能不能驗證是否有tls,這個是服務(wù)端判斷的,只要有ssl,都會有tls套件的,比如,我用抓包工具看百度
比如上面,這里面能看到一堆tls算法,他就一定是tls嗎,python也能直接請求百度啊。
tls真正的驗證實際在服務(wù)端,所以我上面說判斷是否有tls,我都沒用肯定的語氣詞,都說的可能,大概率,這東西只有靠排除和猜的,在服務(wù)端的東西,前端是看不到的
?
五、哪些網(wǎng)站、平臺確定有tls檢測
有某邁、5s防護盾的網(wǎng)站
國外的電商平臺基本都有tls(某遜等)
六、怎么過tls校驗
請先用上面的流程判斷是否有tls之后,再來看這里
上面解釋怎么判斷tls強弱的時候,已經(jīng)總結(jié)了點,之前的文章【ja3補充說明】也總結(jié)了點,這里我重新做一個比較全面、完整的總結(jié):
根據(jù)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
這個是我群里的大佬自己實現(xiàn)了底層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.0
docker run -it -d geekbyte1/pyantitls:v1.0
Q佬的docker file:
https://mp.weixin.qq.com/s/UZlLuzlQZrI7w82HI7zGuw
10.直接調(diào)用curl_impersonnate
就是魔改版的pycurl,用的核心的東西,直接操作終端然后調(diào)用curl_impersonnate
現(xiàn)在curl_impersonnate已經(jīng)出windows版
能過tls檢測的curl-impersonate win版,搞起來啊
11.cycletls的python版
https://github.com/Danny-Dasilva/cycletls_python
cycletls的作者已經(jīng)在開發(fā)python版的cycletls了,刺不刺激
不過別高興太早,目前還沒pip install ,作者自己也說了,在積極開發(fā)中
去年12月我跟他發(fā)過郵件,想讓他幫忙搞個python版出來,他到現(xiàn)在沒回我,也不知道是不是因為我發(fā)的郵件讓他想搞個python版出來,總之是有了,且快了
結(jié)語
這次應(yīng)該算是夠完整了吧,如果你還遇到問題,也樂意交流的
工作避坑&內(nèi)推(僅成都)、技術(shù)交流、商務(wù)合作、報課優(yōu)惠、技術(shù)交流群文章來源:http://www.zghlxwxcb.cn/news/detail-556878.html
掃碼或者搜ID:geekbyte文章來源地址http://www.zghlxwxcb.cn/news/detail-556878.html
到了這里,關(guān)于tls指紋之到底怎么判斷是否有tls、到底怎么對抗tls的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!