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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

geetest极验空间推理验证码破解与研究

發布時間:2023/12/14 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 geetest极验空间推理验证码破解与研究 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

????????看了很多的破解滑動驗證碼,決定破解一下空間推理驗證碼。破解思路,通過分析接口請求,對圖片物體進行定位分類,通過模擬請求破解驗證碼。

研究的網站為?https://www.geetest.com/show?

?

一、極驗請求分析

請求詳細

一、register-space

獲取gt(一般一個網站是固定的)、challenge(驗證流水號,服務端 SDK 向極驗服務器申請得到)參數。

challenge參數只能使用一次,一但后面get.php請求后就無法再請求,同時換ip的情況下也會失效。

?二、黑色的三個請求只要根據他的參數照著模擬就可以了,不需要處理結果

?第一次的get.php和ajax.php是無感驗證,執行fullpage.js,收集瀏覽器信息,加密w參數直接填空就可以了。

三、紅色的請求

https://api.geetest.com/get.php

獲取圖片和文字加密信息等

請求參數

is_next: true type: click gt: c9428d9361cd70d26e28d7cd780ec640 challenge: 263e2e11a85337b92d821c158c1b438f lang: zh-cn https: true protocol: https:// offline: false product: float api_server: api.geetest.com isPC: true autoReset: true width: 100% callback: geetest_1644770447212

請求響應

?響應中,pic,c,s這3個參數非常重要,在生成w加密參數是需要用到它們

"data": {"theme": "silver","theme_version": "1.5.0","static_servers": ["static.geetest.com/", "dn-staticdown.qbox.me/"],"api_server": "api.geetest.com","logo": false,"sign": "\u8bf7_\u70b9\u51fb_\u5728\u5927\u578b\u7eff\u8272\u7403\u4f53\u540e\u9762\u7684\u7ea2\u8272\u7269\u4f53\u3002", # 物體的文字信息"pic": "/nerualpic/space_l1_zh_2019.07.17/space/587417a058088f2f5934e22fcc503980.jpg", # 圖片的url地址,同時也是后續加密生成w需要"pic_type": "space","num": 0,"c": [12, 58, 98, 36, 43, 95, 62, 15, 12], # 后續生成w需要"s": "514c622c", # 后續加密生成w需要······}

點擊坐標后提交,將坐標等信息加密在w中post給服務器,返回validate的值表示驗證成功

https://api.geetest.com/ajax.php

請求參數

'gt': 'c9428d9361cd70d26e28d7cd780ec640', 'challenge': '263e2e11a85337b92d821c158c1b438f', 'lang': 'zh-cn', 'pt': 0', 'client_type': 'web', 'w': 'Y1gV9CACfWsfd)vtGUQD(WuKBZnmxhgfpXfD)qDHwhG(h1F4rOco··· //點擊的坐標和一些信息的加密信息(點擊坐標,圖片pic,上面的c和s內容) 'callback': 'geetest_1644752017507'

請求響應

{"status": "success", "data": {"result": "success", "validate": "23ff2a4fddac68b9e40884befcfbb9af", "score": "1"} }

有了validate就可以和gt,challenge一起提交給需要登錄的網站接口做驗證了。

?二、JS反混淆

????????破解的關鍵是獲取加密參數生成方法。主要在click.3.0.2.js文件中,因此我們學習大佬分析AST的方法將他們反混淆,然后去分析debug。具體可以看看大佬的方法,我就不重復造輪子了。

JS逆向:AST還原極驗混淆JS實戰

將網站混淆過的源代碼下載下來,格式化后將上面幾個函數(內容也要的)拷貝到還原方法前,文件位置替換成下載下來的文件地址。運行就會生成反混淆的代碼。

AtULc.BaI = function() {}(); AtULc.CJR = function() {}(); AtULc.Dvg = function() {}; AtULc.EyS = function() {}; function AtULc() {}// 需要解碼的文件位置 let encode_file = "click.3.0.2init.js" // 解碼后的文件位置 let decode_file = "click.3.0.2.js"

將代碼反混淆后可以使用chrome的reres插件將原本混淆的代碼替換

?本地地址要加上file:/// ,同時要在管理reres插件的界面允許訪問本地地址

源碼我寫下來放在github了?點擊進入。同時因為不方便下載reres插件,我也將插件上傳在github

三、w參數分析

替換文件后打開chrome的開發者工具,再sources中搜"w"

看d的其他參數,顯然這個w就是這里產生的,打上斷點去提交驗證碼

?w是p+u,繼續往上一步一步分析。

f = Q["encrypt"](de["stringify"](o), r["gCdf"]());
p = h["YQee"](?f);

u = r["fTbG"]();

1、參數 p 生成

f中有兩個參數?de["stringify"](o)?和?r["gCdf"]()

一、de["stringify"](o)

de["stringify"](o)?中只有一個參數o,往上找o

var o = {"lang": n["lang"] || "zh-cn","passtime": t,"a": e,"pic": n["pic"],"tt": pe(s, n["c"], n["s"]),"ep": r["eRts"]() };

"lang": n["lang"] || "zh-cn" 默認等于"zh-cn"就行

"passtime": t? 通過驗證時間,隨便多少都行888之類,或者就按你debug時的大小

"a": e? ?e就是點擊坐標,最小"0_0",最大"10000_10000",為xy的百分比

"pic": n["pic"]? get.php響應中"pic"中內容

"tt": pe(s, n["c"], n["s"])??get.php響應中"c"和"s"的內容

"ep": r["eRts"]()?這個參數可以為空? 令"ep"= {}

其中"tt": pe(s, n["c"], n["s"])?

s?就在定義?o?的上方 s = r["NfwI"]["EhLr"]()

找到EhLr

所以s=e["Xkir"](e["BjJO"](t)

打印出?t 看看

可以看出就是鼠標移動點擊的信息和時間,把chrome切換成手機調試模式

?可以將鼠標操作縮短到

?經過測試,這里面的點擊坐標為頁面的坐標,多少沒有關系,保留即可,只要將其中的時間戳換成破解的時間。間隔的時間仿造圖中時間差即可。至于能否更簡潔更簡單辦法可以自己嘗試一下。

"Xkir""EhLr""BjJO"這些函數都掏出來,修修改改到把?t?傳參進去得到?s

最后在從代碼里扣出pe函數,把之前get.php響應中的?c?和?s?一起傳入就得到了"tt"的值

二、r["gCdf"]()

找?gCdf?這個函數

t = ae()

繼續把ae也扣下來,把他們一步步連起來來即可。?

f = Q["encrypt"](de["stringify"](o), r["gCdf"]());
p = h["YQee"](?f);

2、參數 u 生成

?u = r["fTbG"]()

可以看出用到了生成?p 時用到的gCdf

k 摳出來直接調用 gCdf就可以了?

這樣 w = p + u 就全部破解完了,可以參考下我上傳在github上代碼 點擊進入

總結

以上是生活随笔為你收集整理的geetest极验空间推理验证码破解与研究的全部內容,希望文章能夠幫你解決所遇到的問題。

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