1. 程式人生 > >charles抓包誤點deny處理辦法及日常抓包

charles抓包誤點deny處理辦法及日常抓包

誤點deny方法在最底下~~ (博文為轉載)

我們在開發網站專案的時候,我們可以通過瀏覽器的debug模式來看request以及response的資料,那麼如果我們開發移動端專案沒有網頁呢?如何抓取資料呢?

      前幾天有個做服務端的師弟跟我說他不用抓包工具,遇到問題直接debug程式碼,那我問他,如果線上服務的話,你怎麼調?在實際專案中,沒有遇到跟客戶端相互扯皮的事情嗎?我覺得很正常啊,客戶端說他沒問題,服務端也說他沒問題,到底誰有問題?這時候沒必要相互推脫,拿資料出來說話才是王道。抓包工具做了什麼?它把客戶端的請求資料,以及服務端返回的資料完完整整的抓取下來,供攻城獅分析問題。所以首先分析問題才是最重要的,而不是一上來就跟蹤程式碼debug。

Charles

    是一個HTTP代理伺服器,HTTP監視器,反轉代理伺服器,當程式連線Charles的代理訪問網際網路時,Charles可以監控這個程式傳送和接收的所有資料。它允許一個開發者檢視所有連線網際網路的HTTP通訊,這些包括request, response和HTTP headers (包含cookies與caching資訊)。

Charles主要功能:

1. 支援SSL代理。可以擷取分析SSL的請求。

2. 支援流量控制。可以模擬慢速網路以及等待時間(latency)較長的請求。

3. 支援AJAX除錯。可以自動將json或xml資料格式化,方便檢視。

4. 支援AMF除錯。可以將Flash Remoting 或 Flex Remoting資訊格式化,方便檢視。

5. 支援重發網路請求,方便後端除錯。

6. 支援修改網路請求引數。

7. 支援網路請求的截獲並動態修改。

8. 檢查HTML,CSS和RSS內容是否符合W3C標準。

Charles安裝:

    去Charles的官方網站(http://www.charlesproxy.com)下載最新版的相應作業系統的Charles安裝包安裝即可。

    Charles是收費軟體,可以免費試用30天。試用期過後,未付費的使用者仍然可以繼續使用,但是每次使用時間不能超過30分鐘,並且啟動時將會有10秒種的延時。

    因此,該付費方案對廣大使用者還是相當友好的,即使你長期不付費,也能使用完整的軟體功能。只是當你需要長時間進行封包除錯時,會因為Charles強制關閉而遇到影響。(偷偷告訴你,公眾號回覆“Charles”獲取破解版下載連結)

Charles的功能很強大,我們這裡只介紹幾個常用的並且非常實用的功能:

    1. 將Charles設定成系統代理

    2. 擷取移動裝置上的網路請求包

        2.1手動重複請求(Repeat,Advanced  Repeat)

        2.2手動模擬請求(Compose)

        2.3修改網路請求內容(Compose)

    3. 過濾網路請求

    4. 代理轉發

    5. 支援https請求抓包(如果配置了還是抓不到,下面有解決方案)

Charles 主要提供兩種檢視封包的檢視,分別名為 “Structure” 和 “Sequence”。

    1. Structure 檢視將網路請求按訪問的域名分類。

    2. Sequence 檢視將網路請求按訪問的時間排序。

下面將一一介紹這些如何配置和使用

一. 將Charles設定成系統代理

Charles 是通過將自己設定成代理伺服器來完成抓包的,勾選系統代理後,系統本地發出去的請求都能被擷取下來。如果只抓取APP的包的話,可關閉此配置,這樣不會出現太多的資料看著比較亂。

Mac

Windows:

    需要注意的是,Chrome 和 Firefox 瀏覽器預設並不使用系統的代理伺服器設定,而 Charles 是通過將自己設定成代理伺服器來完成封包擷取的,所以在預設情況下無法擷取 Chrome 和 Firefox 瀏覽器的網路通訊內容。如果你需要擷取的話,在 Chrome 中設定成使用系統的代理伺服器設定即可,或者直接將代理伺服器設定成 127.0.0.1:8888 也可達到相同效果。

二. 擷取移動裝置上的網路請求包

我們在除錯移動APP時,需要抓取APP傳送的資料包,首先進行設定,Proxy -> Proxy Settings預設埠是8888,根據實際情況可修改。

檢視本機IP地址:Help -> Local IP Addresses

然後配置手機代理:

IOS和Android配置差不多

開啟要除錯的APP,請求就會先發送到Charles,然後驗證是否允許訪問。

當點選允許後,可以在Proxy -> Access Control Settings裡看到可以訪問此代理伺服器列表

注意

如果不小心點選了拒絕,可以手動新增手機IP/Mac地址到允許訪問列表,或者重啟Charles,手機再次訪問,會再次提示選擇。

如果不想每換一個手機都要進行驗證,可以配置允許所有手機訪問,加入

0.0.0.0/0(IPv4)或::/0(IPv6)

現在就可以抓包了,拿一款我們公司開發的樂視車聯APP來做測試:

三. 過濾網路請求

通常情況下,網路請求是非常大量的,從幾十個請求裡找到我們需要的觀察的某個請求比較費時,那麼我們就需要對網路請求進行過濾,只監控向指定目錄伺服器上傳送的請求。有兩種方法:

1. 在Sequence介面的中部的Filter欄中填入需要過濾出來的關鍵字。例如我們的伺服器的地址是:*.leautolink.com,那麼只需要在Filter欄中填入leautolink即可。(一般用於臨時過濾)

2. 在Charles的選單欄選擇"Proxy"->"Recording Settings",然後選擇Include欄,選擇新增一個專案,然後填入需要監控的協議,主機地址,埠號。這樣就可以只擷取目標網站的封包了。如下圖所示:(固定過濾地址)

四. 代理轉發

   實際開發時,有這樣的場景,服務端線上版本有bug,你在本地修改程式後,需要模擬實際的線上環境,來驗證程式的正確性,最笨的方法就是讓客戶端修改一下APP的呼叫地址到你本機,然後重新打一個版本供你模擬測試,這樣雖然可以,但每次遇到bug都要這麼做的話,那效率極其低下,然而Charles為我們解決了這個問題。

請求轉發,把呼叫方呼叫的地址轉發到你本機地址的程式進行執行。

右鍵 -> Map Remote ...

並且配置Tools -> Map Romote

執行APP

五. Https請求抓包

預設我們是看不到https的請求資料的。我們需要安裝證書。

Mac:

雙擊開啟Charles Proxy CA

手機配置完代理(必須的操作)後,瀏覽器開啟http://chls.pro/ssl

然後配置Proxy -> SSL Proxying Settings... 新增要抓取的https請求

然後再次請求:

如果不再使用Charles,想刪除手機裡的證書檔案怎麼刪除呢?

設定->通用->描述檔案與裝置管理,刪除指定的證書即可

Windows:

下一步

然後繼續下一步直到匯入成功。

剩下的配置與Max下配置相同

SSL的問題:

    最近iPhone系統更新到ios 10.3後,用Charles抓包竟然出現了一些問題,https的請求都會失敗,提示錯誤資訊為Failure SSLHandshake: Received fatal alert: unknown_ca 和You may need to configure your browser or application to trust the Charles Root Certificate. 然而之前任何問題都沒有,並且相關設定都正確:電腦上安裝了Charles的根證書,並且設定了始終信任,然後手機上也登入了http://chls.pro/ssl安裝了描述檔案,一切都按正常程式走的,但是錯誤始終無法解決.

原因:

    雖然charles的根證書已經在安裝列表中顯示,但它是被關閉的。在iOS 10.3之前,當你將安裝一個自定義證書,iOS會預設信任,不需要進一步的設定。而iOS 10.3之後,安裝新的自定義證書預設是不受信任的。如果要信任已安裝的自定義證書,需要手動開啟開關以信任證書。

解決:

設定->通用->關於本機->證書信任設定-> 找到charles proxy custom root certificate然後信任該證書即可.

Windows系統無法上網的問題

    在windows下,如果Charles沒有正常關閉,或者系統重啟後無法上網的問題,因為Charles做了系統代理,當上網的時候,首先先訪問代理伺服器,然後代理再去連結網路,這時候Charles是非正常關閉的,只要重新開啟Charles即可上網正常,正常關閉Charles後同樣沒問題。

寫給測試人員的

    另外抓包工具不只是開發人員獨享的,任何一個參與專案的人都可以使用,測試工程師,運維,產品經理等等任何對技術感興趣的人,尤其是測試工程師,在測試的過程中遇到問題,不是簡單的bug記錄員,而要做到問題的分析員,這才是真正的“工程師”,當bug真正的到開發這的時候,他拿到的是不僅僅是bug,包含了分析過程,分析的資料,甚至是解決方案。我覺得這才是標準工作方式。

    舉個例子,現在是移動網際網路時代,那麼我們開發的客戶端必然包括Android和IOS版本,同樣的功能必然在不同的客戶端都有實現,比如同樣的功能Android能用,而IOS不能用,這時候對於測試人員來說,他可以簡單的提個bug說某個功能Android能用,ISO不能用,請開發人員解決。這個問題應該給誰呢?IOS開發,是IOS缺少請求引數?服務端開發,是服務端缺少對IOS的相容嗎?為了能讓問題解決,可能要寫兩個相同的bug發給不同的人, 那我們開發看到這樣的問題,首先重現問題,那麼肯定要跟測試人再次溝通,問問當時的測試過程,然後模擬同樣的資料進行復現。

    那麼如果我們的測試工程師換一種工作方式呢?當遇到問題的時候,用抓包工具把資料抓下來,首先比較Android和IOS傳送請求引數有什麼不同,比較一下返回的資料有什麼不同,如果請求引數不同,那麼測試人員通過模擬工具,把缺少的引數加上,那麼返回的資料是不是就正確了呢?如果引數相同,返回的資料不同,或者是引數相同,返回的資料相同,這樣的話,問題就顯而易見了,測試人員可以把抓取的資料提交給相應的開發人員,而開發人員完全可以去debug了。提高測試人員的自身技能,而又提高了解決問題的效率,何樂而不為?

誤點deny或不能抓包操作方法:

首先檢查手機正式是否安裝好,許可權是否開啟,蘋果 設定-》通用-》關於本機-》證書信任設定-》選擇證書點選信任..

開啟charles  點選proxy->access control setting...

開啟選單

點選add  新增你的ip地址進去  如果不知道在哪檢視 在charless選單裡點選help->local ip address可以看到

然後就可以看到再次彈出選擇allow或deny的選單 如果沒有請重啟charless..

然後你就可以抓包了。。如果ip變動,下次可能會再次重新新增ip才可抓包.

相關推薦

charles誤點deny處理辦法日常

誤點deny方法在最底下~~ (博文為轉載) 我們在開發網站專案的時候,我們可以通過瀏覽器的debug模式來看request以及response的資料,那麼如果我們開發移動端專案沒有網頁呢?如何抓取資料呢?       前幾天有個做服務端的師弟跟我說他不用抓包工具,遇到問題直接debug程式碼,那我問他

使用pip install jupyter報錯處理辦法修改Jupyter默認加載路徑的方法

文件 .com -c install ali 配置 notebook align generate 1、配置python環境之後想使用Jupyter,網上查看可以使用pip install Jupyter安裝,執行命令行後正常安裝,安裝到一半以後報錯,如圖1、2 圖

使用Ubuntu14.04中的一些小問題處理辦法

apt-get 情況下 找不到 安裝 sam ubuntu14 -s 聲音 型號 1、沒有聲音打開終端,運行alsamixer,把自動靜音(Auto-Mute)那一項關閉,聲音就出來了。 2、找不到無線網卡方法一:在安裝時就插上網線,並且在安裝選項上勾上安裝第三方軟件……這

Fiddler簡介web

選項 ati 本地 電腦 unsafe edi lis 電腦ip 菜單 1、Fiddler界面如下 2、Fiddler開關 界面左下角或點擊F12控制Fiddler開關,開關是“Capturing”; 啟動之後,Fiddler代理永遠是開著的。 3、瀏覽器代

浪潮NF5270 M4 無法識別大容量硬盤問題處理辦法

浪潮 NF5270 M4 2T硬盤 GPT 浪潮NF5270 M4服務器,配置了兩塊300G硬盤和12塊2T硬盤。公司上架一臺,安裝WIN2008系統,一切正常安裝完成。在使用時,磁盤管理中無法新建卷。估計是格式問題,由於安裝時沒考慮任何設置問題,直接安裝的,默認應該是MBR格式,需要將格式改

百度網址安全中心提醒您:該頁面可能存在違法信息!處理過程解決辦法

表單 次數 get shadow 刪除 屬於 活動 一次 img 2018年6月26日我們Sine安全公司接到新客戶的安全求助,網站被阿裏雲提示:違規URL屏蔽訪問處理通知,導致網站無法訪問,打開網站並提示該內容被禁止訪問。導致客戶的網站流量急劇下滑,網站的用戶都無法正常的

微信轉載侵權型別處理辦法

微信訂閱號的數量已經突破了1000萬,除了推廣運營之外,吸引讀者閱讀的根本還是源源不斷的產生優質的原創文章,給讀者帶來價值。 如果沒能力寫出原創文章怎麼辦?複製貼上大法基本是公眾號運營人員的必備大法。但是零成本的抄襲讓原創作者苦不堪言,辛辛苦苦蒐集素材、整理資料,寫出來的文章,沒多久就被其他

ros如何取資料如何解析中資料

從小車抓資料包 小車自動作業後或執行後,先source 環境 A: source cleaner/workspace_a/app_pkg/setup.bash B: rosbag record –o bagwang /scan 這個將topic scan中的所有內容都存

雲平臺防止安裝安裝一半就斷電的處理辦法

思路: 在安裝前對系統檔案進行備份,一旦出現問題,馬上啟用還原系統檔案辦法,這樣即可。     # 準備rm -rf /SystemBackup &&  mkdir -p /SystemBackup && yum install rsync

ELK Packetbeat配置使用MySQL審計

一、Packetbeat 概述 Packetbeat 輕量型網路資料採集器 用於深挖網線上傳輸的資料,瞭解應用程式動態。Packetbeat 是一款輕量型網路資料包分析器,能夠將資料傳送至 Logstash 或 Elasticsearch等。 目前,Packe

yum安轉軟體提示nokey錯誤時的處理辦法

目錄 問題描述 問題分析 解決辦法 問題描述 遇到錯誤程式碼:warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID e856289的解決辦法 在我們執行yum

關於網站掃描到的幾種漏洞處理辦法

1. Apache JServ protocol service漏洞 問題出在Tomcat的8009埠,錯誤的提示是8009埠上執行著tcp協議。 解決辦法:只能是通過關閉8009埠來實現,但是關閉埠

TCP協議基礎知識wireshark分析實戰

TCP相關知識 應swoole長連線開發調研相關TCP知識並記錄。 資料封包流程 如圖,如果我需要傳送一條資料給使用者,實際的大小肯定是大於你傳送的大小,在各個資料層都進行了資料的封包,以便你的資料能完整的發給你想要的使用者。 乙太網的資料包的負載是1500位元組,IP包頭需要20個位元組,TCP

函式網路封的異常處理(含程式碼)

本文作者:sodme本文出處:http://blog.csdn.net/sodme宣告:本文可以不經作者同意任意轉載、複製、傳播,但任何對本文的引用都請保留作者、出處及本宣告資訊。謝謝!  常見的網路伺服器,基本上是7*24小時運轉的,對於網遊來說,至少要求伺服器要能連續工作

Js 回車換行處理辦法replace方法應用

當我們在文字框裡輸入文字敲下回車後,希望在提交後網頁也顯示是換行的效果,可往往並不能如願以償啊,實在是憤怒啊自己寫了一個回車換行處理的函式,感興趣的朋友可以瞭解下啊,希望本文對你有所幫助 當我們在文字框裡輸入文字敲下回車後,希望在提交後網頁也顯示是換行的效果,這時我們需要把

java.lang.OutOfMemoryError: Java heap space錯誤處理辦法

以下是從網上找到的關於堆空間溢位的錯誤解決辦法:java.lang.OutOfMemoryError: Java heap space =================================================== 使用Java程式從資料庫中查詢大量的資料時出現異常:java.lan

使用Charles進行HTTPS(包括安裝信任證書以及 出現無法unknown和證書無效解決方案)

背景: 在進行App測試或定位線上問題時,經常會遇到抓取HTTPS資料包的需求。一般在windows上會使用fiddler,Mac上使用Charles。對於https請求,抓到的資料因為經過了加密,只能看到亂碼。 本文介紹如何使用Charles來抓取https網路報文

函式網路封的異常處理

宣告:本文版權歸CSDN sodme所有,轉載請按如下方式標明作者及出處,以示尊重!! 本文作者:sodme本文出處:http://blog.csdn.net/sodme  常見的網路伺服器,基本上是7*24小時運轉的,對於網遊來說,至少要求伺服器要能連續工作一週以上的時間並

java.lang.OutOfMemoryError: Java heap space錯誤處理辦法(收集整理、轉)

以下是從網上找到的關於堆空間溢位的錯誤解決辦法:java.lang.OutOfMemoryError: Java heap space =================================================== 使用Java程式從資料庫中查詢大量的

ftl 檔案匯出 pdf 異常處理辦法

呼叫方法: <dependency> <groupId>com.lowagie</groupId> <artifactId>itext</artifactId> <ver