Litctf2024-web全题解
字数 1250 2025-08-22 12:22:15
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:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root[
<!ENTITY a SYSTEM "file:///flag">
]>
<user><username>1&a;</username><password>1</password></user>
- 发送请求读取flag
关键点
- 识别XXE漏洞的特征(XML处理)
- 构造外部实体引用
- 了解file协议在XXE中的使用
4. SAS题(反序列化漏洞)
漏洞描述
存在PHP反序列化漏洞,需要构造特定对象。
解题步骤
- 分析题目要求(需要反序列化一次再base64解码)
- 编写PHP脚本生成payload:
<?php
class User {
public $username = "admin";
public $password = "secure_password";
}
$a = new User;
echo base64_encode(serialize($a));
?>
- 将生成的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函数和协议
- 使用安全的反序列化方法
- 对模板引擎进行安全配置
- 实施最小权限原则