# Proxyman 使用教學 ###### tags: `Published` > 2021/07/09 (Fri.) > -- Bob Chang @ KKStream CPT 有時候我們會需要檢查當 app 收到 status code `403` 之類的錯誤會怎麼處理。像這種時候使用 *Charles* 或 *Proxyman* 這類工具去做中間人攻擊真的很方便,又不用動 back-end、也不用改 front-end。快速、安全、又方便 ❤️ 1. 解釋什麼叫 "中間人攻擊" 2. 開始當中間人窺看 HTTP Request 3. 開始做中間人攻擊,竄改 Request & Response ## 解釋什麼叫 "中間人攻擊" "中間人攻擊"其實就是做資料竄改。關鍵字搜尋:Man-in-the-middle attack。 將原本只是 server ↔️ client 兩兩對傳的形式,中間多安插一位中間人,變成這樣 server ↔️ **man** ↔️ client。這樣一來 server 跟 clinet 之間的溝通都得要靠中間人傳話才能達成,於是中間人就可以。 舉個例子可以更容易理解。假如原本你跟喜歡的女生的位子坐在旁邊,你可以直接傳紙條給她。但現在換位子了,你要先傳給同學B,再請他幫你傳給喜歡的女生。於是乎同學B就可以把紙條上的內容做修修改改,這個同學B就是我們說的中間人。  ## 開始當中間人窺看 HTTP Request [proxyman 官網](https://proxyman.io) 下載安裝 desktop app。 ### Desktop Local 打開 proxyman 之後你會發現你可以看到有 request 飛來飛去,但是 HTTP'S' 的你都看不到裡面寫什麼。於是我們需要先在電腦上安裝憑證,點選 Tool bar -> Certificate -> Install Certificate on this Mac...,並按照教學安裝即可。  在 Proxyman 的工具列底下找到這個功能後點擊打開憑證安裝教學。  將憑證安裝在 Mac 電腦上的教學說明。  在未開啟觀看 HTTPS 的時候,response 的內容都看不見。  在 Mac 安裝完憑證並開啟觀看 HTTPS 之後就可以看見內容了。 ### iOS physical device 要當 iOS app 與 server 之間的中間人,其概念也一樣。點選 Tool bar -> Certificate -> Install Certificate on iOS -> Physical Devices...,並按照教學安裝即可。 *記得將 Mac 與 iPhone 都連在同一個網域底下(連相同 wifi 即可)  在 Proxyman 的工具列底下找到這個功能後點擊打開憑證安裝教學。  將憑證安裝在 iPhone 上的教學說明。  Enable HTTPS response 之後就可以看見內容了。 ### Android physical device 略 ## 開始竄改 request 或 response 1. Breakpoint 2. Rewrite ### Breakpoint 例如今天要攔截並修改 https://mock-playback.tfc.kkv-test.com/v1/videos/1 這隻 API。  在 Proxyman 的工具列底下找到這個功能後點擊開始新增斷點。  參照附圖步驟新增斷點。  參照附圖步驟竄改 request。  參照附圖步驟竄改 response,此例將標題改為「時代を越える想い」。 | before | after | |---|---| ||| 於是可以看到 app 的影片標題變成我們改的「時代を越える想い」了。 ### Rewrite (Use `Script` in Proxyman) 相對 breakpoint,rewrite 會將欲定義好的規則套用下去執行,所以就不會再談出修改視窗了。在 proxyman 我們使用 `Script` 達到這個功能。  在 Proxyman 的工具列底下找到這個功能後點擊開始新增 rewrite 規則。  參照附圖步驟竄改 response,此例將 response status code 改為 400。 ## 備註 - 手機在不使用中間人時,記得要把 proxy 設定關閉,否則連不上網際網路;電腦同理 - 注意使用公司VPN(Pulse Secure)時, 會讓 proxyman 失效, 此時得去修改監聽的IP 位置(中間人位置) - 當 request 短時間內很多的時候,可以善用視窗左下角的 filter - 視窗右上角有編輯視窗 隱藏/開啟 按鈕 - 視窗右上角有另開視窗功能,多螢幕時方便使用 - Proxyman 也有提供限制網速功能,在 Tools -> Network Conditions... - 免費版 Proxyman 即可完成以上所有事,付費版差在... - A year’s worth of macOS updates - Premium Proxyman for iOS (2 devices per seats) - Multiple Tabs - Unlimited Pinned Domains / Apps - Unlimited matching rules for all Advanced Debugging Tools (e.g. SSL Proxying List, Map Local, Map Remote, Breakpoint, Allow/Block List, Protobuf, Scripting, Network Conditions, Multiple Filters, etc). #### tip: 若電腦有使用 VPN 造成手機連不上網,記得再檢查一次中間人 IP 有沒有正確 
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.