XCTF cookie

一.了解cookie(来源于网络)

  1.概念

  HTTP协议本身是无状态的。什么是无状态呢,即服务器无法判断用户身份。Cookie实际上是一小段的文本信息(key-value格式)。客户端向服务器发起请求,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。
  .2.机制
  客户端发送一个请求到服务器 --> 服务器发送一个HttpResponse响应到客户端,其中包含Set-Cookie的头部 -->客户端保存cookie,
  之后向服务器发送请求时,HttpRequest请求中会包含一个Cookie的头部 -->服务器返回响应数据。
   以下为cookie的属性值和对应的介绍:
 
Secure 如果设置了这个属性,那么只会在 SSH 连接时才会回传该 Cookie
NAME=VALUE 键值对,可以设置要保存的 Key/Value,注意这里的 NAME 不能和其他属性项的名字一样
Expires 过期时间,在设置的某个时间点后该 Cookie 就会失效
Domain 生成该 Cookie 的域名,如 domain="www.baidu.com"
Path 该 Cookie 是在当前的哪个路径下生成的,如 path=/wp-admin/
  3.修改或者删除cookie

  HttpServletResponse提供的Cookie操作只有一个addCookie(Cookie cookie),所以想要修改Cookie只能使用一个同名的Cookie来覆盖原先的Cookie。如果要删除某个Cookie,则只需要新建一个同名的Cookie,并将maxAge设置为0,并覆盖原来的Cookie即可。新建的Cookie,除了value、maxAge之外的属性,比如name、path、domain都必须与原来的一致才能达到修改或者删除的效果。否则,浏览器将视为两个不同的Cookie不予覆盖。值得注意的是,从客户端读取Cookie时,包括maxAge在内的其他属性都是不可读的,也不会被提交。浏览器提交Cookie时只会提交name和value属性,maxAge属性只被浏览器用来判断Cookie是否过期,而不能用服务端来判断。

二.实验步骤

  1.进入实验环境后,f12打开开发者工具,刷新,查看网络右侧的消息头可看到名为look-here的cookie的值为cookie.php

  

 

 

   2.访问http://111.198.29.45:47911/cookie.php,提示查看http响应包,在网络一栏,可看到访问cookie.php的数据包

  

 

   在响应头中发现flag。

 

  

  • 添加到短语集
     
    • 没有此单词集:英语 -> 中文(简体)...
       
    • 创建新的单词集...
  • 拷贝
posted @ 2020-04-02 11:56  l2sec  阅读(351)  评论(0编辑  收藏  举报