关于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 ...
随机推荐
- April 2 2017 Week 14 Sunday
You only live once, but if you do it right, once is enough. 人生只有一次,但如果活对了,一次也就够了. Maybe I am going t ...
- 2018.11.18 Sturts2配置详解&常量配置进阶
1.基于struts.xml 的节点参数配置 package节点 action节点 result节点 include节点 2.struts常量配置以及如何修改为自己的想要的配置 2.1struts默认 ...
- Intellij idea创建(包、文件)javaWeb以及Servlet简单实现(Tomcat)
准备:1. 安装jdk2. 安装tomcat 一.创建并设置javaweb工程 创建项目成功 创建包 创建Servlet 创建包成功,但是报错,原因是没有引入包 我们先表明 现在要引入servlet- ...
- ROS编译工作区缺少cv_bridge的问题解决
cv_bridge是OpenCV与ROS之间的格式转换桥梁,编译工作区时遇到报错(目标不存在),直接将cv_bridge包复制到指定的目录即可. 下载地址:https://github.com/ros ...
- 【luogu P3879 [TJOI2010]阅读理解】 题解
题目链接:https://www.luogu.org/problemnew/show/P3879 我先说一句: 我永远都喜欢StellaSTL 这个题,很明显就是 trie树 hash map+vec ...
- Xcode DeviceSupport
问题:Could not locate device support files. This iPhone 6s is running iOS 12.1 (16B5059d), which may n ...
- Oracle块修改跟踪功能
块修改跟踪功能是指使用二进制文件记录数据库中数据库更改的过程. 其目的是提高增量备份操作的性能,因为RMAN可以使用快修改跟踪文件找到上次执行备份操作后被修改的数据块.这可以节省大量时间,因为如果不这 ...
- Hibernate知识点小结(四)--JPA
一.jpa的简介和入门 JPA:Java Persistence API,接口规范 Hinernate内部为JPA规范提供实现 开发步骤(EntityManager): ...
- Sass 基础(四)
当你想设置属性值的时候你可以使用字符串插入进来,另一个使用的用法是构建一个选择器. @mixin generate-sizes($class,$small,$medium,$big){ .#{$cla ...
- hdu_2588_GCD
The greatest common divisor GCD(a,b) of two positive integers a and b,sometimes written (a,b),is the ...