swampctf2025 WP
字数 3538 2025-08-30 06:50:28
SwampCTF 2025 比赛Writeup解析与教学文档
Web安全挑战解析
Web1: Serialies (/api/person)
- 漏洞类型: 反序列化漏洞
- 解题思路:
- 检查/api/person接口的反序列化功能
- 尝试构造恶意序列化数据
- 利用反序列化漏洞执行任意代码或读取敏感信息
Web2: Hidden Message-Board
- 漏洞类型: 隐藏功能发现
- 解题思路:
- 全面扫描网站目录和文件
- 检查源代码中的注释和隐藏链接
- 尝试发现未公开的消息板功能
Web3: Beginner Web
- 解题步骤:
- F12开发者工具直接查看flag1
- 审计JavaScript代码发现flag2和flag3的加密逻辑
- 使用CryptoJS库解密flag
- 在浏览器控制台执行解密代码获取完整flag
Web4: SlowAPI
- 漏洞类型: 慢速攻击/中间件漏洞
- 关键点:
- 研究Next.js中间件漏洞
- 利用慢速请求导致服务端资源耗尽
- 参考链接: https://zhero-web-sec.github.io/research-and-things/nextjs-and-the-corrupt-middleware
Web5: Sunset Boulevard
- 解题思路:
- 发现admin路由的登录功能
- 题目提示"fan latters"有用
- 构造XSS攻击获取管理员cookie
- 利用获取的cookie访问管理员功能
Web6: Contamination
- 漏洞类型: 请求走私
- 关键技术:
- 构造特殊JSON字符串
{"a": "é"} - 利用ISO-8859-1和UTF-8编码差异
- 只有特定路由和参数会被转发到后端/api路由
- 构造特殊JSON字符串
Web7: Editor
- 安全限制:
<script>标签被直接移除on*事件处理器被正则表达式移除- CSS注入仅允许替换
<style class="custom-user-css">内容
- 绕过方法:
- 使用
iframe标签直接加载flag.txt
- 使用
Web8: SwampTech Solutions
- 攻击链:
- 以guest身份登录,发现cookie是guest的MD5值
- 伪造admin的MD5值获取管理员权限
- 访问adminpage.php发现隐藏接口
- 利用XXE漏洞读取系统文件
Web9: MaybeHappyEndingGPT
- 漏洞利用:
- 尝试让AI返回构成RCE的字符串
- 发现系统限制
- 在请求包中删除system身份的限制
- 构造有效载荷实现远程代码执行
杂项(Misc)挑战
0x01-Join our Discord!
- 简单flag: swampCTF{w3lc0m3_t0_th3_swamp}
0x02-Pretty Picture: Double Exposure
- 解题方法:
- 使用图片叠加技术
- 参考工具: https://samdeleon.github.io/UnhidingImages.html
- flag: swampCTF{m3ss4g3s_0r_c0d3_c4n_b3_h1dd3n_1n_1m4g3s}
0x06-Blue goblob
- 解题步骤:
- 枚举blob存储
- 利用匿名访问权限
- 直接读取flag文件
0x03-Read Between .tga Lines
- 新型题目类型:
- 两张图片横向截取混淆
- 需要分离和重组图像数据
0x04-Lost In Translation
- 解题工具:
- 使用Whitespace语言分析工具: https://naokikp.github.io/wsi/whitespace.html
- 运行环境: NodeJS 18.17.1+
0x05-Messages From The Stars
- 音频分析:
- 检查音频左右通道差异
- 提取隐藏数据
- 解码获取flag
开源情报(OSInt)挑战
0x01-Party Time!
- 解题方法:
- 使用在线EXIF查看器: https://www.strerr.com/cn/exif.html
- 提取图片地理位置信息
- flag: swampCTF{29.65,82.33}
0x03-Party Time! Level 2
- 关键发现:
- 检查图片评论区域
- flag: swampCTF{Checkers_Yum}
0x02-On Thin ICE
- 解题步骤:
- 转换数据得到hex值
- 拆分翻译得到"第八步 自由"
- 识别为《使命召唤7》中的台词
- 定位到沃尔库塔的前苏联监狱
- 在Google地图查找当地溜冰场
取证(Forensics)挑战
0x01-Homework Help
- 解题方法:
- 扫描磁盘恢复已删除文件
- flag: swampCTF{n0thing_i5_3v3r_d3l3t3d}
0x02-Planetary Storage
- 解题步骤:
- 提取payload部分
- 进行两次base解码
- flag: swampCTF{1pf5-b453d-d474b453}
0x03-Preferential Treatment
- 攻击方法:
- 从SMB流量导出配置文件Groups.xml
- 提取cpassword密文
- 使用微软公开的AES 256私钥解密
- 替代工具:
gpp-decrypt "dAw7VQvfj9rs53A8t4PudTVf85Ca5cmC1Xjx6TpI/cS8WD4D8DXbKiWIZslihdJw3Rf+ijboX7FgLW7pF0K6x7dfhQ8gxLq34ENGjN8eTOI=" - flag: swampCTF{4v3r463_w1nd0w5_53cur17y}
0x04-MuddyWater
- 解题步骤:
- 搜索STATUS_SUCCESS关键字
- 追踪流提取NTLMv2哈希
- 使用hashcat破解哈希
- 参考链接: https://zhuanlan.zhihu.com/p/52882041
- flag格式: swampCTF{
: } - 示例: hackbackzip:pikeplace
0x05-proto
- 解题要点:
- 分析数据包中的协议
- 识别与服务器的交互模式
- 提取payload部分进行分析
二进制(PWN)挑战
Oh my buffer
- 漏洞分析:
- login函数存在栈任意大小泄露
- reg函数存在0x12字节溢出
- 利用步骤:
- 通过login泄露stack、canary和libc基址
- 通过reg函数构造ROP链
- 覆盖返回地址末位为leave_ret地址
- 进行栈迁移攻击
coredump_GAAS
- 分析过程:
- 从core dump文件恢复可执行文件
- 静态分析发现gets和printf漏洞
- 利用printf泄露libc地址
- 构造ret2libc攻击
- 保护机制: 无canary和PIE
notecard
- 漏洞利用:
- 检查程序保护机制
- 通过用户名泄露code_base
- 利用未检查的负数索引越界修改指针
- 实现任意位置读写
- 读取GOT表获取libc地址
- 将puts改为system
- 布置"/bin/sh"字符串
- 获取shell
- 注意: 远程使用libc2.39
Tinybrain
- 漏洞分析:
- Brainfuck解释器
- 256*2个跳转表无边界检查
- 存在RWX内存段
- 利用步骤:
- 写入shellcode
- 移动ptr到跳转表
- 修改\xff跳转表指向shellcode
- 输入\xff执行shellcode
密码学(Crypto)挑战
crypto1 Rock my Password
- 漏洞类型: 密钥重用
- 解题步骤:
- 分析1184字符的密文
- 使用已知明文m4(同样1184字符)
- 明文和密文异或得到密钥
- 用密钥异或题目密文得到flag
总结与学习要点
-
Web安全:
- 关注现代框架漏洞(如Next.js中间件问题)
- 熟练掌握各种注入技术(XSS, XXE, 反序列化)
- 理解编码差异导致的漏洞(如ISO-8859-1 vs UTF-8)
-
二进制利用:
- 掌握栈迁移等高级ROP技术
- 熟悉从core dump恢复和分析的技巧
- 理解跳转表漏洞的利用方法
-
取证技术:
- 熟练使用各种数据恢复技术
- 掌握Windows系统密码提取方法
- 理解网络协议分析技巧
-
密码学:
- 识别并利用密钥重用漏洞
- 掌握基本的加密分析技术
-
开源情报:
- 熟练提取和分析元数据
- 掌握地理位置信息追踪技巧
- 了解流行文化引用在CTF中的应用
-
杂项技能:
- 掌握隐写术的各种技术
- 了解非常规编程语言(如Whitespace)
- 熟练使用音频分析工具
这份文档全面涵盖了SwampCTF 2025比赛中的各类挑战,从Web安全到二进制利用,从取证技术到密码学分析,每个题目都提供了详细的技术解析和解题思路,可作为CTF训练和网络安全学习的宝贵参考资料。