通過修改cookie繞過oauth驗證,chrome打開微信界面

第一次接觸這個,理解短淺做個記錄。不是原創,整合了這個同學的,因為是自己的博客,擔心他以后關閉,所以搬過來了。他的思路比較清晰,可以去這里看。因為操作步驟都是根據他的來的,所以后面直接粘過來了,懶得寫了

  1. 微信授權使用的是OAuth2.0授權的方式。主要有以下簡略步驟:
      第一步:用戶同意授權,獲取code
      第二步:通過code換取網頁授權access_token
      第三步:刷新access_token(如果需要)
      第四步:拉取用戶信息(需scope為 snsapi_userinfo)
    這些驗證一般都會存在cookie里面,所以可以通過修改cookie來通過驗證
    2.首先模擬微信瀏覽器,Ctrl+Shift+I打開chrome的開發者中心,然后選擇右邊的三個點,選擇setting-device-add custom device,然后在 user agent的位置填寫微信的ua:
    Mozilla/5.0 (Linux; U; Android 4.1.2; zh-cn; Chitanda/Akari) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 MicroMessenger/6.0.0.58_r884092.501 NetType/WIFI

如圖:


chrome添加新的模擬設備.png

添加完成以后可以點擊左上方的手機按鈕使用模擬器,如圖:
![Uploading 選擇手機模擬器_081242.png . . .]
此時刷新一下,那些通過UA驗證的界面就可以打開。但是通過cookie驗證的界面還是無法打開。

  1. 下面就用到修改cookie來繞過驗證了。
    這里需要抓包工具,我用的fiddler。cookie修改插件EditThisCookie。有了這些準備就可以修改cookie了。

手機瀏覽器打開后會跳轉到open.weixin.qq.com
域名,且頁面提示請在微信客戶端打開鏈接
.如圖:

img

繞過方法
將瀏覽器UA改為微信的,然后刷新頁面,會發現這個時候不再提示請在微信客戶端打開鏈接
了,但是整個頁面一片空白。
打開fiddler,并設置手機wifi連接,確保手機數據都經過了fiddler。
fiddler的配置可以參考這篇文章,https的兩個配置必須要做,不然抓不了微信的包,另外如果確定手機連上了fiddler了但是微信的數據包都沒被抓到,可以先把微信app強行關閉,然后重新開一下即可
以上用手機操作雖然也還可以用,但是由于微信推出了官方PC客戶端,加上手機連fiddler操作比較麻煩,從簡單操作的角度考慮建議該步驟參考更新內容,改為用微信PC段打開鏈接較好

在微信里點擊頁面鏈接,使其正常進入頁面,然后fiddler上注意相關域名的記錄,找到Tunnel to open.weixin.qq.com
后面那條記錄。會發現這時候原來的鏈接帶上了oauth
參數。復制這時候的鏈接如圖:

img

發現我教程沒寫好導致這步卡了很多人——Tunnel to open.weixin.qq.com
這條記錄其實不是必須的,之所以強調這條是因為這是能找到的第一個帶cookies的頁面,而由于微信的認證機制有時候會改變加上部分頁面請求的微信權限較多,這條請求有時候會被轉移到別的url去,因此更準確的描述是找到打開后的頁面,從中選取cookies即可

在瀏覽器中打開前面復制的鏈接,會發現還是白屏,然后右鍵頁面,選擇EditThisCookies
,會發現這個頁面下有兩條cookies了。
也可以在開發者工具的Resources

cookies
wxoauth.wucai.com
里查看當前頁面擁有的cookies數量。之所以前面不自己直接創建cookies就是因為cookies除了Value
這個屬性外,還有Domain
、Path
、Expires/Max-Age
等等其余屬性需要設置,而這些屬性自己是摸不出來的,只能先依靠頁面服務器創建,然后直接更改Value
即可

回到fiddler,還是剛剛選擇的鏈接,右邊窗口選擇Headers
,然后會看到下面有兩條cookies,以及對應的數值。選中一條,然后右鍵Copy Value only
,將值復制到前面瀏覽器里打開的EditThisCookies
頁面中去。如圖:

img

需要的注意的是,這里復制出來的是cookies名稱
+cookies值
的方式,而EditThisCookies
里只需要填cookies值即可,所以復制進去后記得將cookies Name =
這一部分刪掉。如下圖所示,綠框里的PHPSESSID=
是不需要的,刪掉即可.如圖:
img

重復第五步,將全部cookies值都改完之后,回到之前的瀏覽器頁面,輸入最初的主頁鏈接,成功。
在微信里的話,認證頁面完成后一般是有跳轉的,不過由于這里是手動更改的,所以沒辦法觸發跳轉,需要我們手動模擬一次。而前面的cookies在的緣故,頁面服務器也會當我們已經認證過,所以就直接跳過了。最后成功的截圖:

img

完成,看起來很復雜,其實也很簡單。個人感覺這個過程最麻煩的地方其實在于第2步:手機連fiddler需要先斷開之前的無線,手動輸一次代理設置到wifi,然后再連接下。所以我覺得現在最需要一個安卓下可以存儲wifi代理鏈接設置的工具= =

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容