天天看點

網安基礎入門自學筆記 ——資料包

        本文檔作為個人自學使用,不保證知識的絕對正确,如有錯誤感謝指正。筆記參考:公衆号0x00實驗室;XD安全 學習筆記 | 基礎階段24天

1、代理(proxy)作用:主機與伺服器的橋梁,如果有代理每個資料包都要經過代理。

2、HTTP和HTTPS的差別:

網安基礎入門自學筆記 ——資料包

HTTPS存在一個加密的過程,即SSL/TLS,更加安全;如果對HTTP進行抓包抓到的資料包一般為明文,而HTTPS是經過加密的密文。

  • HTTPS協定需要到CA申請證書,一般免費證書很少,需要交費,隻有強調安全性強的網站才用HTTPS。
  • HTTP協定運作在TCP之上,所有傳輸的内容都是明文,HTTPS運作在SSL/TLS之上,SSL/TLS運作在TCP之上,所有傳輸的内容都經過加密的。
  • HTTP和HTTPS使用的是完全不同的連接配接方式,用的端口也不一樣,前者是80,後者是443。
  • HTTPS可以有效的防止營運商劫持,解決了防劫持的一個大問題。

 3、Request 請求資料包資料格式

請求行+請求頭

請求行
  • 請求行由三個标記組成:請求方法、請求 URL 和 HTTP 版本,它們用空格分享。
  • 例如:GET /index.html HTTP/1.1
  • HTTP 規劃定義了 8 種可能的請求方法:

    1、GET:檢索 URL 中辨別資源的一個簡單請求。使用GET方法時,請求參數和對應的值附加在URL後面,利用一個問号(“?”)代表URL的結尾與請求參數的開始,傳遞參數長度受限制。GET方式的請求一般不包含”請求内容(請求資料)”部分,請求資料以位址的形式表現在請求行。即傳遞參數在請求頭裡。

    2、HEAD:與 GET 方法相同,伺服器隻傳回狀态行和頭标,并不傳回請求文檔

    3、POST:伺服器接受被寫入用戶端輸出流中的資料的請求。因為使用POST方法可以允許用戶端給伺服器提供資訊較多。POST方法将請求參數封裝在HTTP請求資料中,以名稱/值的形式出現,可以傳輸大量資料,這樣POST方式對傳送的資料大小沒有限制,而且也不會顯示在URL中。POST方式請求行中不包含資料字元串,這些資料儲存在”請求内容”部分,各資料之間也是使用”&”符号隔開。POST方式大多用于頁面的表單中。

    4、PUT:伺服器儲存請求資料作為指定 URL 新内容的請求

    5、DELETE:伺服器删除 URL 中指令的資源的請求

    6、OPTIONS:關于伺服器支援的請求方法資訊的請求

    7、TRACE:web 伺服器回報 Http 請求和其頭标的請求

    8、CONNECT :已文檔化,但目前未實作的一個方法,預留做隧道處理

請求頭

由關鍵字/值對組成,每行一對,關鍵字和值用冒号分享。請求頭标通知伺服器騰于用戶端的功能和辨別。

1、HOST: 主機或域名位址

2、Accept:指浏覽器或其他客戶可以接愛的 MIME 檔案格式。Servlet 可以根據它判斷并傳回适當的檔案格式。

3、User-Agent:是客戶浏覽器名稱

4、Host:對應網址 URL 中的 Web 名稱和端口号。

5、Accept-Langeuage:指出浏覽器可以接受的語言種類,如 en 或 en-us,指英語。

6、connection:用來告訴伺服器是否可以維持固定的 HTTP 連接配接。http 是無連接配接的,HTTP/1.1 使用 Keep-Alive為預設值,這樣,當浏覽器需要多個檔案時(比如一個 HTML 檔案和相關的圖形檔案),不需要每次都建立連接配接。

7、Cookie:浏覽器用這個屬性向伺服器發送 Cookie。Cookie 是在浏覽器中寄存的小型資料體,它可以記載和伺服器相關的使用者資訊,也可以用來實作會話功能。

8、Referer : 表 明 産 生 請 求 的 網 頁 URL 。 如 比 從 網 頁 /icconcept/index.jsp 中 點 擊 一 個 鍊 接 到 網 頁/icwork/search , 在 向 服 務 器 發 送 的 GET/icwork/search 中 的 請 求 中 , Referer 是http://hostname:8080/icconcept/index.jsp。這個屬性可以用來跟蹤 Web 請求是從什麼網站來的。

9、Content-Type:用來表名 request 的内容類型。可以用 HttpServletRequest 的 getContentType()方法取得。

10、Accept-Charset:指出浏覽器可以接受的字元編碼。英文浏覽器的預設值是 ISO-8859-1.

11、Accept-Encoding:指出浏覽器可以接受的編碼方式。編碼方式不同于檔案格式,它是為了壓縮檔案并加速檔案傳遞速度。浏覽器在接收到 Web 響應之後先解碼,然後再檢查檔案格式。

通路網站得到get請求封包

1).GET

//請求首行

GET /hello/index.jsp HTTP/1.1

//請求頭資訊,因為GET請求沒有正文

Host: localhost

User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,**;q=0.8

Accept-Language: zh-cn,zh;q=0.5

Accept-Encoding: gzip, deflate

Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7

Connection: keep-alive

Referer: http://localhost/hello/index.jsp

Cookie: JSESSIONID=369766FDF6220F7803433C0B2DE36D98

Content-Type: application/x-www-form-urlencoded 

Content-Length: 14 

// 這裡是空行

//POST有請求正文

username=hello

POST方式請求行中不包含資料字元串,這些資料儲存在”請求内容”部分,各資料之間也是使用”&”符号隔開。POST方式大多用于頁面的表單中。

4、 Response 傳回資料包資料格式

 (1)Response 請求資料包資料格式

一個響應由四個部分組成;狀态行、響應頭标、空行、響應資料。

1.狀态行:協定版本、數字形式的狀态代碼和狀态描述,個元素之間以空格分隔

2.響應頭标:包含伺服器類型、日期、長度、内容類型等

3.空行:響應頭與響應體之間用空行隔開

4.響應資料:浏覽器會将實體内容中的資料取出來,生成相應的頁面

 HTTP 響應碼:

1xx:資訊,請求收到,繼續處理

2xx:成功,行為被成功地接受、了解和采納。 例:200 存在檔案

3xx:重定向,為了完成請求,必須進一步執行的動作。例:3xx 均可能存在

4xx:用戶端錯誤。403 存在檔案夾;例:404 不存在檔案夾

5xx:伺服器錯。例:500 均可能存在

響應頭執行個體 :

網安基礎入門自學筆記 ——資料包

//下面是響應正文

網頁源碼.....

注:請求封包和響應封包各個表示含義詳解:

Http請求封包和響應封包 | 清河洛

Http請求頭和響應頭(Get和Post) - 小綿羊~~ - 部落格園

繼續閱讀