跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python算法

BaseCTF Week3 Web 与 Misc 解题思路

解析了 BaseCTF Week3 的三道 Misc 题目。第一题通过逆向 Python 像素混淆算法并结合 Stegsolve 工具还原隐藏信息;第二题利用文件扩展名伪装和 foremost 工具分离出压缩包,配合已知密码解压获取 flag;第三题结合兽音翻译与 XOR 异或解密,最后通过修复文件头成功打开图片。重点在于灵活运用隐写术、文件恢复及基础密码学知识。

疯疯癫癫发布于 2026/4/9更新于 2026/7/2433 浏览
BaseCTF Week3 Web 与 Misc 解题思路

BaseCTF Week3 Web 与 Misc 解题思路

本次分享主要涵盖 Week3 的杂项(Misc)部分,涉及隐写、文件恢复及简单的加密算法还原。以下是具体题目的分析与解法。

1. 白丝上的 flag

题目描述: 出题人赠送 flag 时遭遇信号干扰,在不知名小网站找到了写入 flag 前的图片,尝试还原信息。提示 flag 是单色。

附件分析: 附件包含一张图片和一段 Python 脚本 task.py。脚本逻辑是对图像像素进行混淆处理。

from PIL import Image
import sys

def ez_add(a, b, c, d):
    global iv
    h = (a + b + c + d + iv) % 256
    e = b
    f = c
    g = d
    iv = (b + c + d + iv) % 256
    return e, f, g, h

def confuse(data):
    r, g, b, a = data
    for _ in range(8):
        r, g, b, a = ez_add(r, g, b, a)
    return r, g, b, a

def confuse_image(flag):
    global iv
    iv = flag.getpixel((1, 1))[0]
    img = Image.new('RGBA', (flag.width, flag.height))
    for w in range(img.width):
        for h in range(img.height):
            img.putpixel((w, h), confuse(flag.getpixel((w, h))))
    return img

if __name__ == '__main__':
    iv = 0
    flag = Image.open('./de_image.png')
    img = confuse_image(flag)
    img.save()
'en_image.png'

解密思路:

  1. 逆向混淆函数:confuse 本质是加法运算,可以通过减法逆推。注意 iv 初始值来源于原图 (1, 1) 像素的 R 通道。
  2. 利用单色特点:单色图像的 RGB 值相同,这有助于验证还原结果。

还原脚本:

from PIL import Image

def ez_sub(h, e, f, g):
    global iv
    a = (h - e - f - g - iv) % 256
    iv = (e + f + g + iv) % 256
    return a

def unconfuse(data):
    r, g, b, a = data
    for _ in range(8):
        r = ez_sub(r, g, b, a)
    return r, g, b, a

def unconfuse_image(img):
    global iv
    iv = img.getpixel((1, 1))[0]
    flag = Image.new('RGBA', (img.width, img.height))
    for w in range(img.width):
        for h in range(img.height):
            flag.putpixel((w, h), unconfuse(img.getpixel((w, h))))
    return flag

if __name__ == '__main__':
    iv = 0
    img = Image.open('en_image.png')
    flag = unconfuse_image(img)
    flag.save('de_image_decrypted.png')

运行脚本得到 de_image_decrypted.png 后,使用 Stegsolve 查看 red plane 0 层即可发现 flag。

Flag 位置

最终 Flag:BaseCTF{there_1s_the_flag@}

2. 纯鹿人

题目描述: 附件为一个文档,提示中包含 Base64 编码字符串。

解题过程:

  1. 初步尝试:将文档中的表情包保存后用 WinHex 查看,未发现有明显异常。搜索关键词也未发现直接线索。
  2. 格式转换:参考上周类似题目的解法,尝试将文档后缀改为 .zip。
  3. 文件分离:修改后缀后,使用 WinHex 检查文件头,确认存在 ZIP 结构。使用 foremost 工具进行分离,提取出新的 zip 文件。
  4. 解压获取:分离出的 zip 文件密码为 ikunikun,解压后即可获得 flag。

注:关于此类隐写技巧,可参考相关 CTF-MISC 隐写总结文章。

3. 我要吃火腿!

题目描述: 附件包含一个文本文件和一个图片文件,文本内容看似乱码或特殊符号。

解题过程:

  1. 文本解码:文本内容为兽音咆哮体,通过在线兽音翻译工具解码,获得关键信息。
  2. XOR 解密:根据提示,对图片文件进行 XOR 异或操作。密钥为 Ham 对应的十六进制 [0x48, 0x61, 0x6D]。

解密脚本:

def xor_with_ham_decrypt(input_file, output_file):
    ham_bytes = [0x48, 0x61, 0x6D]
    with open(input_file, 'rb') as f:
        data = bytearray(f.read())
    for i in range(len(data)):
        data[i] ^= ham_bytes[i % 3]
    with open(output_file, 'wb') as f:
        f.write(data)

# 执行解密
xor_with_ham_decrypt('Ham.jpg', 'Hamorl.jpg')
  1. 文件头修复:解密后的 Hamorl.jpg 文件头损坏,无法直接打开。手动修改文件头为 JPEG 标准头 ffd8ffe1 并保存。
  2. 查看结果:修复后的图片正常显示,从中提取 flag。

至此,本周 Misc 部分的解题思路已整理完毕。遇到文件损坏类问题时,记得先检查文件头是否被篡改。

目录

  1. BaseCTF Week3 Web 与 Misc 解题思路
  2. 1. 白丝上的 flag
  3. 2. 纯鹿人
  4. 3. 我要吃火腿!
  5. 执行解密
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Claude 接入 MiniMax AI 大模型配置指南
  • Phi-3-vision-128k-instruct 开源镜像:支持国产昇腾/寒武纪平台适配指南
  • Llama-Factory 自定义损失函数实现指南
  • ArcGIS SDE 数据库锁表解锁实战指南
  • Nginx-1.28.0 Windows 版安装包及核心功能说明
  • AI前端之路:差异、技能栈与从零进阶
  • Java 线程与锁:JLS 第 17 章核心机制解析
  • 基于腾讯云部署 OpenClaw 并接入飞书指南
  • Vitis AI 模型 FPGA 部署实战:从训练到板端推理
  • Swin Transformer 架构解析及在 UCI-HAR 行为识别中的应用
  • Whisper-large-v3 常见问题解析与语音识别避坑指南
  • 国内大模型公司面试经验与考点总结
  • 后仿真 SDF 反标常见 Warning 分析与处理指南
  • AI 四大核心技术详解:LLM、Agent、RAG 与 Skill
  • Python 学习路线与经典书籍推荐:从入门到高级开发
  • 本地使用ComfyUI运行Stable Diffusion 3.5
  • 无人机遥感航拍巡检数据集 无人机遥感图像识别 无人机视角山区泥石流和滑坡图像识别数据集-数据集第10067期
  • 秋田中文离线地图 App 上线
  • RCTF 2025 Web 题目解题思路与 Payload 分析
  • 大模型基本概念解析与分类发展

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online