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显示简单内容
  • 解题步骤
    1. 查看网页源代码
    2. 发现隐藏的图片链接
    3. 访问该图片获取第一个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

  • 漏洞类型:弱密码保护
  • 利用方法
    1. 尝试万能密码:
    ' or 1=1#
    
    1. 使用Burp Suite等工具进行密码爆破
    • 注意:每个人的密码可能不同

4. Encrypted Pastebin

FLAG 0

  • 漏洞类型:参数注入
  • 利用方法
    • 发现POST参数
    • 尝试在参数中注入各种payload
    • 通过响应获取flag

5. Photo Gallery

FLAG 0

  • 漏洞类型:SQL注入
  • 利用方法
    1. 查看网页源码发现图片通过fetch?id=加载
    2. 使用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
    
    1. 获取数据库内容找到flag

6. Cody's First Blog

FLAG 0

  • 漏洞类型:PHP代码注入
  • 利用方法
    • 在评论区域提交PHP代码:
      <?php echo phpinfo(); ?>
      
    • 通过响应获取服务器信息及flag

FLAG 1

  • 漏洞类型:本地文件包含(LFI)
  • 利用方法
    1. 查看网页源码发现include()函数使用
    2. 尝试路径遍历:
    ?page=admin.auth.inc
    
    1. 绕过认证直接访问管理页面:
    ?page=admin.inc
    
    1. 获取管理员权限及flag

技术要点总结

  1. 基础侦查:始终从查看源代码开始,寻找隐藏链接或注释
  2. 注入漏洞
    • SQL注入:尝试引号、注释符(--, #)和UNION查询
    • 代码注入:尝试系统命令或语言特定函数
  3. XSS漏洞
    • 存储型:测试表单输入是否未经处理存入数据库
    • DOM型:检查事件处理程序和动态内容生成
  4. 认证绕过
    • SQL注入构造永真条件
    • 修改HTTP方法(POST替代GET)
    • 直接访问管理页面
  5. 工具使用
    • SQLMap自动化SQL注入测试
    • Burp Suite用于请求修改和爆破
    • Hackbar简化请求构造

防御建议

  1. 对所有用户输入进行严格过滤和转义
  2. 使用参数化查询防御SQL注入
  3. 实施严格的访问控制,不依赖客户端验证
  4. 对特殊字符进行HTML编码防御XSS
  5. 避免直接文件包含,使用白名单限制包含文件
  6. 使用CSRF令牌保护表单提交

通过系统性地练习这些挑战,可以全面了解常见Web漏洞的发现和利用方法,同时学习如何防御这些安全威胁。

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 利用方法 : 在编辑页面的标题或内容字段插入: 保存后返回首页触发弹窗获取flag FLAG 3 漏洞类型 :DOM XSS 利用方法 : 在编辑页面插入: 检查页面源代码获取flag 3. Micro-CMS v2 FLAG 0 漏洞类型 :SQL注入绕过认证 利用方法 : 用户名输入: 密码输入: 123 原理:构造UNION查询使密码验证始终返回真 FLAG 1 漏洞类型 :HTTP方法滥用 利用方法 : 直接访问编辑页面(如/page/edit/1) 使用POST方法提交请求(可使用Hackbar等工具) 绕过常规的GET请求限制 FLAG 2 漏洞类型 :弱密码保护 利用方法 : 尝试万能密码: 使用Burp Suite等工具进行密码爆破 注意:每个人的密码可能不同 4. Encrypted Pastebin FLAG 0 漏洞类型 :参数注入 利用方法 : 发现POST参数 尝试在参数中注入各种payload 通过响应获取flag 5. Photo Gallery FLAG 0 漏洞类型 :SQL注入 利用方法 : 查看网页源码发现图片通过 fetch?id= 加载 使用SQLMap自动化测试: 获取数据库内容找到flag 6. Cody's First Blog FLAG 0 漏洞类型 :PHP代码注入 利用方法 : 在评论区域提交PHP代码: 通过响应获取服务器信息及flag FLAG 1 漏洞类型 :本地文件包含(LFI) 利用方法 : 查看网页源码发现include()函数使用 尝试路径遍历: 绕过认证直接访问管理页面: 获取管理员权限及flag 技术要点总结 基础侦查 :始终从查看源代码开始,寻找隐藏链接或注释 注入漏洞 : SQL注入:尝试引号、注释符(--, #)和UNION查询 代码注入:尝试系统命令或语言特定函数 XSS漏洞 : 存储型:测试表单输入是否未经处理存入数据库 DOM型:检查事件处理程序和动态内容生成 认证绕过 : SQL注入构造永真条件 修改HTTP方法(POST替代GET) 直接访问管理页面 工具使用 : SQLMap自动化SQL注入测试 Burp Suite用于请求修改和爆破 Hackbar简化请求构造 防御建议 对所有用户输入进行严格过滤和转义 使用参数化查询防御SQL注入 实施严格的访问控制,不依赖客户端验证 对特殊字符进行HTML编码防御XSS 避免直接文件包含,使用白名单限制包含文件 使用CSRF令牌保护表单提交 通过系统性地练习这些挑战,可以全面了解常见Web漏洞的发现和利用方法,同时学习如何防御这些安全威胁。