一、图片高度隐写
1.核心原理:修改图片宽高以隐藏或露出关键信息。
PNG、JPG等图片文件头部有专门的字段定义了图像的宽度和高度。出题人可能会修改这个值,让图片在查看器中只显示一部分(看起来正常),但真正的Flag信息隐藏在未被显示的区域。CRC校验是一个重要的判断依据。
2.常用工具:010 Editor, WinHex, 脚本。
010 Editor:直接打开PNG,如果左下角提示CRC is unmatches,就说明宽高度很可能被改过。在IHDR块中找到Height字段直接修改(比如改成1000),重新打开图片就能看到下方区域。
CRC爆破:如果改得太大导致StegSolve无法打开,就需要写脚本爆破出精确的原始宽高。原理是利用已知的CRC值,遍历所有可能的宽高组合计算CRC,匹配则说明找到了正确的尺寸。
3.解题思路
1. 用010 Editor打开图片,检查CRC报错。
2. 若报错,尝试修改宽高值,或利用CRC爆破原始值。
二、字符替换隐写
1.核心原理:将信息转换成另一种看似无意义的符号系统,达到隐藏或混淆的目的。
AAencode (颜文字):这是最常见的一种,把JavaScript代码编码成由(゚Д゚)゚这类字符组成的颜文字。解码很简单,直接复制到浏览器的Console(控制台)运行,或者找个在线AAencode解码站即可 。
当铺密码:利用汉字的笔画(出头)数量来对应数字。比如“由”字有1个出头,“中”有2个,遇到这种奇怪的汉字组合,就要考虑是不是当铺密码的转换了。
2.常用工具:CyberChef, 在线解码网站, 自定义脚本
3.解题思路
1. 识别密文特征(如大量日文符号)。
2. 使用对应解码工具或脚本恢复原始内容。
4.实际操作
题目1:[SUCTF2018]single dog
下载图片后用binwalk分析,在文件末尾发现了一个ZIP压缩包
使用foremost分离文件
得到一个txt文件,都是一些符合,类似与颜文字
首先考虑使用在线网站解密(https://fly63.com/tool/aaEncode/)
flag{happy double eleven}
题目2:[BJDCTF2020]藏藏藏
图片隐写,使用foremost分离文件
福利.docx是一个二维码,可先将其保存为图片,然后使用工具QR_Research进行扫描
flag{you are the best!}