1. 程式人生 > >關於cookie的一些學習筆記

關於cookie的一些學習筆記

doc cookie ont 頭部 技術 domain 多個 ans git

0x00

發現自己對一些原理性的東西實在是太不了解

最近看了《cookie之困》記一下筆記

0x01

因為http是無狀態的

所以需要cookie和session來保持http的會話狀態和緩存信息

設置cookie

服務器寫入

  Set-Cookie:user=1; domain=.xxx.com ; path=/

腳本寫入

  document.cookie="user=1; domain=.xxx.com ; path=/ "

存儲於瀏覽器 傳輸於http頭部

name,domain,path 三者確定cookie 三者任一不同cookie都不同

0x02

web的同源策略是要求域名 端口 協議都相同

cookie的同源策略僅是domain和path 不區分端口和http/https

  cookie在域下是向上通配的

  www.xxx.com 下可看到所有cookie

  test.xxx.com下 只能獲取在這個二級域名下的cookie或者更低域名下的cookie

  技術分享圖片

  在路徑上是向下通配的

  路徑淺的無法獲取路徑深頁面的cookie

  技術分享圖片

  

0x03

關於cookie註入

  服務器端將cookie拼接到html頁面

  js將cookie渲染到com參與運算

0x04

cookie的替換

  cookie是允許重名的

  cookie由name domain path三者確定

  讀取或者發送的時候 js和service只能看到name

  domain和path由瀏覽器決定

  當服務器接收到重名的cookie時

  擁有相同name的cookie除了先後順序沒有其他區別

  因語言框架等不同 而取值優先級不同

  技術分享圖片

  可見先後順序能決定cookie的替換

  而瀏覽器對cookie的排序規則是

  path更長的cookie更靠前

  path相等是 更早創建的cookie更靠前

  技術分享圖片

   技術分享圖片

  由於以上這些條件

  可以對cookie進行構造 利用自己制造的cookie優先級更先替換原有的cookie

0x05

在一個打開的https頁面下

  可能是由多個https子頁面以及多個Ajax拼接而成

  可以利用cookie替換進行篡改

同樣一次操作也可能是多次https操作

  往往由多個Ajax以及多次跳轉請求組成

  cookie可對中間請求進行身份篡改

文檔鏈接

 https://github.com/knownsec/KCon/blob/master/2015/Cookie%20%E4%B9%8B%E5%9B%B0.pdf

關於cookie的一些學習筆記