CTF_learning
基础知识
- 一般情况下flag拥有固定格式为
flag{xxxxx}
,有些比赛会把flag关键词替换,例如我们CTFHub平台的flag为ctfhub{xxxxx}
,利用固定格式来反推flag也是一种常见的解题思路
竞赛模式:
Jeopardy-解题
题目类型主要包含 Web 网络攻防 、 RE 逆向工程 、 Pwn 二进制漏洞利用 、 Crypto 密码攻击以及 Misc 安全杂项 这五个类别,个别比赛会根据题目类型进行扩展。
Have a try
CTFHub|HTTP协议
HTTP 请求方法是什么?
HTTP 协议中定义了常见的请求方法,比如:
GET
(获取数据)POST
(提交数据)PUT
(上传文件)DELETE
(删除资源)等等(如题目中提到的
OPTIONS
、HEAD
、TRACE
、CONNECT
)。
但题目要求你用的方法不在这些标准方法里,比如可能是CTFHUB
、FLAG
这种自定义方法。方法1:用curl工具(命令行工具)
1 |
|
-X
参数可以指定任意 HTTP 方法(如 CTFHUB
)。
其中,-v
参数用于输出通信的整个过程,包括端口连接和 HTTP request 头信息,让我们可以清晰地看到请求的详细情况。-X参数用于指定 HTTP 请求的方法。在本题中,我们需要将请求方法指定为 “CTFHUB”。
1 |
|
- 方法2:burp抓包
HTTP临时重定向
HTTP 临时重定向(状态码 302 Found)是HTTP协议中一种常见的重定向方式,它告诉客户端请求的资源暂时位于另一个URI下,客户端应当使用GET方法向这个新URI发起请求。
工作原理
- 客户端向服务器发送请求
- 服务器返回302状态码和Location头部
- 客户端自动向Location指定的新地址发起GET请求
解题步骤:
- 识别重定向
- 使用浏览器开发者工具查看网络请求
- 使用curl -v URL 查看详细请求/相应
- 注意响应中的302 Found状态码和Location头部
- 绕过重定向限制
1 |
|
- 分析重定向逻辑:
- 检查重定向是否有规律
- 查看是否有重定向循环
- 检查cookie或session对重定向的影响
1 |
|
Cookie欺骗、认证、伪造
- Cookie基础分析
先试用curl或浏览器查看cookie设置
1 |
|
常见Cookie安全属性:
HttpOnly
- 阻止JavaScript访问Secure
- 仅HTTPS传输SameSite
- 限制跨站请求Expires/Max-Age
- 控制有效期
- Cookie欺骗攻击
方法1:直接修改Cookie值
1 |
|
方法2:布尔型cookie欺骗
1 |
|
方法3:数字型Cookie递增
1 |
|
- cookie认证绕过
方法1:删除Cookie测试
1 |
|
方法2:空值Cookie测试
1 |
|
方法3:常见Cookie名称爆破
1 |
|
- Cookie 伪造攻击
方法1:JWT令牌攻击
1 |
|
方法2:Flask session伪造
1 |
|
方法3:查看cookie编码方式
1 |
|
先尝试了cookie欺骗:
发现布尔型欺骗可以得到flag
基本认证
在HTTP中,基本认证(英语:Basic access authentication)是允许http用户代理(如:网页浏览器)在请求时,提供 用户名 和 密码 的一种方式。
认证流程
- 客户端访问受保护资源
- 服务器返回401 Unauthorized,包含
WWW-Authenticate: Basic
头 - 客户端弹出登录框,用户输入凭据
- 浏览器将用户名密码用Base64编码后发送
Authorization: Basic <credentials>
- 服务器验证通过后返回资源
识别基本认证
使用curl检测
1 |
|
响应特征
1 |
|
常见的攻击方法:
方法1:暴力破解
1 |
|
方法2:Base64解码/编码
1 |
|
方法3:直接发送认证头
1 |
|
通过暴力破解后找到答案
查看phpinfo
解题方法,点击查看之后搜索页面中的 ctfhub{
即可找到。