国产肉体XXXX裸体137大胆,国产成人久久精品流白浆,国产乱子伦视频在线观看,无码中文字幕免费一区二区三区 国产成人手机在线-午夜国产精品无套-swag国产精品-国产毛片久久国产

博客專(zhuān)欄

EEPW首頁(yè) > 博客 > 以羊了個(gè)羊?yàn)槔瑴\談小程序抓包與響應(yīng)報(bào)文篡改

以羊了個(gè)羊?yàn)槔?,淺談小程序抓包與響應(yīng)報(bào)文篡改

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

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

安裝配置 MitmProxy安裝非常簡(jiǎn)單,直接 pip 即可
pip install mitmproxy

完成安裝之后,我們就可以通過(guò)命令 mitmdump  來(lái)啟動(dòng)了圖片可以看到,以上面的命令啟動(dòng)之后,會(huì)在本地啟動(dòng)一個(gè)監(jiān)聽(tīng)了8080端口的程序,這個(gè)就是我們的抓包代理進(jìn)程了

設(shè)置手機(jī)代理

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

安裝證書(shū)

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

圖片

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

修改 response

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

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

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

  • 請(qǐng)求:def request(self, flow: mitmproxy.http.HTTPFlow):
  • 響應(yīng):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):

這里我們主要用到了響應(yīng)事件,代碼如下

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))

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


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



關(guān)鍵詞: AI

相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉