图片隐写
博客中题目文件下载地址:
https://home.mycloud.com/action/share/db1ed206-5f81-4d3a-b4be-865c5fe78a2c
图片 TIFF
题目文件:ada.jpg 使用 binwalk 分析图片中的信息如下:
发现在图片中有 zip,文件和 TIFF 信息。zip 压缩包解压需要密码。查看一下 TIFF 信息,打开图片的详细信息部分,查看照片的相机信息,发现十六进制字符串,转换为字符串为 sdnisc_2018 即为压缩包密码,解压压缩包得到 flag
进制转换工具推荐:co0ontty.github.io/things/cyberchef.htm
PNG-IHDR 隐写
题目文件:2.png
该图片,在 windows 下面可以正常打开,在 LINUX 下却无法打开,则判断可能是通过修改 PNG 的长宽高实现的隐写。
使用工具打开图片,分析文件头种 IHDR 部分
IHDR 后的部分,前 4 bytes 为 PNG 图像的宽度,接下来的 4 bytes 为 PNG 图像的长度
通过 windows 打开图像可以发现,图片的宽度大于长度,所以将长度修改与宽度相等,得到答案
百里挑一(EXIF)
首先使用 wireshark 导出 http 文件,发现有一部分图片,使用脚本分理处图片中的 flag 发现只有一半。 使用 wireshark 筛选 ftp 数据。
发现文件使用的为被动模式传输,传输端口为 38x256+111 = 9839(传输文件使用的端口) 更改筛选条件为 tcp,端口为 9839
追踪 PSH,ACK 流,导出原始数据为 jpg 文件格式(其他流同上步骤)
使用脚本调用 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 进行分析,发现图片中隐藏了另一个图片
使用 foremost 命令进行分离
成功分离出包含 flag 的图片
grep “flag” -r
题目文件:zip
根据题目文件名字猜测,通过增加后缀变成压缩包来解压。
解压后发现有很多文件,使用查找文件内容命令查找 flag
grep "flag" -r /Users/co0ontty/Downloads/眼见非实/
发现 flag 在/word/document.xml 文件中
掩码攻击
适用于知道部分密码进行压缩包破解 红线部分为密码格式,前 6 位为 meimei 后四位随机
流量分析类
wireshark
需要分析登录信息,使用条件”http.request.method==POST”进行过滤得到答案
其他
路由器配置文件 config.bin
题目文件:config.bin 使用 RouterPassView 查看 config.bin 得到答案