2020浙大信息化年度數據賬單中的code參數分析

從去年年末開始,各大APP就開始給用戶推送他們的「年度報告」。很快啊,朋友圈就被網易雲、QQ音樂、B站的年度報告刷屏了。說起來還挺矛盾的,人們一邊爲自己的信息泄露而焦慮着,一邊又享受着別人分析自己數據。今天喫完板燒雞腿堡出來在羣裏看到好多人在討論浙大出的這個信息化年度數據賬單,然而並沒有什麼有價值的數據。

下午摸魚的時候稍微分析了一下接口,不復雜,但是因爲想當然浪費了很多時間。

網址:

https://it2020.zju.edu.cn/

一個小坑:訪問https://it2020.zju.edu.cn/會跳轉到實際的頁面https://it2020.zju.edu.cn/share,但是直接訪問https://it2020.zju.edu.cn/share則會跳轉到微信推文的頁面。用瀏覽器隨便抓一下包,容易看出所有的數據都包含在這條POST請求的響應中:圖片這個請求有兩個參數,其中redirect_uri爲固定參數,我們只需要找到code這個參數就好了。之前寫浙大通行證模擬登錄的時候就發現登錄時會發送多個狀態碼爲302的重定向請求:圖片數據獲取失敗這裏重定向的過程是通過如下方法獲得的:

# 登錄
resp = s.post(......)
for r in resp.history:
  print(r.status_code, r.url)



因爲這裏最後一次重定向請求的URL中包含一個ST開頭的ticket參數,我就想當然的覺得我們需要的code參數就是這個。然而把這個ticket參數的值扣下來賦值給code,然後發送POST請求,得到的響應爲「500 Internal Server Error」。我只好按部就班地沿着請求列表向上找,希望能找到code參數的來源。一番攀談交心瞭解到,code參數和上面一個302重定向的請求中的ticket參數相同:圖片而這個請求是由登錄的POST請求重定向而來的:圖片到這裏,解決辦法就很顯然了——把登錄時的URL稍作調整即可。把每一次重定向的過程都print出來,可以看出,在登錄過程中,有兩個重定向URL都包含ticket這個參數,但是它們的值是不一樣的,第一個ticket的值纔是我們想要的code參數的值。圖片



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章