? ?HI,上一期我出了js逆向解析五邑大學(xué)的AES加密實(shí)現(xiàn)模擬登錄,后臺(tái)不少人想讓我去解析一下秀動(dòng)app,去實(shí)現(xiàn)搶票。我看因此本文就是介紹如何去實(shí)現(xiàn)js逆向解析秀動(dòng)網(wǎng)頁(yè)端口實(shí)現(xiàn)搶票。
(本文拿最近的場(chǎng):廣州姜云升2022巡演)
一.逆向分析過(guò)程
首先,我們想要進(jìn)入下單的頁(yè)面也就是構(gòu)造我們的下單url,我們只有構(gòu)造好網(wǎng)頁(yè)下單的url才可以進(jìn)行網(wǎng)頁(yè)下單操作:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖1
構(gòu)造好的url如上圖1所示,因此,我們進(jìn)行下單頁(yè)面的分析:
1.當(dāng)我們購(gòu)票時(shí),我們先必須要登陸,你不登陸,系統(tǒng)怎么知道誰(shuí)在買票,所以我們先要登陸
我的解決方案:(直接用cookie登錄)這樣方便快捷,但是你要先登錄網(wǎng)站。避免搶票時(shí)候還要請(qǐng)求登錄接口,或者讀取你的curst登錄信息文件。當(dāng)然這里僅針對(duì)個(gè)人搶票。
2.我們登錄之后,該做啥呢,那肯定是找到我們的票的信息。這里為什么要請(qǐng)求票品的接口,原因是:后面請(qǐng)求買票接口會(huì)涉及到參數(shù)。(提前透露一下:sessionid)
3.點(diǎn)擊登錄之后如何獲取參數(shù),我們知道當(dāng)發(fā)起請(qǐng)求肯定要攜帶參數(shù)(post請(qǐng)求),這個(gè)不用多解釋。
確定好語(yǔ)言:python+js(后續(xù)會(huì)用性能較好的go,R語(yǔ)言重構(gòu))
二.開(kāi)始實(shí)戰(zhàn)
實(shí)戰(zhàn)一:構(gòu)造url參數(shù),下單頁(yè)面
? ?如果我們不會(huì)使用http請(qǐng)求的方式,在這里我教給小白一種方法去獲取參數(shù):sequence+ticketed:
好了,現(xiàn)在我把模板給大家,去構(gòu)造url:
https://wap.showstart.com/pages/order/activity/confirm/confirm?sequence=&ticketId=
自己嘗試著拼接吧!
實(shí)戰(zhàn)二: 開(kāi)始請(qǐng)求購(gòu)買接口
根據(jù)上述的實(shí)戰(zhàn)一,我們可以直接進(jìn)入到下單頁(yè)面,然后進(jìn)行后續(xù)的頁(yè)面分析:
為了方便演示(因?yàn)榻粕囊呀?jīng)被搶光了,所以不能夠點(diǎn)擊購(gòu)買按鈕,觸發(fā)接口,因此我們換一個(gè)來(lái)進(jìn)行抓包演示)
我選擇了這個(gè)具有觀演參數(shù)的票(小編之前因?yàn)檫@個(gè)有一次發(fā)現(xiàn)這個(gè)實(shí)名制的,出現(xiàn)了錯(cuò)誤。)
?實(shí)戰(zhàn)二點(diǎn)一: 開(kāi)始請(qǐng)求購(gòu)買接口
我們先人工模擬點(diǎn)擊立即支付按鈕,看看抓到什么包
重點(diǎn)來(lái)了:看到?jīng)],加密的攜帶參數(shù)出來(lái)了,所以經(jīng)過(guò)分析,我們知道:
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-816862.html
秀動(dòng)搶購(gòu)主要有以下幾點(diǎn):
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 請(qǐng)求1.先進(jìn)入到下單頁(yè)面
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?請(qǐng)求2:請(qǐng)求支付1接口
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?請(qǐng)求3:請(qǐng)求支付2接口
?實(shí)戰(zhàn)三:js逆向及開(kāi)始擼代碼:
直接搜關(guān)鍵字: encrypt,為什么,因?yàn)樗莏s加密阿哈哈哈哈哈
看到了他的加密方式,開(kāi)始打斷點(diǎn):
這不就出來(lái)了嘛,斷點(diǎn)一打,加密必出。好了,至于js加密的內(nèi)容,可以和我溝通(平臺(tái)限制)
?分析結(jié)束,開(kāi)始擼代碼:
1.js逆向,主要涉及兩種加密:
經(jīng)過(guò)個(gè)人分析:
? ? ? ? ? ? ? ? ? ? ? ? ? ?data參數(shù):AES加密
? ? ? ? ? ? ? ? ? ? ? ? ? ?sign參數(shù):md5加密
我將其進(jìn)行js封裝,在python中直接調(diào)用
直接使用原生加密狀態(tài),將其封裝為一個(gè)函數(shù),進(jìn)行調(diào)用,最后得到加密結(jié)果。
最后進(jìn)行python異步加載請(qǐng)求。
通過(guò)三次異步請(qǐng)求之后,我們可以發(fā)現(xiàn)其購(gòu)票返回的數(shù)據(jù):
這些都是搶票時(shí)候,我們會(huì)返回的數(shù)據(jù),據(jù)此我們可以得到最終的結(jié)果:
好了,大功告成。
有任何問(wèn)題可聯(lián)系我,(以上代碼及分析均為本人原創(chuàng))?
?文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-816862.html
?
?
?
?
?
到了這里,關(guān)于JS逆向解密秀動(dòng)app(網(wǎng)頁(yè)接口)實(shí)現(xiàn)搶票【python異步請(qǐng)求】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!