Writeup 4 强网杯 2019 强网先锋打野

Writeup 4 强网杯 2019 强网先锋打野

题目信息

  • 题目名称:强网先锋打野
  • 所属赛事:强网杯 2019
  • 题目类型:Misc(隐写)
  • 分值:0(一血:大方子)
  • 解决人数:1828
  • Flag 格式 :qwxf{}
  • 题目提示:你了解 CTF 圈的实时动态么?

解题思路概述

这是一道经典的 图片 LSB 隐写(Least Significant Bit Steganography) 题目。

核心思路:

  1. 附件解压后得到一张 BMP 图片
  2. 使用 zsteg 工具扫描图片的 LSB 数据
  3. 直接在输出中找到明文 flag

详细解题步骤

第一步:检查附件

附件解压后得到 瞅啥.bmp:

bash 复制代码
root@Rambo:/瞅啥# file 瞅啥.bmp

输出:

复制代码
瞅啥.bmp: PC bitmap, Windows 3.x format, 1224 x 689 x 24, image size 2530010, resolution 2834 x 2834 px/m, cbSize 2530064, bits offset 54
root@Rambo:/瞅啥#

关键信息:

  • 格式:BMP(Windows 3.x)
  • 尺寸:1224 × 689
  • 位深:24 位(RGB 三通道,每通道 8 位)

为什么 24 位 BMP 适合 LSB 隐写:

  • 每个像素有 R、G、B 三个通道
  • 每个通道有 8 位,可以修改最低位(LSB)而不影响视觉
  • 24 位 BMP 的 LSB 可以藏大量数据

第二步:安装 zsteg

zsteg 是 Ruby 编写的 PNG/BMP LSB 隐写检测工具:

bash 复制代码
apt install ruby ruby-dev -y
gem install zsteg

第三步:运行 zsteg

bash 复制代码
root@Rambo:/瞅啥# zsteg 瞅啥.bmp

输出:

复制代码
[?] 2 bytes of extra data after image end (IEND), offset = 0x269b0e
extradata:0         .. ["\x00" repeated 2 times]
imagedata           .. file: OpenPGP Public Key
b1,lsb,bY           .. <wbStego size=0x78 ext="\x00\x8E\xEE" data="\x1Ef\xDE\x9E\xF6\xAE\xFA\xCE\x86\x9E"... even=false hdr=nil enc=nil mix=nil controlbyte=nil>
b1,msb,bY           .. text: "qwxf{you_say_chick_beautiful?}"
b2,msb,bY           .. text: "i2,C8&k0."
b4,msb,bY           .. file: OpenPGP Public Key
b2,r,lsb,xY         .. text: "UUUUUU9VUUUUUUUUUUUUUUUUUUUUUU"
b2,g,msb,xY         .. text: ["U" repeated 22 times]
b2,b,lsb,xY         .. text: ["U" repeated 10 times]
b3,g,msb,xY         .. text: "V9XDR\\d@"
b4,r,lsb,xY         .. text: "222\"#33\"#33\"#33\"3222333\"3#321"
b4,g,lsb,xY         .. text: "3\"\"\"\"\"3###33##3#UDUEEEEEDDUETEDEDDUEEDTEEEUT#!"
b4,g,msb,xY         .. text: "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"DDDDDDDDDDDD\"\"\"\"DDDDDDDDDDDD*LD"
b4,b,lsb,xY         .. text: "gfffffvwgwfgwwfw"
root@Rambo:/瞅啥#

第四步:提取 flag

在输出中,直接找到:

复制代码
b1,msb,bY           .. text: "qwxf{you_say_chick_beautiful?}"

Flag:

复制代码
qwxf{you_say_chick_beautiful?}

zsteg 输出解读

zsteg 会尝试各种 LSB 组合,每行的格式是:

复制代码
<通道>,<位序>,<扫描顺序>  .. <数据类型>: <内容>
字段 含义 示例
b1 第 1 个颜色通道(通常是 R) b1, b2, b3, b4
lsb / msb 最低有效位 / 最高有效位 b1,lsb 表示 R 通道的 LSB
bY 按位 Y 顺序扫描 bY、xY 等
text: 检测到可读文本 text: "qwxf{...}"
file: 检测到文件特征 file: OpenPGP Public Key

本题关键行:

复制代码
b1,msb,bY  .. text: "qwxf{you_say_chick_beautiful?}"
  • b1:第 1 个颜色通道(R 通道)
  • msb:最高有效位(Most Significant Bit)
  • bY:按位 Y 顺序

关键工具:zsteg

什么是 zsteg

zsteg 是一个 PNG/BMP 隐写检测工具,用 Ruby 编写,专门用于检测图片中的 LSB 隐写数据。

常用命令

bash 复制代码
# 基本扫描
zsteg image.png

# 扫描所有可能的组合(更全面,但更慢)
zsteg -a image.png

# 只看 text 类型的结果
zsteg image.png | grep "text:"

# 搜索特定字符串
zsteg image.png | grep -i "flag\|qwxf\|ctf"

支持的格式

  • PNG(主要支持)
  • BMP(支持)
  • 其他格式(部分支持)

安装方法

bash 复制代码
# Ubuntu/Debian
apt install ruby ruby-dev -y
gem install zsteg

# 或者用 Docker
docker run -it --rm -v $(pwd):/data zsteg /data/image.png

关于题目提示

题目提示:"你了解 CTF 圈的实时动态么?"

这个提示是干扰项 ,玩的是 2019 年强网杯期间流行的 "蔡徐坤打篮球" 梗:

  • 附件图片是蔡徐坤的照片
  • Flag 内容 you_say_chick_beautiful? 也是这个梗的延续
  • 但真正的解题关键 是 zsteg 工具,与提示无关

CTF 题目中常见的干扰项:

  • 与题目无关的提示
  • 故意误导的线索
  • 需要结合"实时动态"(梗、新闻)才能理解的提示

这类题目的通常解题思路

🎯 图片隐写类题目

核心思想:flag 藏在图片的像素数据里,而不是文件内容里。

常见隐写方式:

方式 工具 说明
LSB 隐写 zsteg、stegsolve 修改像素最低位
MSB 隐写 zsteg 修改像素最高位
颜色通道隐写 stegsolve 在单个颜色通道藏数据
Alpha 通道隐写 stegsolve 在透明度通道藏数据
EXIF 隐写 exiftool 在图片元数据藏数据
文件附加 binwalk、foremost 在图片末尾附加文件
DCT 隐写 steghide、outguess 在 JPEG 频域藏数据
调色板隐写 stegsolve 在 GIF/PNG 调色板藏数据

🎯 通用解题流程

  1. 检查文件类型 :file image.bmp
  2. 检查元数据 :exiftool image.bmp
  3. 检查文件附加 :binwalk image.bmp
  4. 搜索字符串 :strings image.bmp | grep -i "flag\|ctf"
  5. LSB 扫描 :zsteg image.bmp(PNG/BMP)
  6. JPEG 隐写 :steghide extract -sf image.jpg
  7. 可视化分析 :stegsolve image.png
  8. 尝试密码 :如果有密码提示,用 steghide 或 outguess

🎯 本题的关键技巧

  1. 不要被提示误导:"你了解 CTF 圈的实时动态么?"是干扰项
  2. 先试 zsteg :BMP/PNG 图片先跑 zsteg,它会自动尝试各种 LSB 组合
  3. 看 text: 行 :zsteg 输出中,text: 后面是可读字符串,直接找 flag
  4. -a 参数 :如果基本扫描没结果,用 -a 扫描所有组合

最终 Flag

复制代码
qwxf{you_say_chick_beautiful?}

附录:完整命令序列

bash 复制代码
# 1. 检查文件类型
file 瞅啥.bmp

# 2. 安装 zsteg
apt install ruby ruby-dev -y
gem install zsteg

# 3. 运行 zsteg
zsteg 瞅啥.bmp

# 4. 找到 flag
# b1,msb,bY  .. text: "qwxf{you_say_chick_beautiful?}"

总结

题目:强网杯 2019 强网先锋打野

类型:Misc / 图片隐写

关键工具 :zsteg

解题关键:

  1. 附件是 24 位 BMP 图片
  2. 用 zsteg 扫描 LSB
  3. 在 b1,msb,bY 通道找到明文 flag
  4. 提示"你了解 CTF 圈的实时动态么?"是干扰项(蔡徐坤梗)

Flag:

复制代码
qwxf{you_say_chick_beautiful?}

经验总结:

  • BMP/PNG 图片隐写先试 zsteg
  • 不要被题目提示误导,直接看工具输出
  • zsteg 的 text: 行是 flag 最常出现的地方

Rambo

2026年10月02日

🎉🎉🎉

相关推荐
hengdonghui8 小时前
Writeup 4 NUAA 2017 robots
android·ctf·re
hengdonghui17 小时前
Writeup 4 CSS CTF Semester 2 2026 - Lamp Drill
ctf·re
hengdonghui21 小时前
Writeup 4 CSS CTF Semester 2 2026 Cryptography Chrono I
ctf·维吉尼亚密码·crypto
hengdonghui1 天前
Writeup 4 CSS CTF Semester 2 2026 - Dead Faction Servers
ctf·osint
hengdonghui2 天前
Writeup 4 2020 - 之江杯 - 工控现场的恶意扫描
wireshark·ctf·流量分析
hengdonghui3 天前
Writeup 4 2020 - 之江杯 - 异常的工程文件
ctf·工控
hengdonghui3 天前
Writeup 4 2020 - 之江杯 - 注册表分析
注册表·ctf
kali-Myon13 天前
分享一个网络安全 AI 工具导航项目 SecSkills
安全·ai·github·ctf
蒲公英eric14 天前
从旧接口泄露到 OAuth 保护:DVWA API 模块完整漏洞分析教程
web安全·ai·ctf·dvwa·ai安全·api模块