概述※
Cookie是第一次访问网站之后,由网站服务器发送给客户端浏览器的一个文本,他会存储在用户的设备上,其作用是帮助网站记住用户当前的状态,登录信息等,实现HTTP的状态保持功能。
核心特性与作用※
| 特性 | 说明 |
|---|---|
存储位置 | 客户端本地(浏览器目录下,如 Chrome 的用户数据文件夹),而非服务器端 |
数据大小 | 通常限制为 4KB 以内,仅能存储少量文本数据(如字符串、键值对) |
生命周期 | 分为 “会话 Cookie”(关闭浏览器后失效)和 “持久 Cookie”(指定Expires/Max-Age,到期后失效) |
域名与路径限制 | 仅对 “设置 Cookie 的域名 + 路径” 生效(如domain=example.com; path=/admin,仅example.com/admin下的页面可访问该 Cookie) |
安全性相关属性 | 包含HttpOnly、Secure、SameSite等属性,用于防范 XSS、CSRF 等攻击 |
在CTF中的作用※
从Cookie中获得FLAG(最直接)※
部分题目中可以直接通过Cookie获得FLAG,这是最简单的方法
通过篡改Cookie实现身份伪造※
通过登录一次普通用户,得到Cookie的格式,然后对Cookie中的内容进行修改,篡改实现登录管理员账户等操作。
泄露技术栈与框架※
当Cookie中出现下列的关键内容,则可能说明使用了某些技术框架
PHPSESSID:说明使用 PHP 语言 + Session 机制,可能存在 PHP 相关漏洞(如文件包含、代码执行);JSESSIONID:说明使用 Java Web 框架(如 Spring、Struts),需关注 Java 相关漏洞(如 Struts2 命令执行);ASP.NET_SessionId:说明使用ASP.NET,可能存在 ViewState 漏洞、SQL 注入等。
SQL注入※
通过Cookie同样可以实现SQL注入