目標網站:aHR0cHM6Ly9mYW55aS5iYWlkdS5jb20vI2VuL2NodC9oZWxsbw==

請求參數跟值

  • 下個XHR斷點,一步一步跟很容易可以來到這處
  • 請求參數就是this.paramData
  • 這時一個快捷的方法是先看看this.constructor,看paramData是否在構造函數裡就已經賦值

Untitled

  • 一看發現果然如此

Untitled

  • 然後向上一層就能找到參數生成的地方
  • 慢慢調試,會發現除了sign外,其他參數都能固定
  • 生成sign的函數也很容易扣,用一般webpack的扣法就能搞出來

Untitled

Acs-Token跟值

  • 在上述跟值的過程中就能看到Acs-Token賦值的地方

Untitled

打個條件斷點跟到這裡,再往前就是異步

Untitled

Untitled

  • 在異步的地方下斷點,測試後發現代碼會走2次這裡,若第2次時再按F8就會去到上一步條件斷點的位置
  • 因此在第2次時按F11

Untitled

然後發現n是生成好的Acs-Token,代表我們又更前了一步

Untitled

繼續向前跟會發現Acs-Tokenn.gs的回調函數中出現

Untitled

  • 跟進n.gs,來到另一個名為acs-2060.js?_=XXXX的代碼中,而n.gs就會下圖紅框的這個函數
  • 根據文件名其實就可以推測Acs-Token的值就是在這裡生成,而n.gs這個函數就可以作為生成Acs-Token的入口,最終結果會在回調函數的參數生傳入

Untitled

Acs-Token生成

複製整份acs-2060.js?_=XXXX的代碼,放到補環境框架裡,在日志可以看到,它很貼心地幫我們將入口函數導出了,直接在全局就能使用

Untitled

  • 調用方法如下,然後就是補補環境讓它能出值就可以了
  • 經測試發現它對環境的校驗並不強,能出值基本上就能用了?( 或許吧

Untitled

附上一張請求成功的圖^^

Untitled