日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

socket模拟http的登陆_python模拟登陆知乎(最新版)

發布時間:2024/7/19 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 socket模拟http的登陆_python模拟登陆知乎(最新版) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為啥要寫這一篇文章呢?
(主要是qq群內有人在模擬登陸知乎,一直不成功)然后我抓包看了下,發現知乎登陸頁已經改版了,而且難度大大提高了。

開始抓包

首先內,還是打開知乎首頁,然后輸入賬號密碼,登陸(記得輸錯密碼)

這樣我們就可以看到請求頭了(請求頭如下)

我們發現有這幾個請求頭和正常的不一樣(紅色框中的)

  • authorization (感覺應該是js生成的,后面再看
  • Content-Type (后面多了boundary=xxx 這種,那這種是啥意思呢,后面和請求參數一起看
  • cookie:這個要注意,登陸前cookie就不為空,說明之前肯定有set-cookie的操作
  • x-udid,x-sxrftoken 這兩個都是驗證參數,估計都在網頁源代碼能找到
  • 再看一下請求參數

    可以看到參數是以payload的形式出現的

    第一次看到這種的人估計會一臉懵逼

    這個要結合請求中的

    Content-Type:

    multipart/form-data; boundary=----WebKitFormBoundary2KNsyxgtG28t93VF

    來一起看

    multipart/form-data 是一種表單提交的方式,后面的boundary=xxx 是表單分割的方式,那到底啥意思呢?看一個簡單的小列子你就能明白啦

    ------WebKitFormBoundary2KNsyxgtG28t93VF 是分割不同參數的,所以可以直接不看他(這個是由上面的Content-Type后面的boundary決定的,可以隨便修改)

    那把分割線去掉后,上面的就相當于 client_id=c3cef7c66a1843f8b3a9e6a1e3160e20,

    grant_type=password.

    那么這個payload就很好理解了.

    我們來看一下,一共有哪些參數

    參數還挺多的,可以看到很多參數都是固定的,如賬號,密碼,時間戳,等等

    變動的有兩個 client_id,signature

    開始找參數

    authorization :

    我們在chrome內,直接按ctrl+shift+f(全局搜索,搜索js,css這些),可以看到已經搜索到了,并且是直接寫在js里面的,然后重新隨便換個賬號再抓一次包,發現authorization 的值還是固定的,所以說明authorization 是直接寫在js里面的,不是動態修改的(那么authorization 的值我們就已經找到了)

    cookie:

    在登陸之前,就發現cookie的值不為空,說明肯定打開網頁后就有set-cookie的操作了,我們想驗證的話,先打開一個無痕瀏覽器(主要是為了把之前的cookie全部清空,避免干擾),然后打開http://zhihu.com,我們發現他有幾次set-cookie的動作

    那我們想要模擬的話,很簡單的方法是直接使用requests.session

    x-udid,x-sxrftoken:

    一般這種驗證參數都會在網頁源代碼里面,所以直接查看網頁源代碼

    可以看到已經找到了,后續就是如何把這個找出來而已,可以使用正則,或者xpath定位到

    client_id:

    你會發現client_id與上面的authorization 一模一樣

    signature:

    還是使用ctrl+shift+f 全局搜索

    發現找到了,但是參數是js動態生成的...

    主要是找到如何加密的,然后使用Python模擬出來

    第一步:下載這個js,格式化(讓代碼好看一些)

    第二步:使用fiddle替換掉原來的js,使用剛剛格式化的js

    第三步:慢慢調試。。。直到找到如何生成的...

    大概步驟是這樣

    但是假如你js像我一樣很渣的話,你可以直接找到這段加密的js,然后Python執行這段js就可以了。。。

    上面呢,我們把該找的參數都找到了,接著只要模擬發送就可以了

    總結

    以上是生活随笔為你收集整理的socket模拟http的登陆_python模拟登陆知乎(最新版)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。