6876h9/picoctf-gradebook-cookie-writeup
GitHub: 6876h9/picoctf-gradebook-cookie-writeup
picoCTF在线成绩册Cookie操纵漏洞分析
Stars: 0 | Forks: 0
# picoCTF - 在线成绩册Cookie操纵Writeup
## 挑战概述
这个挑战提供了一个简单的成绩册应用程序,其中有一个“继续作为访客”按钮。
以访客身份进入后,应用程序会响应:
这立即表明应用程序正在根据客户端状态做出授权决定。
## 目标
获取管理员访问权限并检索标志。
## 初始侦察
主页包含一个允许用户继续作为访客的按钮。
### 观察
应用程序在无需登录表单的情况下区分访客和管理员用户。
这是一个强烈的迹象表明一个cookie可能正在控制授权。
## Cookie分析
使用Chrome DevTools:
1. 打开开发者工具(`F12`)
2. 导航到:
应用程序 → 存储 → Cookies
发现一个名为:
```
isAdmin
```
的cookie。
值:
```
0
```
这表明:
```
0 = Guest
1 = Administrator
```
## 利用
应用程序信任客户端控制的cookie。
修改:
```
isAdmin=0
```
为:
```
isAdmin=1
```
刷新页面。
服务器错误地接受修改后的cookie并授予管理员权限。
## 标志
```
picoCTF{gr4d3_A_c00k13_65fd1e1a}
```
## 安全问题
### 漏洞类别
Cookie操纵 / 破坏访问控制
### 根本原因
应用程序依赖于用户控制的cookie来确定授权级别。
因为cookie既未在服务器端签名也未进行验证,攻击者可以修改其值并提升权限。
### 安全设计
而不是:
```
isAdmin=1
```
服务器应该:
- 在服务器端存储授权信息
- 使用签名会话令牌
- 在每个请求上验证权限
## 截图
### 登录页面

### 修改Cookie

### 检索标志

## 学习成果
- 浏览器cookie检查
- 客户端状态分析
- 认证绕过技术
- 破坏访问控制识别
- 基本网络利用方法
## 参考
几个公开的writeup描述了在picoCTF挑战中通过将`isAdmin`cookie从`0`更改为`1`以获得管理员访问权限的相同技术。