程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

JS逆向解密秀動app(網頁接口)實現搶票【python異步請求】

編輯:Python

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開發全套學習資料》送給大家,初衷也很簡單,就是希望幫助到想自學又不知道該從何學起的朋友,同時減輕大家的負擔。添加下方名片,即可獲取全套學習資料哦


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved