破解支付寶行爲/滑動/投籃驗證碼,淘寶行爲驗證碼同理

現在是2020年3月4日晚,記錄一下我對支付寶行爲驗證碼的破解,在這複習緊張的關鍵時刻抽時間做到了,開心。

================================================================================

我破解的驗證碼是支付寶在重置密碼時的驗證碼,先是要滑動一個滑條到最右端,然後要用鼠標拖動籃球到籃筐裏面去,這兩部分都有行爲檢測機制,驗證碼體驗鏈接在此:https://accounts.alipay.com/console/querypwd/logonIdInputReset.htm?site=1&page_type=fullpage&scene_code=resetQueryPwd

【難點如下】【我的Chrome版本是v80,驅動也是配套的】

1.首先需要繞過selenium檢測

爲什麼要繞過selenium檢測呢,因爲只要用selenium打開瀏覽器,拖動鼠標手動滑無論如何都過不了。太坑啦,爲了繞過selenium的檢測,花了我好多個小時。翻完百度和stackoverflow上的Can a website detect when you are using selenium with chromedriver?問題下所有的回答和評論,方法全部試過一遍,都沒有效果。我是最新版本的chrome和chromedriver,其它也許對低版本有效的方法對於最新的chrome通通都沒用了。

試過的方法有:

1)增加各種額外的選項,老有人說一下代碼中的那個excludeSwitches,[enable-automation]可以,親測不行。

username = os.getenv("USERNAME")
userProfile = "C:\\Users\\" + self.username + "\\AppData\\Local\\Google\\Chrome\\User Data\\Default"
options = webdriver.ChromeOptions()
options.add_argument("user-data-dir={}".format(self.userProfile))
# add here any tag you want.
options.add_experimental_option("excludeSwitches", 
                                 ["enable-automation","ignore-certificate-errors", 
                                  "safebrowsing-disable-download-protection",
                                    "safebrowsing-disable-auto-update", 
                                    "disable-client-side-phishing-detection"])
chromedriver = '../chromedriver.exe'
os.environ["webdriver.chrome.driver"] = self.chromedriver
driver = webdriver.Chrome(executable_path=chromedriver,options=options)

2)嘗試chrome headless模式,就是沒有可視化界面的....沒有可視化界面那我怎麼搞-_-||。

3)通過使用16進制編輯器修改chromedriver.exe裏的'$cdc_',把$cdc修改爲相同字符個數的‘xxxx’,這個我修改過了,修改後在瀏覽器的console中輸入window.navigator.webdriver依然會顯示true。chromedriver官方的通知,翻譯如下:

ssue 3220:網站可以通過“ getPageCache”鍵來檢測對chromedriver或Selenium的使用
        一些網站嘗試將chromedriver與Chromium或Chrome區別開來,以便阻止自動使用該網站。         DistilNetworks(https://www.distilnetworks.com/block-bot-detection/)出售的一項服務似乎是通過嗅探`getPageCache`中定義的變量$ cdc_asdjflasutopfhvcZLmcfl_來實現的。編輯chromedriver二進制文件以重命名此變量會使檢測器無法正常工作。當然,如果chromedriver只是正式更改了變量名,則Distil可以相應地更改其檢測代碼,因此大概需要的是防止客戶端代碼看到chromedriver區分內部JavaScript對象的開頭。參見https://stackoverflow.com/questions/33225947和該碩士論文:http://www.open.ou.nl/hjo/supervision/2018-g.vlot-msc-thesis.pdf
        回覆1由[email protected]於2019年11月11日星期一格林尼治標準時間+8項目成員狀態:WontFix(未確認)

未經網站所有者的許可,不得使用ChromeDriver。如果網站所有者選擇阻止自動化工具,我們將尊重他們的決定,並且不會嘗試繞過它。

——感覺有點絕望.jpg

4).....

5)  ........

6)即使我已經把window.navigator.webdriver在任何情況下都改成了undefine,當使用selenium及其它自動控制軟件打開chrome瀏覽器時,瀏覽器上方會出現框框說chrome正在受自動控制軟件控制,這個最好也消掉吧,我消掉了。

7)窒息,太多太多了,待填坑.....博主去睡覺了。

 

 

這個破解用了我三天時間吧,百度網盤裏是我運行python+selenium完成在線破解的一個展示,WMV和MP4兩個版本只是擴展名不同,WMV更清晰一點,其它沒有區別。

鏈接:https://pan.baidu.com/s/1rnf4bmhAMeqMl__BtfkbNA 
提取碼:uz9d

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章