关于cookie的一些学习笔记
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的一些学习笔记的更多相关文章
- JavaWeb学习笔记总结 目录篇
JavaWeb学习笔记一: XML解析 JavaWeb学习笔记二 Http协议和Tomcat服务器 JavaWeb学习笔记三 Servlet JavaWeb学习笔记四 request&resp ...
- AVAWEB学习笔记 ---- 系列文章
[JAVAWEB学习笔记]网上商城实战5:后台的功能模块 [JAVAWEB学习笔记]网上商城实战4:订单模块 [JAVAWEB学习笔记]网上商城实战3:购物模块和订单模块 [JAVAWEB学习笔记]网 ...
- [原创]java WEB学习笔记30:Cookie Demo 之显示最近浏览的记录
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- [原创]java WEB学习笔记29:Cookie Demo 之自动登录
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- [原创]java WEB学习笔记28: 会话与状态管理Cookie 机制
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- Python3+Selenium3+webdriver学习笔记11(cookie处理)
#!/usr/bin/env python# -*- coding:utf-8 -*-'''Selenium3+webdriver学习笔记11(cookie处理)'''from selenium im ...
- ASP.Net开发基础温故知新学习笔记
申明:本文是学习2014版ASP.Net视频教程的学习笔记,仅供本人复习之用,也没有发布到博客园首页. 一.一般处理程序基础 (1)表单提交注意点: ①GET通过URL,POST通过报文体: ②需在H ...
- python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容
python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容 Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖 ...
- 两千行PHP学习笔记
亲们,如约而至的PHP笔记来啦~绝对干货! 以下为我以前学PHP时做的笔记,时不时的也会添加一些基础知识点进去,有时还翻出来查查. MySQL笔记:一千行MySQL学习笔记http://www.cnb ...
随机推荐
- echarts固定柱子宽度(barWidth)
series: [ { name: '', yAxisIndex: 0, type: ' ...
- python:线程进阶
1,守护线程 import time from threading import Thread def func(): print('开始执行子线程') time.sleep(3) print('子线 ...
- SPOJ MUSKET - Musketeers
黑书P117页. 要是不看解析,确实不要算和定义状态. 把环看成链,是指把这个1234512345,写两边,然后怎么表示一个人是否胜利了呢?其实就是其他人全部死光(好像等于没说): 考虑最后一次杀人, ...
- react开发环境准备
使用reactjs,我们有两种方式 一种是通过script标签引入reactjs,这是一种比较古老的编码方式了, 如果我们的项目比较大,你会对项目js进行拆分,然后页面就会通过script标签加载很多 ...
- android 中组件继承关系图,一目了然
View继承关系图 Adapter适配器继承关系图 Activity继承关系图
- ASP.NET MVC有用工具
Route Debugger https://www.nuget.org/packages/routedebugger 在Asp.Net MVC程序中,路由(Route)是一个非常核心的概念,可以说是 ...
- Gulp 方法
Gulp有5个基本方法:src.dest.task.run.watch Gulp.src() gulp模块的src方法,用于产生数据流.它的参数表示索要处理的文件,一般有以下几种形式: js ...
- Array GCD CodeForces - 624D (dp,gcd)
大意: 给定序列, 给定常数a,b, 两种操作, (1)任选一个长为$t$的子区间删除(不能全部删除), 花费t*a. (2)任选$t$个元素+1/-1, 花费t*b. 求使整个序列gcd>1的 ...
- java多线程(简单介绍)
简单介绍 线程是程序运行的基本执行单元.当操作系统(不包括单线程的操作系统,如微软早期的DOS)在执行一个程序时,会在系统中建立一个进程,而在这个进程中,必须至少建立一个线程(这个线程被称为主线程)来 ...
- HDU 2199 Can you solve this equation?(二分解方程)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2199 Can you solve this equation? Time Limit: 2000/10 ...