Hacker101 CTF Writeup
字数 1535 2025-08-13 21:33:29
Hacker101 CTF 解题指南
背景介绍
Hacker101 CTF 是由 HackerOne 运营的免费黑客教育平台,旨在提供一个安全、有益的环境学习网络安全技术。CTF 分为不同难度级别,每个级别包含若干标志(flag),玩家可以按任意顺序挑战。
挑战解析
1. A Little Something to Get You Started
- 初始页面:访问基础URL显示简单内容
- 解题步骤:
- 查看网页源代码
- 发现隐藏的图片链接
- 访问该图片获取第一个flag
2. Micro-CMS v1
FLAG 0
- 漏洞类型:IDOR (不安全的直接对象引用)
- 利用方法:
- 进入编辑页面(如/edit/1)
- 修改ID参数(尝试1-9)
- 通过修改ID访问未授权内容获取flag
FLAG 1
- 漏洞类型:SQL注入
- 利用方法:
- 在编辑页面的URL参数中添加引号
- 如:
/edit/1' - 观察错误响应或直接获取flag
FLAG 2
- 漏洞类型:存储型XSS
- 利用方法:
- 在编辑页面的标题或内容字段插入:
<script>alert`xss`</script> - 保存后返回首页触发弹窗获取flag
- 在编辑页面的标题或内容字段插入:
FLAG 3
- 漏洞类型:DOM XSS
- 利用方法:
- 在编辑页面插入:
<button onclick=alert(1)>Some button</button> - 检查页面源代码获取flag
- 在编辑页面插入:
3. Micro-CMS v2
FLAG 0
- 漏洞类型:SQL注入绕过认证
- 利用方法:
- 用户名输入:
' UNION SELECT '123' AS password# - 密码输入:
123 - 原理:构造UNION查询使密码验证始终返回真
- 用户名输入:
FLAG 1
- 漏洞类型:HTTP方法滥用
- 利用方法:
- 直接访问编辑页面(如/page/edit/1)
- 使用POST方法提交请求(可使用Hackbar等工具)
- 绕过常规的GET请求限制
FLAG 2
- 漏洞类型:弱密码保护
- 利用方法:
- 尝试万能密码:
' or 1=1#- 使用Burp Suite等工具进行密码爆破
- 注意:每个人的密码可能不同
4. Encrypted Pastebin
FLAG 0
- 漏洞类型:参数注入
- 利用方法:
- 发现POST参数
- 尝试在参数中注入各种payload
- 通过响应获取flag
5. Photo Gallery
FLAG 0
- 漏洞类型:SQL注入
- 利用方法:
- 查看网页源码发现图片通过
fetch?id=加载 - 使用SQLMap自动化测试:
sqlmap.py -u "http://example.com/fetch?id=1" --method=GET --dump -D level5 -T photos -p id --code=200 --ignore-code=500 --skip-waf --threads=2- 获取数据库内容找到flag
- 查看网页源码发现图片通过
6. Cody's First Blog
FLAG 0
- 漏洞类型:PHP代码注入
- 利用方法:
- 在评论区域提交PHP代码:
<?php echo phpinfo(); ?> - 通过响应获取服务器信息及flag
- 在评论区域提交PHP代码:
FLAG 1
- 漏洞类型:本地文件包含(LFI)
- 利用方法:
- 查看网页源码发现include()函数使用
- 尝试路径遍历:
?page=admin.auth.inc- 绕过认证直接访问管理页面:
?page=admin.inc- 获取管理员权限及flag
技术要点总结
- 基础侦查:始终从查看源代码开始,寻找隐藏链接或注释
- 注入漏洞:
- SQL注入:尝试引号、注释符(--, #)和UNION查询
- 代码注入:尝试系统命令或语言特定函数
- XSS漏洞:
- 存储型:测试表单输入是否未经处理存入数据库
- DOM型:检查事件处理程序和动态内容生成
- 认证绕过:
- SQL注入构造永真条件
- 修改HTTP方法(POST替代GET)
- 直接访问管理页面
- 工具使用:
- SQLMap自动化SQL注入测试
- Burp Suite用于请求修改和爆破
- Hackbar简化请求构造
防御建议
- 对所有用户输入进行严格过滤和转义
- 使用参数化查询防御SQL注入
- 实施严格的访问控制,不依赖客户端验证
- 对特殊字符进行HTML编码防御XSS
- 避免直接文件包含,使用白名单限制包含文件
- 使用CSRF令牌保护表单提交
通过系统性地练习这些挑战,可以全面了解常见Web漏洞的发现和利用方法,同时学习如何防御这些安全威胁。