打開目标網站 spolicy,打開開發者工具。
1. 需要處理的是無限debugger的問題。這個用hook就好。
需要注意的是,要頁面請求完之後,在打開開發者工具,然後在hook,不然會有錯誤,無法請求到任何内容。
2. 點選标簽切換,加載資料,點選資料接口的啟動器。
(請求參數是bytes,也是需要我們處理的内容)
3. 設定斷點,單步向上或者下,找到請求參數 data變成位元組的代碼
4. 點選檢視Vm代碼,檢視它的處理方式
5. copy 出js代碼,嘗試尋找Writer是什麼。
這裡可以用webpack扣js的方式,就是找到分發器,挨個補環境什麼的。
我們在向上尋找分發器的時候,發現了一個核心的關鍵詞:protobuf
so, node 安裝一下protobufjs,改寫一下代碼,運作一下。
6.再次傳回開發者工具,檢視它最後的處理方式
它在之後執行了finish方法和slice方法。我們也改一下,看一下結果。
輸出看上去沒啥問題。
7. python調用一下js檔案。
這裡有很多就直接停住了,要麼無法調用,要麼啟動node server來暴露api來做。
其實很容易。
列印出js傳回的結果發現是個字典,位元組變成了數組。那就用python中的數組轉位元組的方法就好了,bytes(array),就可以請求成功了。
8. 結果展示
總結:這個站點的js是混淆的,而且有很多是異步的,不太好跟蹤。跟蹤堆棧的時候,目标要明确,就是要找到請求body變成位元組的處理代碼,直到找到代碼為止。
難度算中上,比較适合新手提升技能!