ni**的網站的登錄需要的sensor_data怎麼來

sensor_data 這個東西,相信都有很多人知道這個東西,我之前也搞過這個網站的登錄,但是不成功,只能得到某些網頁的數據,對於登錄,當時是一直被拒絕的,就像下面這樣。

在今天,終於把它拿下了。

接下來說下這個東西需要的東西,如果你會使用ast還原代碼的話,這個網站對你來說還是很容易的。還原之後是這個樣子的:

不過這個網站很神奇,我在還原代碼之後,使用 fiddler 替換 js文件,網站報錯了,然後我試着不開重定向 js 文件,還是不行,清除了 cookie 所所有的東西都是不行,但是別人的電腦卻可以,如果有大神知道原因的話,希望能交流下。

還原之後,一眼下去就知道這個網站檢測的啥了,都是些瀏覽器指紋,在第一次初始化 sensor_data 的時候,只用到了少部分瀏覽器指紋,比如 ua、瀏覽器寬高等這些屬性,比較多的指紋都在幾個定時器上面加載的,如下面:

所以需要在一些獲取瀏覽器指紋的地方打個斷點,多個幾個也沒事,寧可錯殺,不可放過。

裏面比較厲害的是,瀏覽器指紋這些都是明文的,不加密,這樣子如果量爬的話,就會很容易被封瀏覽器,需要大量的瀏覽器指紋,這也是個很大難度的事,有經驗的也可以交流下。

裏面的 getforminfo 這個函數是獲取當前頁面的 input 表單的屬性,這個可以模擬,也可以直接固定,反正我固定也是可以過的,不需要改變。

裏面的定時函數需要自己在適當的時候調用,大概的調用順序如下:

這個有經驗的話還是好處理的,接下來就是比較難的了,裏面設置了很多監聽事件,如 click、mousedown、keydown、mousemove等17個事件,不過主要是 mousemove 和 mousedown這兩個事件,因爲mousedown 這個事件會更新 abck cookie,mousemove的話無處不在,但是隻記錄前100個 mousemove,其他的暫時不清楚,沒細看。

如果需要模擬事件的話,可以自己在 js裏面加上些自己的js語句來收集事件軌跡,用 fiddler 的重定向來就行了。注意的是,一定需要 mousedown 事件是最後的,因爲只有這個事件纔會更新 sensor_data, 其他的都是在收集信息,所以需要他是最後一個事件。

來到這裏就差不多成功了,就只剩下模擬請求了。他這裏初始化的話會一開始就有兩個請求,

第一個是請求獲取這個文件的 js,這個文件就是用來生成 sensor_data 的,第二個是獲取初始化的 sensor_data 併發送到服務器校驗。

接下來定時器會有個請求,因爲他更新了sensor_data, 所以也需要發送到服務器。

因爲我們需要模擬登錄,所以還會有兩個 mousedown 事件,一個是點擊登錄來顯示登錄控件的。

還有一個是點擊登錄按鈕來進行登錄的

所以還需要兩個這樣的請求,所以總共校驗了 5 次,這個是很重要的。

如果你只是模擬了四次,成功率大概有 50%左右,而且分分鐘也運行不了,模擬了五次之後,成功率就穩穩的了

接下來就是登錄請求了,登錄請求的 data 參數我直接固定了,因爲我只是學習下,並不爬或者做其他事,所以直接固定了事。登錄請求需要東西只有這些即可:

最後,還是比較重要的,因爲這個網站裏面需要用到很多中間變量來一步步加密 sensor_data,每次加密的變量都和上一次有關的,所以需要使用 nodejs 開個 api 接口來搞,直接用 execjs 來的話,很難搞,開個 api 也不難,直接如下:

最後的最後,做完這些,你就能登錄了,這個網站難點在於軌跡,不過好像軌跡也不怎麼校驗,其他的都不難,,裏面的加密都只是用到 base64 和一個摘要算法好像,基本都是明文,所以不難,你會操作ast還原代碼的話更加容易了。

原創不易,對你有幫助的話,希望能點個在看再走,能轉發分享留言就更好不過了。

END

往期文章回顧

記錄下某ua的逆向過程

某數分析第二彈

在看越多,更新越快

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