日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

微信网页游戏刷分BUG利用——抓包分析记录

發布時間:2023/12/18 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微信网页游戏刷分BUG利用——抓包分析记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

臭臭今早上跟我說,他們做的詩詞小游戲被人破解后臺接口然后刷分了。問我能不能分析一下怎么做到的,該怎么修復。然后我就看了看,學習一下移動端(微信網頁)分析技術

抓包 分析

我只了解PC端網站抓包分析,移動端沒有做過。所以最開始的思路是把小游戲放到PC上來搞。
請在微信客戶端打開鏈接”這個判斷很好騙,在UA上面加上MicroMessenger/6.6.2.501 就好了。整體的UA如下:

Mozilla/5.0 (iPhone; CPU iPhone OS 13_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/83.0.4103.116 Mobile/15E148 Safari/604.1 MicroMessenger/6.6.2.501

可是這也只能處理一般的網頁,獲取微信用戶ID及授權的步驟還是沒辦法搞。在github上也沒找到相關的工具。看來只能作罷。還是老老實實的抓手機的包吧。

移動端設置使用burpsuite抓包

參考:burpsuite抓取手機數據包
我猜的坑:

  • burpsuite安裝半天,因為jdk不對沒裝上。使用jdk1.8u221+版本搞定。
  • burpsuite代理地址設置為所有接口。因為我是同局域網下,不是開得熱點。
  • 證書安裝,應用目的是vpn和應用,不是wlan。或者兩個都弄了也行。
  • ok,其他就沒啥了,開始抓包分析。

    請求分析

    setp1,start——開始答題,獲得題目


    這里能拿到題目列表。
    而且發現修改用戶id可以輕松突破答題次數,因此可以無線獲得題目

    setp2,answer——提交選項,判斷對錯


    對每道題的提交都用這個,可以判斷出正確答案。
    又發現題目id有規律,是遞增的,所以題庫最多就256*3個題目嗎

    至此,有方法,多次請求題目,獲取所有問題,再進行答案的判斷,最終 獲得 題庫。 但是方法比較笨,而且應用復雜,還是要靠人操作。

    再分析!

    setp3,submit_result——提交game,獲得分數


    由于手機加了證書和代理后,變得非常慢,所以我足足等了20分鐘才把10個題目做完,拿到這個請求。不過總算沒有白等。這個非常關鍵,因為這個是加分項。我就想,那我多來幾次,重復提交不久好了嗎?
    試了一下,失敗了,顯示游戲已結束。果然,gameID用過了就不行了。那我就fake ID重新申請game。試了一下,成功了,但是加了0分。因為沒有做題。
    于是我在中間提交一個問題,N次,發現成功了,不過只有一道題的分數。

    至此,運行邏輯清楚了:

  • 用戶根據UID獲取題目,和gameID,開始游戲。
  • 游戲過程中,提交答案至gameID,累計分數。
  • 游戲完成,提交gameID完成游戲,并把分數加到用戶的總積分。
  • ***在此過程中,后臺基本沒有什么判斷和限制。***

    在burpsuite 的Repeater工具里面進行的測試過程:
    1 偽造uid,獲取游戲id

    2 對游戲id回答問題,隨便啥問題都行,哪怕不再問題列表里面

    3 提交成績,獲得積分

    腳本編寫

    使用requests進行post訪問,把burpsuite里面的cookie和header拿過來用。
    幾個函數:

  • 根據fakeID獲取gameID
  • 根據gameID答題(先查詢10個問題和答案,一直用這10個就好)
  • 提交gameID到用戶積分
  • 邏輯也很簡單。記錄一下踩得坑:

  • Header忘了加了,只加了post參數
  • 沒了很簡單
  • 腳本地址:poc
    基本上就是想刷多少分刷多少分,想給誰刷給誰刷(不過要知道ID)

    自己的ID獲取方法

    點開游戲連接,不帶任何參數的。然后自己登陸,分享給別人。分享的連接里面,refererid就是自己的UID。

    修復方法

  • 偽造 UID獲取gameID(無限獲取游戲次數): 可以通過比較UID和用戶其他信息,防止偽造 UID。不過這個不是很重要。
  • 對gameID提交任意題目答題(用重復的一套題回答所有游戲):記錄gameID與他的題目ID。也不重要。
  • 提交gameID得分到用戶(刷分的關鍵點,把fake UID的游戲得分提交任意一人)非常重要!!!把gameID和UserID對應起來,在申請和最終提交的時候都加上判斷,就能防止刷分,確保每人每日游戲次數是有限制的。
  • 現在想想,即便是修復了,還是能搞一下。雖然不能刷高分,但是可以保證題目全對,而且最重要的是,可以讓積分考前的人每天得不了分。(通過積分榜獲取前面人的ID,每天凌晨就把他們題目刷干得0分,讓他們沒法再答題。)

    rank信息直接是get 就可以

    總結

    分析過程,和采坑點都很重要,值得回味。這個bug就是在最開始設計的時候,沒有安全意識。其實最后只要簡單判定就好了,應用邏輯問題。

    在分析過程中,一定是對完整的流程進行分析,千萬不要分析一般就放棄,后者以為了解了所以。最后那個等了20分鐘的請求出來后,我才知道了整個流程。對流程梳理清楚后,才能更好地分析問題。

    總結

    以上是生活随笔為你收集整理的微信网页游戏刷分BUG利用——抓包分析记录的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。