乾貨|Python大佬手把手帶你破解嗶哩嗶哩網滑動驗證(下篇)

/1 前言/php

昨天我發佈了Python大佬手把手帶你破解嗶哩嗶哩網滑動驗證(上篇),沒有來得及學習破解理論的小夥伴能夠戳進去看看噢!今天這篇文章,咱們直接進行講解嗶哩嗶哩極驗破解,重點進行方法實現。python

webp

  本篇文章主要是針對嗶哩嗶哩的滑動驗證碼進行破解。git

/2 打碼參數獲取/github

  一、根據上篇文章的總結,咱們須要在目標網站(嗶哩嗶哩)上找到gt,challenge,api_server這三個參數,因此咱們如今切換到嗶哩嗶哩找一下。web

webp

二、咱們打開瀏覽器,點擊嗶哩嗶哩網頁的network,刷新網頁,從新加載全部請求,以後使用crtl+f快捷鍵,迅速搜索challenge,以下圖所示。api

webp

三、經過上圖咱們能夠看到,能夠找到那個參數,可是究竟是不是這個呢?放心,人家2captcha文檔說了,一般能夠在initGeetest發現它。咱們再嘗試查找一下,點擊Elements,而後使用快捷鍵ctrl+shift+f全局搜索一下,搜索initGeetest,以下圖所示。瀏覽器

webp

四、如上圖所示,還真有一個,咱們點進去看看詳情。cookie

webp

能夠看到在829行的位置,還真的有initGeetest這個值。咱們在這裏打上斷點,再次刷新看看,匹配一下是否和network裏的一致。app

五、首先,咱們看看斷點對應的值,點進去看看詳情,以下圖所示。能夠看到gt和challenge這兩個參數對應的值。ide

webp

六、接下來再看看network裏邊對應的值,咱們點進去看看詳情。

webp

誒,至少這兩個地方的值看着同樣的,咱們能夠肯定,他們之間確定有很大關係。到目前爲止,咱們已經肯定了兩個值,即gt和challenge,還差一個api_server,繼續往下進行。

七、接下來咱們隨便輸入帳號密碼點擊登陸一下,觸發一下極驗,在elements元素中,搜索api_server,以下圖所示。

webp

上圖中紅色框框圈起來的地方表示的就是api_server。至此,基本工做已經完成了。

/3 具體實現/

一、在第二節中,咱們已經找到了打碼請求參數,找齊參數以後,接下來咱們就該請求打碼平臺了。

二、在前面已經說到,在network中,請求連接https://passport.bilibili.com/web/captcha/combine?plat=11就能夠得到gt,challenge,外加一個key,便可發送請求了,部分代碼以下所示。

webp

這樣,咱們就拿到了gt和challenge。

完整的代碼,我會放到後面的github連接,以爲不錯的話,記得給個star噢!

三、接下來咱們請求一下打碼平臺的接口,帶上本身參數。可是須要注意的是打碼平臺須要請求兩次,第一次返回的是任務ID,第二次纔是滑動模塊的成功值。

webp

  注:challenge是動態的,其餘的是靜態的;API_KEY是打碼平臺的key,在上篇文章開頭介紹說起的那個key。

四、經過兩個函數,咱們就成功的拿到了打碼平臺返回的值。

webp

五、下圖中紅色圈起來的,就是破解極驗的第一個關鍵參數,這個參數拿到以後,就已經跟人家打碼平臺不要緊啦!咱們只須要帶着相關參數,登陸嗶哩嗶哩就行了。

webp

六、可是這個參數要往哪發呢?在network通過一番查找後,彷佛發現一個和登陸有關的接口,以下圖所示。

webp

webp

經過上圖,咱們能夠看到,紅色框圈起來的部分,正是2captcha平臺返回給咱們的數據;而那個key值正是 ...combine?plat=11這個url返回的key。就是password,進行了加密,那麼他是如何加密的呢?一塊兒來看看

  七、以下圖所示,通過不斷的斷點,不斷的斷點...終於肯定了,密碼會通過這個函數進行加密,它本質是 RSA非對稱加密,聽着就嚇人,不過不要慌,盤它就是了。

webp


這個函數邏輯是先請求一個//passport.bilbilli.com/login?act=get&r="",這個url,帶上一個隨機數,而後會返回一個隨機hash,和一個公鑰key,公鑰key是固定的,而後將隨機hash和密碼進行加密,發送給它後,後臺進行解密。

  八、破解代碼部分以下圖所示。

webp

webp

webp

    經過上述兩個函數,就模擬出了密碼,最後,咱們只須要提交到後臺就能夠了。

/4 示例效果/

一、若是帳號或者密碼錯誤的話,將會有以下圖的提示。

webp


  二、若是帳號和密碼都正確的話,將會有以下圖的提示。

webp


  上圖中第一個表示的是跳轉的url,第二個是返回的cookie,若是咱們在請求嗶哩嗶哩的其餘東西的話,只須要帶着這個cookie就行了。

   至此,咱們的破解就告一段落啦!

/5 總結/

寫到這裏,這篇文章已經超過2500個字了,加上嗶哩嗶哩破解上篇,將近5000字的長文了,小編在這裏大概整理一下破解的主要流程。

  一、首先,咱們肯定須要第三方平臺去幫助咱們破解極驗,以後咱們須要找到這個第三方平臺,而且須要進行註冊。

  二、註冊以後,咱們須要閱讀API操做文檔。

三、根據API操做文檔,在翻譯的幫助下,找到目標網站的gt,challenge和api_server三個值,而後,加上其餘一些參數發送到 https://2captcha.com/in.php,會返回一個任務ID。

四、而後等個15秒左右之後,再像https://2captcha.com/res.php請求,帶上任務ID加上一些其餘參數,便可進行破解。

五、代碼詳情已經上傳到GitHub:https://github.com/cassieeric/python_crawler/tree/master/bilibili_decryte

    這兩篇文章主要介紹了第三方打碼平臺、破解理論和具體實踐,以破解破解嗶哩嗶哩網址極驗爲例,展開具體的破解過程,其中代碼已經上傳到github,感興趣的小夥伴們能夠去嘗試一下噢!

相關文章
相關標籤/搜索