日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          "); //-->

          博客專欄

          EEPW首頁 > 博客 > 以羊了個羊為例,淺談小程序抓包與響應報文篡改

          以羊了個羊為例,淺談小程序抓包與響應報文篡改

          發(fā)布人:AI科技大本營 時間:2022-10-20 來源:工程師 發(fā)布文章
          在前面的文章中,我們一起制作了一個天眼查小程序,其中涉及到了微信小程序的抓取過程,應眾多讀者的要求,今天我們一起來看看微信小程序的抓包流程

          本來是想以天眼查小程序作為抓包主體的,但是這兩天羊了個羊?qū)嵲谑翘鹆?,沒辦法,咱們也來追一追熱點,今天我們的目標程序就是羊了個羊了!而且從9月20號的某個時刻開始,羊了個羊的接口正式進入到V2時代,也就是相關的通關接口進行了加密處理,請求時需要攜帶參數(shù)MatchPlayInfo,而該參數(shù)又是通過JavaScript的混淆代碼來處理的,所以導致一鍵通過程序都失效了,那么咱們只能另尋出路了,修改 response 響應消息的方法也就應運而生!圖片MitmProxy的使用我們這里使用的抓包程序是 MitmProxy,這是一個用 Python 編寫的工具,其安裝使用簡單,而且通過與自定義的 Python 腳本相結(jié)合,可以非常方便的篡改 request 和 response 內(nèi)容

          安裝配置 MitmProxy安裝非常簡單,直接 pip 即可
          pip install mitmproxy

          完成安裝之后,我們就可以通過命令 mitmdump  來啟動了圖片可以看到,以上面的命令啟動之后,會在本地啟動一個監(jiān)聽了8080端口的程序,這個就是我們的抓包代理進程了

          設置手機代理

          這里我們需要保證手機與電腦處于同一個 WiFi 網(wǎng)絡之中,我們通過命令 ipconfig 獲取電腦的 IP 地址圖片然后我們進入手機的無線局域網(wǎng)設置當中,選擇當前連接的 WiFi,進行 HTTP 代碼設置圖片在代理設置中,服務器填寫電腦的 IP 地址,端口填寫 8080圖片這樣代理就設置好了

          安裝證書

          為了讓手機信任我們的代理,還需要安裝證書,通過手機瀏覽器訪問地址:http://mitm.it/圖片我們選擇對應的設備證書下載,比如 Apple 證書下載完成后,通過設置,“已下載描述文件”進入安裝即可圖片至此,MitmProxy 以及手機側(cè)的配置都已經(jīng)完成,我們可以進行抓包操作了

          圖片

          抓包操作
          我們通過手機打開《羊了個羊》小程序,如果我們運行 mitmdump 命令的界面有數(shù)據(jù)包打印,那么就說明我們的配置是成功的圖片下面我們來編寫 Python 腳本,來修改 response 內(nèi)容

          修改 response

          通過抓包信息分析,我們知道返回地圖的接口是 map_info_ex 接口,其響應消息體的內(nèi)容為

          {"err_code":0,"err_msg":"","data":
                  {"map_md5":["046ef1bab26e5b9bfe2473ded237b572","046ef1bab26e5b9bfe2473ded237b572"],
                   "map_seed":[3622853803,3053757364,32667028,3621470055]}}

          我們只需要把 map_md5 中的第二個值改為與第一個值一致就可以達到第二關的難度與第一關一樣的效果,下面就開始干吧~對于 MitmProxy 工具而言,我們有如下事件可以截取針對 HTTP 生命周期的事件:

          • 請求:def request(self, flow: mitmproxy.http.HTTPFlow):
          • 響應:def response(self, flow: mitmproxy.http.HTTPFlow):
          • 其它:
            • def http_connect(self, flow: mitmproxy.http.HTTPFlow):
            • def requestheaders(self, flow: mitmproxy.http.HTTPFlow):
            • def responseheaders(self, flow: mitmproxy.http.HTTPFlow):
            • def error(self, flow: mitmproxy.http.HTTPFlow):

          這里我們主要用到了響應事件,代碼如下

          def response(flow):
              tmp_txt = {"err_code":0,"err_msg":"","data":
                  {"map_md5":["046ef1bab26e5b9bfe2473ded237b572","046ef1bab26e5b9bfe2473ded237b572"],
                   "map_seed":[3622853803,3053757364,32667028,3621470055]}}
              if "map_info_ex" in flow.request.url:
                  info(str(response.text))
                  print(type(tmp_txt))
                  print(type(json.dumps(tmp_txt)))
                  response.set_text(json.dumps(tmp_txt))
                  info(str(response.text))

          我們判斷請求 url 中是否包含 map_info_ex,如果包含,則篡改 response 信息下面我們以如下命令重新啟動代理程序圖片這樣,當我通過第一關之后,進入第二關時,其難度還是與第一關一樣的,怎么樣,開心吧!當然我們還可以篡改其他接口,比如 rank 接口,話題接口等等,都可以輕松達到我們想要的目的,就不再一一贅述了好了,這就是今天分享的全部內(nèi)容,喜歡就點個贊吧~


          *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



          關鍵詞: AI

          相關推薦

          技術專區(qū)

          關閉