HI,上一期我出了js逆向解析五邑大學的AES加密實現模擬登錄,後台不少人想讓我去解析一下秀動app,去實現搶票。我看因此本文就是介紹如何去實現js逆向解析秀動網頁端口實現搶票。
(本文拿最近的場:廣州姜雲升2022巡演)
一.逆向分析過程
首先,我們想要進入下單的頁面也就是構造我們的下單url,我們只有構造好網頁下單的url才可以進行網頁下單操作:
圖1
構造好的url如上圖1所示,因此,我們進行下單頁面的分析:
1.當我們購票時,我們先必須要登陸,你不登陸,系統怎麼知道誰在買票,所以我們先要登陸
我的解決方案:(直接用cookie登錄)這樣方便快捷,但是你要先登錄網站。避免搶票時候還要請求登錄接口,或者讀取你的curst登錄信息文件。當然這裡僅針對個人搶票。
2.我們登錄之後,該做啥呢,那肯定是找到我們的票的信息。這裡為什麼要請求票品的接口,原因是:後面請求買票接口會涉及到參數。(提前透露一下:sessionid)
3.點擊登錄之後如何獲取參數,我們知道當發起請求肯定要攜帶參數(post請求),這個不用多解釋。
確定好語言:python+js(後續會用性能較好的go,R語言重構)
二.開始實戰
實戰一:構造url參數,下單頁面
如果我們不會使用http請求的方式,在這裡我教給小白一種方法去獲取參數:sequence+ticketed:
好了,現在我把模板給大家,去構造url:
https://wap.showstart.com/pages/order/activity/confirm/confirmsequence=&ticketId=
自己嘗試著拼接吧!
實戰二: 開始請求購買接口
根據上述的實戰一,我們可以直接進入到下單頁面,然後進行後續的頁面分析:
為了方便演示(因為姜雲升的已經被搶光了,所以不能夠點擊購買按鈕,觸發接口,因此我們換一個來進行抓包演示)
我選擇了這個具有觀演參數的票(小編之前因為這個有一次發現這個實名制的,出現了錯誤。)
實戰二點一: 開始請求購買接口
我們先人工模擬點擊立即支付按鈕,看看抓到什麼包
重點來了:看到沒,加密的攜帶參數出來了,所以經過分析,我們知道:
秀動搶購主要有以下幾點:
請求1.先進入到下單頁面
請求2:請求支付1接口
請求3:請求支付2接口
實戰三:js逆向及開始撸代碼:
直接搜關鍵字: encrypt,為什麼,因為他是js加密阿哈哈哈哈哈
看到了他的加密方式,開始打斷點:
這不就出來了嘛,斷點一打,加密必出。好了,至於js加密的內容,可以和我溝通(平台限制)
分析結束,開始撸代碼:
1.js逆向,主要涉及兩種加密:
經過個人分析:
data參數:AES加密
sign參數:md5加密
我將其進行js封裝,在python中直接調用
直接使用原生加密狀態,將其封裝為一個函數,進行調用,最後得到加密結果。
最後進行python異步加載請求。
通過三次異步請求之後,我們可以發現其購票返回的數據:
這些都是搶票時候,我們會返回的數據,據此我們可以得到最終的結果:
好了,大功告成。
有任何問題可聯系我,(以上代碼及分析均為本人原創)
先自我介紹一下,小編13年上師交大畢業,曾經在小公司待過,去過華為OPPO等大廠,18年進入阿裡,直到現在。深知大多數初中級java工程師,想要升技能,往往是需要自己摸索成長或是報班學習,但對於培訓機構動則近萬元的學費,著實壓力不小。自己不成體系的自學效率很低又漫長,而且容易碰到天花板技術停止不前。因此我收集了一份《java開發全套學習資料》送給大家,初衷也很簡單,就是希望幫助到想自學又不知道該從何學起的朋友,同時減輕大家的負擔。添加下方名片,即可獲取全套學習資料哦