Charles抓包實戰詳解
訪問我的博客
前言
通過上一篇文章,想必你已經掌握了如何正確安裝抓包神器 Charles,如果還是抓不了包,可以再看看。
今天要做是抓包實戰,因為我在做網絡文學的公司就職,所以就拿網絡文學的 APP 掌閱開刀好了,以下進入抓包實戰,體會 Charles 的強大之處!。
掌握了下面的抓包技巧,對於某些校驗並不是十分嚴格的 APP 來說,破解他們的接口實在是輕而易舉。比如修改個 isVip 參數為 true,就變身超級 VIP等;之前用這套抓包技巧,找了一個網校隨便修改,發現要價上千至上萬的課程竟然可以跳過校驗直接被我播放下載,也是醉了。
希望大家掌握了抓包不要幹違法的事情,本文目的在於讓技術人員了解漏洞,加固校驗,不被他人有機可乘,以免造成公司損失。
測試環境
環境:
- Windows
- Charles
- iphone 7
- 掌閱 APP 7.4.2
前提:手機已經連接 Charles 代理,並可以抓取 HTTPS 數據包。
一、Charles 的斷點功能 Breakpoints 實戰
首先登錄掌閱 APP ,清空Charles 的抓包列表,以防止幹擾實驗,然後進入 APP 的個人中心,可以看到圖中圈出的數值,這裏我們對其數值進行修改。
此時看到 Charles 的請求列表中出現了 APP 的請求。
通過簡單分析,可以知道個人中心的那些數據是從這個請求中獲取到的,那麽我們便修改這個請求,右鍵這個請求,選擇 Breakpoints,這樣就給這個請求加上了斷點。此時切換 App 到 書架再切換回個人中心,會再次發送該請求,Charles 會彈出請求的斷點,因為這裏不需要修改請求參數,直接放行即可,選擇 Execute
我這裏把 2 修改成了 2222,修改完之後,點擊Execute,回到 App 發現已經更改了。
測試中發現,掌閱 App 的請求時間如果過長,修改之後也會不生效。
這就需要使用 Charles 的下一個牛 X 的功能了,Map 映射,讓 Charles 自動返回我們想要的返回值。
二、Charles 的映射功能 Map 實戰
上一個實驗進行的時候,如果請求的響應時間過長,掌閱的 App 就會拋棄本次請求的結果,不對數據進行修改,因此我們需要更快的去修改返回值。
以前用 Fiddler 對於這種響應時間有要求的 App,反正我是束手無策的,APP 總是提示網絡異常,響應超時等。如果是更改一兩個返回值還可以,如果是多個,是真沒轍了,所以 Charles 的 Map 功能是很強大的。
重復上一步,抓到個人中心的數據包,就是這個請求。
右鍵選擇 Save Response 到一個文件當中去。
再次右鍵,選擇該請求,為了不幹擾實驗,取消勾選上一步中的Breakpoints,然後再右鍵該請求,選擇最下方 Map Local,選擇剛才保存的文件。
註意這裏的 Query,因為掌閱 APP 在請求時,附帶了簽名時間戳等參數,這裏設置為 * 之後,就會忽略這些參數。
設置完成後,修改剛才保存的文件,使用 NotePad++ 等編輯器打卡,修改裏面的 JSON 內容。
我改了部分數據,重新進入個人中心,查看 Charles 的請求內容,發現已經修改了
同時看 App 的個人中心也已經修改了,可以改很大的值,然後向不懂的人炫耀炫耀了哈哈哈~
三、Charles 的 Rewrite 實戰
Rewrite 是對於 map 功能的一個補充,可以設置較為復雜的規則,下面演示替換 Body 內的用戶名稱
選擇菜單欄 Tools -> Rewrite,選擇開啟 Rewrite, 並添加一條規則。替換 Body 體內的 We Jan 為 CCTV
APP再次發起請求,響應如下
參考
其實日常中,我們需要用到的地方基本以上三個都可以包含到了,其他深入學習的,可以參考下面的鏈接。
- http://www.heyuan110.com/2015/08/15/Charles%E8%BE%85%E5%8A%A9%E8%B0%83%E8%AF%95%E6%8E%A5%E5%8F%A3/
- http://blog.devtang.com/2015/11/14/charles-introduction/
Charles抓包實戰詳解