Charles如何配置代理抓去HTTP/HTTPS請求


1、打開Charles,關閉系統代理

2、設置一個自定義的代理

打開ProxySetting

配置代理端口號

如果是要抓去HTTPS的包,還需額外配置SSL Proxy Setting

添加匹配規則 *,表示匹配所有的地址和端口

3、配置瀏覽器代理

我這里使用的是Chrome瀏覽器的一個代理管理插件,新建場景,添加本地的8888端口

4、配置完成后,啟動插件,選擇Charles代理,刷新網頁,即可看到通過代理抓到的網絡包


⚠️注意:如果配置完成后,刷新瀏覽器還是沒有抓到包,可以重新在谷歌商店中找到SwitchOmega插件重新安裝一下,我自己就遇到這個問題了,重裝插件就好了

5、配置證書,訪問chls.pro/ssl

下載完成后,雙擊打開,將證書添加進鑰匙串訪問中,之后雙擊證書,選擇【始終信任】

配置完成后,抓取https網站的包才不會顯示成加密

訪問https網站也可以看到證書的簽發者也變成Charles

6、如果使用模擬器或真機來進行抓手機的包,需要和電腦在同一個局域網,也是相同配置將代理服務器設置為電腦的IP地址即可

image

配置完成后,打開瀏覽器,刷新頁面就可以看到charles抓到模擬器上的包

image
image

7、Android證書信任問題

Android6.0默認用戶級別證書

Android7.0以上需要修改apk包屬性

<base-config cleartextTrafficPermitted="true">
    <trust-anchors>
        <certificates src="system" />
        <certificates src="user" />
     </trust-anchors>
</base-config>

8、演示:抓包修改雪球app上股票信息

首先打開charles和雪球app,刷新自選股頁面,就可以看到charles已經能獲取到報文數據

image

接着我們在charles中搜索需要修改的股票名稱,這里以“舍得酒業”為例,在捕獲到的請求中找到2個名字為“舍得酒業”的接口

image

打開rewrtie

image

添加Location,指定重寫哪些地址,需要注意抓取http還是https

image

添加重寫規則,這里重寫響應請求的Body中,包含“舍得酒業”的全部改為“舍得酒業老是跌啊跌”

image

保存退出后,清除現在的請求,刷新下自選列表

image

我們也可以使用maplocal來實現數據的修改

將接口的response數據拷貝至文件,保存為json

image

修改json中的數據為需要測的值

image

在charles中找到該接口,右鍵選擇maplocal,文件選擇剛才的json文件

image
image
image

重新刷新頁面發起請求,再次查看app顯示,修改的數據已經生效

image

針對增加批量的json數據,建議在linux/mac下使用jq工具來快速實現

#將json數據先保存為maplocal.json
vim maplocal.json
#將maplocal中的內容賦值給變量
raw=$(cat maplocal.json)
#使用jq命令快速疊加對應的字段,將json文件中的data節點下items字段內容累加,items_size字段內容累加,再賦值給 變量raw
raw=$(echo $raw | jq '.data.items+=.data.items' | jq '.data.items_size+=.data.items_size')
#重復執行上面命令,對應字段數據就會成倍增加,將最后的變量值寫到本地文件中maplocalnew.json
echo $raw > maplocalnew.json

使用新處理的json文件來進行maplocal,查看效果app顯示效果

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM