引用 “Cookie是一個神奇的機制,同域内浏覽器中發出的任何一個請求都會帶上Cookie,無論請求什麼資源,請求時,Cookie出現在請求頭的Cookie字段中。服務端響應頭的Set-Cookie字段可以添加、修改和删除Cookie,大多數情況下,用戶端通過JavaScript也可以添加、修改和删除Cookie。”
這句話基本上說了cookie是什麼 和怎樣進行操作就不重複了
現在越來越多的黑闊用xss進行盜取使用者或者管理者的cookie 盜取目标網站的使用者權限
Cookie的重要字段如下:
[name][value][domain][path][expires][httponly][secure]
其含義依次是:名稱、值、所屬域名、所屬相對根路徑、過期時間、是否有HttpOnly标志、是否有Secure标志。
有幾個字段是有專門的機制的
一個一個來
0×01子域Cookie機制
設定Domain 的值 可以進行共享cookie (不填為預設 本域 不能為其他域名)
在查關于 子域cookie機制時
找到2個相關的博文
我也有點感興趣就同這個博文實驗了下
我直接貼圖和操作了
<a href="http://blog.51cto.com/attachment/201307/235931397.jpg" target="_blank"></a>
我是在本機操作的 于是就用switchhosts! 更改了下環境 設定了一個虛拟域名
設定虛拟域名 (因為畢竟是子域和根域下的Cookie的問題 IP不好實作)
編寫設定Cookie的PHP腳本,先設定子域,再設定根域:
<a href="http://blog.51cto.com/attachment/201307/235934958.jpg" target="_blank"></a>
再編寫浏覽Cookie的腳本:
<a href="http://blog.51cto.com/attachment/201307/235936510.jpg" target="_blank"></a>
然後通路1.php 生成cookie 再通路2.php擷取cookie
<a href="http://blog.51cto.com/attachment/201307/235938183.jpg" target="_blank"></a>
結果顯示有效的是子域下的Cookie。
___________________________________________
在子域下請求時,浏覽器會把子域和根域下的Cookie一起發送到伺服器,那如果子域和根域下有一個同名Cookie,當我們在PHP裡使 用$_COOKIE通路時,到底生效的是哪個呢?
大家再看下我們的問題 是以我們再将先後順序換下
<a href="http://blog.51cto.com/attachment/201307/235941186.jpg" target="_blank"></a>
<a href="http://blog.51cto.com/attachment/201307/235943690.jpg" target="_blank"></a>
答案很明顯了
第一次先設定子域,再設定根域:請求頭Cookie的值是bar=www;bar=2b,結果有效的是bar=www
第二次先設定根域,再設定子域:請求頭Cookie的值是bar=2b;bar=www,結果有效的是bar=2b
同名時是根據設定cookie的先後順序來也就是哪個在前哪個生效,後面的會被忽略。
0×02路徑Cookie機制
“path字段的機制 ,設定Cookie時,如果不指定path的值,預設就是目标頁面的路徑。”
看就看得懂.
0x03HttpOnly Cookie機制
“HttpOnly是指僅在HTTP層面上傳輸的Cookie,當設定了HttpOnly标志後,用戶端腳本就無法讀寫該Cookie,這樣能有效地防禦XSS攻擊擷取Cookie。
<?php
setcookie(“test”, 1, time()+3600, “”, “”, 0); // 設定普通Cookie
setcookie(“test_http”, 1, time()+3600, “”, “”, 0, 1);
// 第7個參數(這裡的最後一個)是HttpOnly标志,0為關閉,1為開啟,預設為0
?>
”
但還是有突破的方法
(1)檢視phpinfo.php
<a href="http://blog.51cto.com/attachment/201307/235945319.jpg" target="_blank"></a>
本地測試的
(2)Django應用的調試資訊,沒進行測試- -
(3)CVE-2012-0053關于Apache Http Server 400錯誤暴露HttpOnly Cookie 本地木有apache環境 沒有測試…. 大家有興趣自己測試吧..
0×04 Secure Cookie機制
指的是設定了Secure标志的Cookie僅在HTTPS層面上安全傳輸,如果請求是HTTP的,就不會帶上這個Cookie,這樣能降低重要的Cookie被中間人截獲的風險。
Secure Cookie對于用戶端腳本來說是可讀寫的。
本文轉自Tar0 51CTO部落格,原文連結http://blog.51cto.com/tar0cissp/1259406:,如需轉載請自行聯系原作者