極驗驗證碼破解—超詳細教程(二)

極驗驗證碼破解—超詳細教程(一)

極驗驗證碼破解—超詳細教程(二)

極驗驗證碼破解—超詳細教程(三)

Gayhub:FanhuaandLuomu/geetest_break

2017.8.21 代碼以上傳,可供參考

[國家企業(yè)信用信息公示系統(tǒng)為例]

目錄

一、網(wǎng)站http://www.gsxt.gov.cn滑動驗證碼概述.

二、極驗驗證碼破解-抓包分析.

三、極驗驗證碼破解-搭建本地驗證碼服務.

四、極驗驗證碼破解-分析geetest.js,得到所需參數(shù).

五、極驗驗證碼破解-Track的獲取.

六、極驗驗證碼破解-獲取背景圖片及缺口距離d的計算.

七、極驗驗證碼破解-總結.

參考文獻.

運行截圖.


四、極驗驗證碼破解-分析geetest.js,得到所需參數(shù)

1. 為了找出如何生成userresponse和a,我們在geetest.js中搜索userrespnse,發(fā)現(xiàn)只有一處提到userresponse,如下所示:

可以看出userresponse和a都在上述代碼中賦值。

首先,我們追蹤ca.ra,得到下面代碼:

計算userresponse需要參數(shù)l和challenge,challenge我們已知,下面分析l(先猜測為滑塊移動的距離)。

可得到a由n生成,

由上述可知oa.qa的返回值是f,下面繼續(xù)追蹤f:

由上述可知(console為我添加,目的是打印信息),f的返回值即為所求a,觀察其包含??!信息,比較所需a值:

可以發(fā)現(xiàn),目前推測無誤。

2. 我們發(fā)現(xiàn)f依賴于oa下的c函數(shù),追蹤c函數(shù):

觀察c函數(shù)的參數(shù)a,由a[h+1][1]可知a應該是一個二維數(shù)組。

添加如下信息,輸出a的內容:

刷新http://localhost:8000/,查看console控件下的信息:

可以發(fā)現(xiàn),這很大可能就是我們所要找的滑動軌跡Track。

回到之前userresponse中的l參數(shù),我們在相應位置輸出:

查看Console發(fā)現(xiàn):

之前我們猜測l為滑動距離,比較l與Track最后一個坐標,可以發(fā)現(xiàn)l與Track[-1][0]相等,因此驗證我們猜想—l是滑動距離。

3. 要想得到userresponse,需要得到l,需要得到Track,由于Track是隨機采樣生成的離散軌跡坐標序列,因此我們需要根據(jù)缺口的位置來模擬Track。由于Track較難模擬,我們先假設已根據(jù)缺口距離生成了Track。

則可以寫出生成userresponse的函數(shù):

def cal_userresponse(a,b):

d=[]

c=b[32:]

for e in range(len(c)):

f=ord(str(c[e]))

tmp=f-87 if f>57 else f-48

d.append(tmp)

c=36*d[0]+d[1]

g=int(round(a))+c

b=b[:32]

i=[[],[],[],[],[]]

j={}

k=0

e=0

for e in range(len(b)):

h=b[e]

if h in j:

pass

else:

j[h]=1

i[k].append(h)

k+=1

k=0 if (k==5) else k

n=g

o=4

p=""

q=[1,2,5,10,50]

while n>0:

if n-q[o]>=0:

m=int(random.random()*len(i[o]))

p+=str(i[o][m])

n-=q[o]

else:

del(i[o])

del(q[o])

o-=1

return p

參數(shù)a和b分別是l和challenge。上述函數(shù)是我根據(jù)

改寫成Python形式

至此,userresponse參數(shù)破解成功,接下來看a的生成。

4. 之前分析a是由oa下的f函數(shù)生成:

其中參數(shù)a是Track。其中f函數(shù)用到了c函數(shù)、e函數(shù)和d函數(shù)。

根據(jù)js函數(shù)源碼,我將其改寫成python函數(shù)。

# 計算每次間隔? 相當于c函數(shù)

代碼只截取部分,具體細節(jié)后面會開源。



完整的f函數(shù)如上所示,參數(shù)為Track,返回值即為f(也就是所需的a)。

至此,參數(shù)a也破解完成!??!只差最會一步,Track如何得到。

(未完待續(xù))

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容