Python 爬蟲進階必備 | 某k12注冊加密參數(shù)分析
今日網(wǎng)站
aHR0cHM6Ly9hZXJmYXlpbmcuY29tLw==
這個網(wǎng)站來自讀者投稿
需要分析的是右上角注冊時的 s值
抓包分析與定位
像我這樣填入測試信息,點擊注冊提交

可以在開發(fā)者工具中找到下面的注冊包

這里的 s 值就是需要分析的參數(shù)值
因為這個Register是 xhr 請求,所以最方便的就是使用 xhr 斷點分析請求
切換至sources選項卡,在右側(cè)添加對應(yīng)的xhr斷點

再次點擊注冊按鈕,斷點會斷在下面這個位置

在這個位置我們只能看到網(wǎng)頁上提交的數(shù)據(jù)中s已經(jīng)生成好了

代表這里不是s加密的地方,所以點擊右側(cè)的call stack中下一個堆棧(指上一層的代碼邏輯)

同樣查看代碼中的參數(shù),發(fā)現(xiàn)剛剛的r是由t傳入的,同樣查看t的值

參考上圖可以看到t中的s值也生成好了,所以按照剛剛的操作,需要繼續(xù)分析上一層的代碼邏輯,切換至下一個堆棧
不過點擊下一個堆棧缺提示下面的報錯

這找不到源文件不就沒辦法調(diào)試了嗎?
因為我也是第一次遇到這樣的情況,通過搜索引擎找到了相關(guān)的資料
參考鏈接:https://stackoverflow.com/questions/60369755/could-not-load-content-for-webpack-source-file-in-chrome-sources-tab
這個應(yīng)該是 webpack 的最小化生產(chǎn)模式導(dǎo)致在devtool模式的時候找不到文件映射
(不是專業(yè)的前端開發(fā),如果理解有誤歡迎大佬指正)
在上面的參考鏈接中也提供了解決辦法,可以通過快捷鍵 ctrl + o 重新加載文件

通過快捷鍵查找并加載文件之后,就可以看到參數(shù)s的生成邏輯了

加密分析
通過加載查找后的文件,我們可以得出 s 的生成邏輯

k = (0,c.default)(n + "?" + w + x)
這個 k 的返回值 ,分別是t和s
主要的加密方法是c.default,傳入的參數(shù)是n + "?" + w +x
這里需要注意的是x的值是DUE$DEHFYE(YRUEHD*&,類似 hash 加鹽的操作
n 是/WebApi/Users/Register,w 是空的字符串
進一步打上斷點單步調(diào)試可以看到 s 的加密邏輯

可以看到s是sha1.hash(r)的結(jié)果
這里的r是(e || "") + "&t=" + n
n是當(dāng)前的時間戳 + 2592030000
那么r的值就是/WebApi/Users/Register?DUE$DEHFYE(YRUEHD*&&t= + n

直接拿去測試可以得出一樣的結(jié)果


以上就是今天的全部內(nèi)容了,咱們下次再會~
有知有行
對了,看完記得一鍵四連,這個對我真的很重要。
