• 关于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

  • 相关阅读:
    python调c++之caffe实现
    coco数据处理与分割
    一个队列类的实现(比delphi自带的速度快70倍) 转
    临界区对象TCriticalSection(Delphi) 与 TRtlCriticalSection 的区别(转)
    缇、像素转厘米的方法
    缇 磅 像素
    delphi RTTI 反射技术(转自朝闻道博客)
    emrDB本机异地泵导双备份并自动压缩 新.bat
    ORA-01589错误 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项
    Oracle ORA-01033: 错误解决办法
  • 原文地址:https://www.cnblogs.com/slpawn/p/8671134.html
Copyright © 2020-2023  润新知