图片隐写

博客中题目文件下载地址:
https://home.mycloud.com/action/share/db1ed206-5f81-4d3a-b4be-865c5fe78a2c

图片 TIFF

题目文件:ada.jpg 使用 binwalk 分析图片中的信息如下:

avatar

发现在图片中有 zip,文件和 TIFF 信息。zip 压缩包解压需要密码。查看一下 TIFF 信息,打开图片的详细信息部分,查看照片的相机信息,发现十六进制字符串,转换为字符串为 sdnisc_2018 即为压缩包密码,解压压缩包得到 flag
进制转换工具推荐:co0ontty.github.io/things/cyberchef.htm

PNG-IHDR 隐写

题目文件:2.png 该图片,在 windows 下面可以正常打开,在 LINUX 下却无法打开,则判断可能是通过修改 PNG 的长宽高实现的隐写。
使用工具打开图片,分析文件头种 IHDR 部分
avatar
IHDR 后的部分,前 4 bytes 为 PNG 图像的宽度,接下来的 4 bytes 为 PNG 图像的长度
通过 windows 打开图像可以发现,图片的宽度大于长度,所以将长度修改与宽度相等,得到答案
avatar

百里挑一(EXIF)

首先使用 wireshark 导出 http 文件,发现有一部分图片,使用脚本分理处图片中的 flag 发现只有一半。 使用 wireshark 筛选 ftp 数据。 avatar

发现文件使用的为被动模式传输,传输端口为 38x256+111 = 9839(传输文件使用的端口) 更改筛选条件为 tcp,端口为 9839 avatar

追踪 PSH,ACK 流,导出原始数据为 jpg 文件格式(其他流同上步骤) avatar

使用脚本调用 exiftool 分析得到答案

#coding=UTF-8
import os

imgs = os.listdir('.')

imgs = [img for img in imgs if '.jpg' in img]

for img in imgs:
    exif_dict = dict()
    exif = os.popen('exiftool ' + img).read()
    exif = exif.split('\n')
    for ex in exif:
        ex = ex.split(':')
        if len(ex) == 2:
            exif_dict[ex[0].strip()] = ex[1].split()
    if 'XP Comment' in exif_dict:
        print(exif_dict['XP Comment'])

outguess

攻防世界 misc-avatar outguess -r lamb.jpg -out 获得 flag

图片分离拼接

xctf glance-50 工具:imagemagick 分离:

ffmpeg -i glance.gif frames/frame_%05d.png

拼接:

montage frames/*.png -geometry +0+0 -tile `ls -l frames | wc -l`x1 flag.png 

压缩包

Foremost 分离图片

题目文件:foremost.jpg
使用 binwalk 进行分析,发现图片中隐藏了另一个图片 avatar
使用 foremost 命令进行分离
avatar
avatar
成功分离出包含 flag 的图片
avatar

grep “flag” -r

题目文件:zip 根据题目文件名字猜测,通过增加后缀变成压缩包来解压。
解压后发现有很多文件,使用查找文件内容命令查找 flag

grep "flag" -r /Users/co0ontty/Downloads/眼见非实/

发现 flag 在/word/document.xml 文件中
avatar

掩码攻击

适用于知道部分密码进行压缩包破解 屏幕快照 2019-04-16 20.11.29.png 红线部分为密码格式,前 6 位为 meimei 后四位随机

流量分析类

wireshark

需要分析登录信息,使用条件”http.request.method==POST”进行过滤得到答案

其他

路由器配置文件 config.bin

题目文件:config.bin 使用 RouterPassView 查看 config.bin 得到答案