今天是2026年7月29日

分享一下这两天的学习情况,昨天和今天都在学习MISC(杂项),感觉很杂,有各种题型,有编码解密、流量分析,文字与图片隐写等,学习记录如下:

MISC

笔记:

常见文件头/尾

文件类型

文件头(Hex)

文件尾(Hex)

备注

JPEG/JPG

FF D8 FF

FF D9

头后紧跟 E0E1

PNG

89 50 4E 47

AE 42 60 82

固定结构

GIF

47 49 46 38 (GIF8)

00 3B

注意是 38 39 61 或 38 37 61

BMP

42 4D

无固定尾

文件大小由头部决定

PDF

25 50 44 46 (%PDF)

25 25 45 4F 46 (%%EOF)

版本号紧跟其后,如 2D 31 2E 34

ZIP

50 4B 03 04

50 4B 05 06

尾部是目录结束标记

RAR

52 61 72 21 (Rar!)

52 61 72 21 1A 07 00

需注意版本

7z

37 7A BC AF 27 1C

无固定尾

头部特征明显

DOC/XLS/PPT (旧版)

D0 CF 11 E0

无固定尾

OLE 复合文档结构

DOCX/XLSX/PPTX

同 ZIP 50 4B 03 04

同 ZIP

实际是压缩包,可改后缀为 zip 解压

ELF (Linux)

7F 45 4C 46

固定

Mach-O (Mac/iOS)

FE ED FA CECE FA ED FE

32/64 位区分

MP3 (含ID3v2)

49 44 33 (ID3)

无固定尾

纯音频无尾

MP4/MOV

00 00 00 xx 66 74 79 70

无固定尾

ftyp

隐写术

  1. 图片隐写

  • LSB(最低有效位):常见于 PNG/BMP/WAV,用 zstegStegSolve(Data Extract)检测。

  • LSB 数字水印/盲水印:频域隐写(DCT),可用 BlindWaterMark 工具(需要 Python 脚本)。

  • 高度/宽度爆破:图片显示不全/花屏时,用 010 Editor 修改 PNG 的 IHDR 块(高度宽度)或 JPEG 的 SOF 标记,常用工具 tweakpng

  1. 音频隐写

  • 频谱图(Spectrogram):用 AudacitySonic Visualiser 切换频域视图,隐藏二维码或文字。

  • 波形摩斯电码:长音短音波形明显,直接目视解码。

  • MP3stego:专用工具 MP3Stego,需输入密码解密。

  1. 文档/文本隐写

  • 零宽字节:\u200b(ZWSP)、\u200c(ZWNJ)、\u200d(ZWJ)、\ufeff(BOM)。在线解密:https://www.motobit.com/util/charset-codepage-unicode.asp 或使用 zwnb.py 脚本。

  • 字体/颜色隐写:白色字体藏字、红绿蓝通道(RGB)单色隐藏。

  • NTFS 数据流(ADS):用 notepad file.txt:secret.txtdir /r 查看。

  1. 其他常见隐写算法(完善)

  • F5 隐写:针对 JPEG 的 DCT 系数,修改其量化系数,工具为 F5-steganography(Java 版)。

  • OutGuess:也是 JPEG 隐写,保留统计特征,使用 outguess-0.13 命令行。

  • Steghide:支持 JPEG/BMP/WAV,常用命令:

    • 嵌入:steghide embed -cf pic.jpg -ef secret.txt

    • 提取:steghide extract -sf pic.jpg -p password

常用工具

工具名

用途

Binwalk

分析/提取固件和文件中的隐藏压缩包(binwalk -e file

Foremost

按文件头/尾进行文件分离恢复

dd

手动切割文件偏移量(dd if=a.jpg of=b.zip skip=100 bs=1

Zsteg

检测 PNG/BMP 的 LSB 隐写、zlib 压缩数据

StegSolve

图像通道分析(RGB 平面、LSB 异或)

010 Editor

十六进制编辑器,带模板(Template),可解析复杂文件结构

Exiftool

查看/修改图片元数据(Exif、GPS、缩略图)

Audacity

音频波形/频谱分析

CyberChef(魔法厨子)

万能编码解码(Base/Hex/Unicode/Rot13/正则,极强)

QR_Research

二维码识别/纠错/反色

流量分析(Wireshark)

常用显示过滤器:
IP 过滤
ip.addr 192.168.1.1 # 所有涉及该IP的包
ip.src_host 192.168.1.1 # 源IP(注意 src_host 比 src 更快)
ip.dst_host 8.8.8.8
协议过滤
tcp.port 443 # TCP端口
udp.port 53 # UDP端口
tcp.stream eq 0 # 追踪 TCP 流索引 0(右键点击 Follow -> TCP Stream)
HTTP 专项
http.request.method "GET"
http.response.code 200
http.host contains "example"
http.request.uri contains ".php"
http.cookie contains "PHPSESSID"
DNS 专项
dns.qry.name contains "google"
dns.flags.response 0 # 只过滤请求包
长度与载荷过滤
frame.len > 1000 # 过滤大包
tcp.payload contains "flag" # 过滤 TCP 载荷中带 flag 的包(注意编码)
逻辑运算符
ip.src 1.1.1.1 and tcp.dstport 80
not arp

三大 Webshell 流量特征

特征维度

蚁剑 (AntSword)

冰蝎 (Behinder)

哥斯拉 (Godzilla)

最显著特征

请求体中包含 @ini_set("display_errors","0") 强制禁用报错

密钥协商:首次请求返回 16 位 MD5 密钥(响应体前 16 字节)

Cookie 强特征:Cookie 中的 PHPSESSID 后常跟特定中文名(如 M9jE4f)或固定魔术头

User-Agent (UA)

默认多为 Mozilla/5.0 (Windows NT 10.0; Win64; x64) 常见浏览器,但不固定

默认 UA 较为老旧(v2 为 Java/1.8.0_***,v3/v4 可自定义)

默认 UA 随机性较强,但若未改,常含有 Java/WinHttp 特征(弱特征)

Accept 头

常包含 */*,且携带 X-Requested-With: XMLHttpRequest

常包含 Accept: */*,请求头顺序固定

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

请求体 (Payload)

明文/Base64编码,特征明显包含 @evalbase64_decode$_POST 等敏感函数,极易检测

强加密(AES):请求体全为不可读二进制或长 Base64,无明文函数名(这是最大优势)

强加密(AES/XOR):请求体为乱码,但末端常有特定的 魔术字节填充(如 PHP 版末尾常补 %00

响应体

明文返回目录列表或命令执行结果,常见 drwxr-xr-x 等 Linux 目录格式

响应体前 16 字节为 MD5 密钥(用于加密后续通信),内容全加密

响应体为加密密文,开头常有固定字符(如 Java 版前 16 位为随机密钥)

动态特征

支持自定义编码器,但 <@ini_set 这一规避报错的手法几乎每个请求都有

存在 密钥重协商 机制(每 5-10 分钟或连接断开时重新下发密钥)

无密钥协商过程,直接使用预设密钥加解密(即写死在脚本中)

MISC 常见编码

  • Base 家族:Base16(Hex)、Base32、Base64、Base85(ASCII85)、Base91。

  • Unicode 变种:\uXXX&#xXXXX;(HTML实体)、URL编码(%XX)。

  • JS 混淆:JJEncode(仅符号)、AAEncode(颜文字)、Obfuscator。

  • 与佛论禅 / 核心价值观编码:特殊中文编码,使用专用脚本解码。

  • MD5 / SHA / CRC32:注意爆破弱口令,或利用 hashcat 破解。

练习(一部分,有一些没来得及写)

1.拿到一个文件

放到010中看一下

发现这是个zip压缩包,改个后缀,拿到压缩包

从里面解压出三个文件,分别是

第一个是一段base64编码,解码拿到第三段flag:

第二个文件放到010中看了一下,发现这还是一个压缩包:

修改后缀得到第二段flag:

第三个图片文件放到010中发现底部藏了一个zip压缩包:

把它提出来,得到一个压缩包,里面有flag3,但有密码:

用工具进行暴力破解,得到密码为1192s,成功拿到完整flag:

2.拿到一个word文档:

打开找到两段flag:

在属性-->详情中找到第三段flag:

拿到完整flag:

3.给了一个压缩包,里面是一个音频文件

用工具打开这个音频文件,再把模式调成频谱图,就能看到flag:

4.拿到一个压缩包:

解压提示需要密码,放到010中看一下:

发现了疑似伪加密的数据,把01改成00:

成功修复,解压后出现一个jpg图片,在010中找到了可能是提示的数据:

用工具对图片进行F5隐写提取,成功拿到flag:

5.拿到一个压缩包:

打开有两个文件:

解压后把后缀改为png和rar得到一张图片和一个rar压缩包:

打开压缩包需要密码:

那图片肯定有密码线索,对图片进行隐写提取得到密码:6DFUP

解压压缩包,得到一个流量包:

用wireshark打开发现一个可疑数据包:

分析这个数据包得到flag:

6.拿到一个图片

用工具进行ssl隐写提取:

拿到一串base64编码:TGl0Q1RGe2xzYl8xc19m dW5fdzF0aF9iNHMz XzY0fQ==
进行解码得到flag:

7.拿到一个文件

直接用010查看发现是一个压缩包,在底部还有一串base64编码

改后缀和解码后拿到里面的文件,是一张图片和一个文本,文本里有隐藏的字符

可以用snow隐写工具提取,但还不知道密码,密码应该就在图片里,用工具提取图片水印,得到密码

密码是:Th1si4st8eK3y,用snow隐写工具直接解码得到flag:SYC{Ma1by_y0u_w1ll_l1k3_sn0w}

8.拿到一个压缩包

打开发现只有两张图片可以解压,另外两个文件要密码

拿到图片用工具进行双图盲水印解密,解密后看到passwd.txt的密码:2s68cc3x0

打开passwd.txt,里面是一大串base64编码,解码得知隐写术,在对base64隐写进行解密,拿到flag.txt的密码:

最后打开flag.txt拿到flag:

就到这里了,感谢您的阅读。