Litctf2024-web全题解
字数 1250 2025-08-22 12:22:15

Litctf2024 Web方向题解教学文档

1. 浏览器套娃题(SSRF漏洞利用)

漏洞描述

题目提供了一个可以跳转到其他网站的界面,初步判断存在服务器端请求伪造(SSRF)漏洞。

解题步骤

  1. 尝试输入"百度"测试功能,确认可以跳转
  2. 猜测可能支持file协议读取本地文件
  3. 构造payload: file:///flag
  4. 直接读取服务器上的flag文件

关键点

  • 识别SSRF漏洞的特征(可控制服务器发出的请求)
  • 了解file协议的使用方法
  • 知道flag通常位于根目录下的flag文件

2. 高亮主题背景查看器(文件包含漏洞)

漏洞描述

通过查看源代码发现可能存在文件包含漏洞。

解题步骤

  1. 使用Burp Suite拦截请求
  2. 发现传参点(theme参数)
  3. 尝试包含flag文件:theme=flag
  4. 成功读取flag

关键点

  • 源代码审计发现潜在漏洞
  • 使用专业工具(Burp Suite)进行测试
  • 文件包含漏洞的基本利用方式

3. exx题(XXE漏洞)

漏洞描述

登录页面存在XML外部实体注入(XXE)漏洞。

解题步骤

  1. 随意输入测试数据并抓包
  2. 确认存在回显型XXE漏洞
  3. 构造恶意XML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root[
<!ENTITY a SYSTEM "file:///flag">
]>
<user><username>1&a;</username><password>1</password></user>
  1. 发送请求读取flag

关键点

  • 识别XXE漏洞的特征(XML处理)
  • 构造外部实体引用
  • 了解file协议在XXE中的使用

4. SAS题(反序列化漏洞)

漏洞描述

存在PHP反序列化漏洞,需要构造特定对象。

解题步骤

  1. 分析题目要求(需要反序列化一次再base64解码)
  2. 编写PHP脚本生成payload:
<?php
class User {
    public $username = "admin";
    public $password = "secure_password";
}
$a = new User;
echo base64_encode(serialize($a));
?>
  1. 将生成的payload放入输入框
  2. 获取flag

关键点

  • 理解PHP序列化/反序列化机制
  • 构造符合要求的对象
  • 正确处理编码(base64)

5. 回声池题(SSTI漏洞)

漏洞描述

存在服务器端模板注入(SSTI)漏洞。

解题步骤

  1. 测试基本注入:{{2 * 2}}
  2. 确认存在模板注入(有计算结果显示)
  3. 直接构造读取flag的payload

关键点

  • 识别SSTI漏洞(通过数学表达式测试)
  • 了解模板引擎的特性
  • 构造有效的注入payload

6. 百万美元的诱惑题(PHP代码审计)

漏洞描述

多层绕过的PHP代码审计题目。

解题步骤

  1. 绕过第一层防护
  2. 绕过第二层防护,获取提示
  3. 审计代码发现需要使$x=12.php
  4. 利用未被过滤的$()执行操作
  5. 重复12次$(构造payload

关键点

  • 多层代码审计能力
  • 无字母数字的RCE技巧
  • 理解$()在PHP中的执行方式

通用解题技巧

  1. 信息收集:总是先查看页面源代码和网络请求
  2. 工具使用:熟练使用Burp Suite等工具进行拦截和修改请求
  3. 协议利用:了解不同协议(file://, php://等)在漏洞利用中的作用
  4. 漏洞识别:通过简单测试判断可能的漏洞类型
  5. 编码处理:注意base64、URL编码等在漏洞利用中的使用

防御建议

  1. 对用户输入进行严格过滤
  2. 禁用危险的PHP函数和协议
  3. 使用安全的反序列化方法
  4. 对模板引擎进行安全配置
  5. 实施最小权限原则
Litctf2024 Web方向题解教学文档 1. 浏览器套娃题(SSRF漏洞利用) 漏洞描述 题目提供了一个可以跳转到其他网站的界面,初步判断存在服务器端请求伪造(SSRF)漏洞。 解题步骤 尝试输入"百度"测试功能,确认可以跳转 猜测可能支持file协议读取本地文件 构造payload: file:///flag 直接读取服务器上的flag文件 关键点 识别SSRF漏洞的特征(可控制服务器发出的请求) 了解file协议的使用方法 知道flag通常位于根目录下的flag文件 2. 高亮主题背景查看器(文件包含漏洞) 漏洞描述 通过查看源代码发现可能存在文件包含漏洞。 解题步骤 使用Burp Suite拦截请求 发现传参点(theme参数) 尝试包含flag文件: theme=flag 成功读取flag 关键点 源代码审计发现潜在漏洞 使用专业工具(Burp Suite)进行测试 文件包含漏洞的基本利用方式 3. exx题(XXE漏洞) 漏洞描述 登录页面存在XML外部实体注入(XXE)漏洞。 解题步骤 随意输入测试数据并抓包 确认存在回显型XXE漏洞 构造恶意XML: 发送请求读取flag 关键点 识别XXE漏洞的特征(XML处理) 构造外部实体引用 了解file协议在XXE中的使用 4. SAS题(反序列化漏洞) 漏洞描述 存在PHP反序列化漏洞,需要构造特定对象。 解题步骤 分析题目要求(需要反序列化一次再base64解码) 编写PHP脚本生成payload: 将生成的payload放入输入框 获取flag 关键点 理解PHP序列化/反序列化机制 构造符合要求的对象 正确处理编码(base64) 5. 回声池题(SSTI漏洞) 漏洞描述 存在服务器端模板注入(SSTI)漏洞。 解题步骤 测试基本注入: {{2 * 2}} 确认存在模板注入(有计算结果显示) 直接构造读取flag的payload 关键点 识别SSTI漏洞(通过数学表达式测试) 了解模板引擎的特性 构造有效的注入payload 6. 百万美元的诱惑题(PHP代码审计) 漏洞描述 多层绕过的PHP代码审计题目。 解题步骤 绕过第一层防护 绕过第二层防护,获取提示 审计代码发现需要使 $x=12.php 利用未被过滤的 $() 执行操作 重复12次 $( 构造payload 关键点 多层代码审计能力 无字母数字的RCE技巧 理解 $() 在PHP中的执行方式 通用解题技巧 信息收集 :总是先查看页面源代码和网络请求 工具使用 :熟练使用Burp Suite等工具进行拦截和修改请求 协议利用 :了解不同协议(file://, php://等)在漏洞利用中的作用 漏洞识别 :通过简单测试判断可能的漏洞类型 编码处理 :注意base64、URL编码等在漏洞利用中的使用 防御建议 对用户输入进行严格过滤 禁用危险的PHP函数和协议 使用安全的反序列化方法 对模板引擎进行安全配置 实施最小权限原则