協議分析之HTTP
阿新 • • 發佈:2018-02-27
wireshark 協議分析工作 http 一、小試牛刀**
http協議是互聯網上應用最為廣泛的一種網絡協議,它工作在應用層,由請求和響應構成,是一個標準的客戶端服務器模型,http是無狀態的協議。我們接下來要做的,是通過網絡嗅探工具來捕獲網絡中傳輸的http包,從分析數據包的角度來學習http協議。
二、拉開帷幕
1、獲取wireshark
https://www.wireshark.org/
2、篩選HTTP流量
1、基於名稱的寫法 #篩選指定域名 http.hsot == "www.51cto.com" #篩選指定字符串 http.host contains"51cto" #篩選指定referer頭部 http.referer == "http://www.51cto.com" 2、基於請求方法 #GET http.request.method == GET #篩選所有http請求 http.request #篩選所有http響應 http.response #篩選指定url的http請求 http.request.uri == "im.taobao.com" 3、基於HTTP狀態碼 #篩選客戶端錯誤包 http.response.code >= 400 and http.response.code <= 499 #篩選服務器端錯誤包 http.response.code >= 500 and http.response.code <= 599
3、初步觀察
到這一步,我們已經通過wireshark捕獲到瀏覽器或客戶端訪問服務器端的數據包,並篩選出具體的HTTP包,接下來,我們來看看HTTP協議在數據包中體現的交互過程。
1、 客戶端向DNS服務器請求服務器地址
2、 DNS服務器響應客戶端請求
3、 客戶端與服務器端建立連接,TCP三次握手
4、 服務器與客戶端一系列交互(GET,POST,PUT,HEAD。。。)
5、 用來承載HTTP數據的TCP包
6、 結束通信,TCP四次握手
知道了大體的流程,下面來看看具體數據包的實例,以旺信PC版為例,僅作學習之用。
1、獲取DNS
2、返回域名以及IP
3、根據域名或IP篩選出具體的流量
4、對這股大流量另存後再次篩選並追蹤流
5、具體分析
三、抽絲剝繭
1、http信息分解
GET //wwxb.5.13?cache=10155&nick= HTTP/1.1\r\n
#請求的類型,URL,HTTP版本信息
Accept:image/gif
#請求的資源類型
User-Agent : SimpleHttpFetch
#執行http請求的客戶端類型
Host:gm.mmstat.com
#客戶端訪問的主機名
Cookie:cna.......
#cookie信息
HTTP /1.1 200 OK #協議版本,響應狀態碼 Content-Type: #響應的資源類型 Connection:Keep-Alive #長鏈 Set-Cookie: #設置與頁面關聯的cookie
更多詳見:http://www.runoob.com/http/http-header-fields.html
2、Content-Type(常見)
1、文件類型text/plain、text/html、text/javascript:表示通過HTTP訪問的文件類型為文本文件
2、文件類型text/jpeg、image/gif:表示通過HTTP訪問的文件類型為圖片
3、文件類型application/json、application/javascript等,表示通過HTTP訪問的文件類型為應用程序
Content-Type有很多,這裏只列出幾種,更多詳見:http://www.runoob.com/http/http-content-type.html
3、響應狀態碼(常見)
200:成功
301:臨時重定向
302:永久重定向
404:資源未找到
。。。
更多詳見:http://www.runoob.com/http/http-status-codes.html
四、千方百計
1、服務器域名可以通過DNS響應找到
2、服務器IP可以通過nslookup 域名 找到
3、域名確認可以whois查詢
4、域名功能可以通過請求方法以及響應頭信息看出
協議分析之HTTP