BYUCTF 2025 Web Writeup
字数 1410 2025-08-29 22:41:02
BYUCTF 2025 Web题目解析与安全教学
1. Red This 438题目解析
题目概述
- 包含查询页面、登录页面、注册页面和Redis数据库
- 目标是获取admin密码并最终获取flag
解题步骤
-
初始分析:
- 尝试使用JWT设置cookie,但发现没有密钥无法解密admin的session
- 发现
getQuote()函数可以查询数据库但不能直接查flag
-
获取admin密码:
- 通过查询数据库已有记录,提交
famous_person=admin_password - 获取到admin密码:
I_HopeYou4re8admin_iLoveTechn070g_9283910
- 通过查询数据库已有记录,提交
-
获取flag:
- 使用admin凭据登录:
admin:I_HopeYou4re8admin_iLoveTechn070g_9283910 - 尝试
famous_person=flag_查询未果 - 最终发现flag在下拉菜单中直接获取
- 使用admin凭据登录:
安全漏洞与防护
- 漏洞:未对用户输入进行充分过滤,导致数据库信息泄露
- 防护措施:
- 实施输入验证和过滤
- 使用参数化查询防止SQL注入
- 敏感信息不应存储在可被用户直接查询的位置
2. Willy Wonka Web 438题目解析
题目概述
- 初始页面无内容
- 需要从后端获取flag
解题步骤
-
分析后端配置:
- 查看
httpd.conf配置文件 - 发现请求头中设置
a: admin可以获取flag - 但配置中使用
RequestHeader unset a删除了请求头
- 查看
-
漏洞利用:
- 发现Apache httpd 2.4.55版本存在请求走私漏洞
- 通过在GET参数后面添加请求头绕过过滤
- 本地测试确认漏洞存在
-
获取flag:
- 构造特殊请求绕过请求头过滤
- 成功获取flag:
byuctf{i_never_liked_w1lly_wonka}
安全漏洞与防护
- 漏洞:HTTP请求走私漏洞
- 防护措施:
- 及时更新Web服务器软件
- 严格验证和规范化所有HTTP请求
- 禁用不必要的HTTP方法
3. Cooking Flask 442题目解析
题目概述
- 一个食谱查询网站
- 目标是获取admin密码
解题步骤
-
发现注入点:
tags参数存在SQL注入漏洞- 使用sqlmap自动化工具进行注入
-
数据库枚举:
- 查询数据库结构
- 发现
user表包含password字段 - 查询admin密码字段
-
获取flag:
- 成功获取admin密码:
byuctf{pl34s3_p4r4m3t3r1z3_y0ur_1nputs_4nd_h4sh_p4ssw0rds}
- 成功获取admin密码:
安全漏洞与防护
- 漏洞:未参数化的SQL查询导致注入
- 防护措施:
- 使用参数化查询或ORM
- 对用户输入进行严格过滤
- 密码应使用强哈希算法存储
- 实施最小权限原则
综合安全建议
-
输入验证:
- 对所有用户输入进行严格验证
- 实施白名单验证策略
-
数据库安全:
- 使用参数化查询
- 避免直接拼接SQL语句
- 敏感信息加密存储
-
认证安全:
- 使用强密码哈希算法
- 实施多因素认证
- 会话管理安全
-
服务器安全:
- 保持软件更新
- 最小化暴露的服务和功能
- 实施适当的HTTP头安全策略
-
安全测试:
- 定期进行渗透测试
- 自动化漏洞扫描
- 代码审计
通过分析这些CTF题目,我们可以学习到实际Web应用中的常见安全漏洞及其防护方法,这对开发安全的Web应用程序至关重要。