天天看點

(協定分析)通過抓包分析HTTP協定以及包中内容

因為網絡安全往往需要一門腳本語言的支援,不然隻能用着别人的工具。是以決定從學習編寫一隻爬蟲開始,來入門python掌握一門腳本語言,學習爬蟲,當然與http協定離不了關系,是以先分析一下http的工作流程

HTTP協定

1.什麼是HTTP

http協定是超文本傳輸協定,它定義了浏覽器和伺服器之間的通信規則,http有兩個程式實作,一個用戶端程式,一個伺服器程式,從層次結構上來看屬于應用層的協定,使用tcp作為它的支撐運輸協定,并且是一種無狀态協定,以此來降低伺服器的負荷

2.工作原理

HTTP:用戶端與伺服器端建立連接配接 -————用戶端送出請求封包———— 伺服器端發出應答封包

HTTPS:現在大多數頁面使用HTTPS來進行資料的交流,因為HTTP封包都是明文的,一旦目标截取資料包,很有可能得到使用者的賬号密碼

過程: 主機向伺服器發送請求,想要建立連接配接—————伺服器向主機傳回一個公鑰(公鑰需要到認證中心申請,是以許多做黑産的頁面隻能使用http)——————主機收到公鑰後,利用公鑰對自己的請求封包進行加密——————伺服器收到後利用自己的私鑰進行解密

3.http請求

包括 請求行 請求頭 請求内容

請求方式有get、post、put、delet等等

這裡主要說下最常見的兩種get和post post可以承載更多的發送資訊

post請求

(協定分析)通過抓包分析HTTP協定以及包中内容

如圖---------在百度 搜尋123 後抓取到如上圖的資料包

POST:請求方式以及使用的HTTP的版本

URI:統一資源辨別符(注意URI和URL是兩種不同的概念,但是可以把它當作url來了解,下面是對于兩者差別的詳細講解)

https://www.jianshu.com/p/ba15d066f777

Request Version:版本資訊

Request Method:請求方法

Host:表示向哪一台主機發送請求

Accept:告訴浏覽器我可以接收哪些資料類型

Accept-Encoding:告訴浏覽器,支援的壓縮格式

User-Agent:客戶機使用的浏覽器以及版本資訊

Cache Control:緩存控制

Connection:告訴伺服器請求完後是斷開還是保持連接配接

Content-Length:我可以接收的資料的長度

Full-Request URI:所請求的完整的URI

HTTP Request :HTTP請求的進度

Response in frame 請求的幀

request請求

(協定分析)通過抓包分析HTTP協定以及包中内容

Request URI 以及請求的内容

Request path 所請求的路徑

Referer:表示的含義是你是從哪個頁面來到此頁面的,伺服器往往通過referer來防盜鍊

Cookie:http往往是種無狀态協定,是以大部分頁面使用cookies來對使用者進行表示,進而實作登入功能

(這裡出了點問題,因為現在的頁面大都是https的包,導緻我抓不到幾個資料包,唉)

4.http響應

響應同樣也包括 響應行 響應頭 響應内容

(協定分析)通過抓包分析HTTP協定以及包中内容

Sever:伺服器資訊

Last-modified:上一次修改時間

狀态碼含義以及常見的狀态碼:我們可以通過狀态碼得到此次請求是否成功

1XX 表示資訊 如

2XX 表示請求成功

3XX 表示重定向

4XX 表示問題在用戶端

5XX 表示問題在伺服器端

幾個常見的狀态碼

  • 200 OK 請求成功(其後是對GET和POST請求的應答文檔。)
  • 302 Found 所請求的頁面已經臨時轉移至新的url
  • 400 Bad Request
  • 403 Forbidden 對被請求頁面的通路被禁止
  • 404 Not Found伺服器無法找到被請求的頁面。
  • 500 Internal Server Error

    請求未完成。伺服器遇到不可預知的情況。

  • 502 Bad Gateway

    請求未完成。伺服器從上遊伺服器收到一個無效的響應。

  • 504 Gateway Timeout

    網關逾時。

在抓取資料包時,發現wireshark不能夠抓取https的資料包

然而現在頁面大多數都是https,唉

(協定分析)通過抓包分析HTTP協定以及包中内容

繼續閱讀