iOS Charles 抓包 https 實戰並篡改返回數據

  • iOS Charles 抓包 https 實戰並篡改返回數據已关闭评论
  • A+
所属分类:小ck包包推荐

沒需求?No!不想攔截某個軟件的接口數據瞧瞧到底幹了啥?是否遇到想把返回數據更改下,來測試臨界值情況,得找個後端來一起調試下?發個 Post 請求調試只能一步步來碼?這些何曾不是 iOS 開發中面臨的!只需要擁有它 Charles 抓包,一切都幫你搞定。


iOS Charles 抓包 https 實戰並篡改返回數據

 Charles


那麼iOS 開發如何抓包呢,原理其實說起來也很簡單,就是在客戶端給服務器端發消息的時候,中間人(Charles 抓包)截取客戶端發送給服務器的請求,然後偽裝成客戶端與服務器進行通信;將服務器返回給客戶端的內容發送給客戶端,偽裝成服務器與客戶端進行通信。先看看下面的圖,簡單了解下中間人抓包過程:

iOS Charles 抓包 https 實戰並篡改返回數據

中間人抓包圖


下載安裝 Charles 抓包軟件。破解版下載:http://www.sdifen.com/   


本文主要討論兩點:iOS開發中利用 Charles 抓包 https 請求和利用 Charles 篡改返回數據。   

1、安裝 Charles 證書到電腦。


iOS Charles 抓包 https 實戰並篡改返回數據

安裝 Charles 證書


2、Charles 證書的信任。先打開鑰匙串,看看是否安裝成功了沒。成功了,雙擊該證書,點擊 "信任",展開后出現如下,選擇:始終信任。


iOS Charles 抓包 https 實戰並篡改返回數據

始終信任


信任成功后,可以抓取到網頁的 https 數據啦。但是要抓取手機設備上的 https 數據,還需要進行下面的代理等操作。


iOS Charles 抓包 https 實戰並篡改返回數據

信任 Charles 證書



iPhone 上安裝證書並設置網絡代理


1、先在 Mac 設備的 Charles 進行如下操作。


iOS Charles 抓包 https 實戰並篡改返回數據

iPhone 上安裝證書


出現如下提示。這裡是告訴我們在設備上進行如下兩步操作。


iOS Charles 抓包 https 實戰並篡改返回數據

兩步操作

2、兩步操作具體流程。


      2.1、手動設置網絡代理。iPhone Wi-Fi 連接到 Mac 共享的熱點上,然後點擊連上的共享 Wi-Fi 手動設置代理。輸入如上圖 "兩步操作" 的第 1 步地址。


      2.2、安裝 Charles 證書。打開 Safari 瀏覽器,輸入如上圖 "兩步操作" 的第 2 步地址。按提示安裝 Charles 證書。


      2.3、證書信任設置。還有這一步主要是在 iOS10.3 或之後的系統,需要手動信任已下載的證書。(設置 - 通用 - 關於本機 - 證書信任設置)


iOS Charles 抓包 https 實戰並篡改返回數據

兩步操作具體流程


完成上面操作,最後再設置下SSL Proxying ,就可以利用 Charles 抓包 https 請求了。


選擇 Charles 菜單中:Proxy -> SSL Proxying Settings...


iOS Charles 抓包 https 實戰並篡改返回數據

  SSL Proxying Settings  


回歸到本文需求第一點,對  https 的請求進行抓包!最近負責物流模塊的優化任務,先去瞧瞧同類的 "58速運" 是網絡層到底發生了些什麼。


iOS Charles 抓包 https 實戰並篡改返回數據

58 速運


可以看到它返回的是一個 HTML,可以知道這個界面中 "58速運" 採用了網頁展示和進行一些交互的操作完成該功能。而我們 app 中使用了原生的開發。


iOS Charles 抓包 https 實戰並篡改返回數據

和左邊58速運對比


回到本文需求第二點,更改返回數據來測試臨界情況!


這種做法可以讓一個iOS前端的開發人員獨立完成測試而不用拉過來一個後端一起聯調。並且各種特殊維度,或是臨界的賬號也不用再去辛苦找了,僅僅自己在 Charles 上改來改去就可以達到效果了。比如這個地方如果返回了nil 程序會不會崩,直接改 response 就行了。下面是具體操作方案。


請求的父目錄一般是域名頭,要在這裏打斷點。注意:不是在下面的單個請求上打斷點。


iOS Charles 抓包 https 實戰並篡改返回數據

添加 Breakpoints


先正常的打開 Charles 這個頁面把玩幾下,Charles 就會抓取很多接口和域名分類了。在這裏找到你這個頁面所屬的域名分類應該不難。再次進入調試界面,會通過剛才打斷點的那個域名來請求數據,請求就會被斷點攔住,如下圖所示。


iOS Charles 抓包 https 實戰並篡改返回數據

編輯請求數據


Tips:  


1、如果 Mac 上關閉了 Charles,手機要關閉 Wi-Fi 代理,否則可能會導致手機無法正常聯網。還有種操作是連接到其他 Wi-Fi 或使用移動蜂窩數據,但是下一次再連接到你共享的 Wi-Fi 熱點,沒關閉代理還是無法聯網的。


2、出現

?看下 Notes 中是不是 "You may need to configure your browser or application to trust the Charles Root Certificate. See SSL Proxying in the Help menu."  那就看 iPhone 上證書信任設置了不。(設置 - 通用 - 關於本機 - 證書信任設置)




iOS Charles 抓包 https 實戰並篡改返回數據

證書沒設信任


3、若 Charles 界面一片空白,點擊菜單:File -> New Session 即可。


4、瞧不起 Charles?想刪 iPhone 里的證書怎辦?這小招還是要了解下的,比如換了台更炫的 Mac 電腦呢,是不是得刪了這個礙眼文件呢。到 "設置 - 通用 - 描述文件" 里選擇 "Charles Proxy..." 文件,移除描述文件即可。


 Was this help article useful ?  Send feedback.

參考:

本公眾號轉載內容已盡可能註明出處,如未能核實來源或轉發內容圖片有權利瑕疵的,請及時聯繫本公眾號進行修改或刪除【聯繫方式QQ : 3442093904  郵箱:[email protected]】。文章內容為作者獨立觀點,不代表本公眾號立場。版權歸原作者所有,如申請授權請聯繫作者,因文章侵權本公眾號不承擔任何法律及連帶責任。

---END---

iOS Charles 抓包 https 實戰並篡改返回數據