第三届红帽杯线上初赛Misc题之Advertising for Marriage

除校赛外初次参加ctf比赛…我好菜orz
不过还是很开心体验了回生活,收获了个中二狗和荷兰猪的双人战队哈哈哈
好了,来讲讲这道征婚题目吧,真的哭了出来,明明就差一点…
对了,想做这道题的可以去守夜人ctf平台
第三届红帽杯线上初赛Misc题之Advertising for Marriage_第1张图片
首先看下载过来的文档格式,发现是raw,然后百度了下发现是拍照格式,下载了acdsee发现打不开
于是我用linux虚拟机binwalk了一下它
第三届红帽杯线上初赛Misc题之Advertising for Marriage_第2张图片有这么多东西,估计是个系统盘,然后想到了内存取证
内存取证入坑指南(从这里汲取下营养)
用volatility来读取
然后接下来进行一系列花里胡哨的操作,也就每个指令都试了一次吧,这里打出有用的指令
(为了方便打字我把征婚那个重命名为了123.raw)
volatility -f 123.raw imageinfo
猜测镜像系统
第三届红帽杯线上初赛Misc题之Advertising for Marriage_第3张图片在第四行处可以看出是winXPSP2x86

然后volatility -f 123.raw --profile=WinXPSP2x86 pslist
查看正在运行的exe
第三届红帽杯线上初赛Misc题之Advertising for Marriage_第4张图片
这里看到notepad
在这里插入图片描述
打开
第三届红帽杯线上初赛Misc题之Advertising for Marriage_第5张图片
找到hint是Need money and girlfirend…最后女朋友还打错了= =
我也需要啊啊啊啊啊!!!
继续找。忽然突发奇想看看他cmd的使用记录
第三届红帽杯线上初赛Misc题之Advertising for Marriage_第6张图片
看到了flags,但还是不知道有什么用…
试试导出截图volatility -f 123.raw --profile=Win7SP1x64 screenshot --dump-dir=./

第三届红帽杯线上初赛Misc题之Advertising for Marriage_第7张图片
看不出来是个什么东西。
后来想了想出题人的出题顺序,看进程时间,发现画图的mspaint耗费时间长,应该有东西。
所以导出dump,改为data试试用gimp打开。
这里有详细的volatility 加gimp使用指南
然后试试偏移。。。。
两个小时后搞出来三四张有意义的图
第三届红帽杯线上初赛Misc题之Advertising for Marriage_第8张图片第三届红帽杯线上初赛Misc题之Advertising for Marriage_第9张图片
第三届红帽杯线上初赛Misc题之Advertising for Marriage_第10张图片然后这里看到了PJCX,联想到之前hint的前四位是????
然后这一步栽了,没想到这是倒过来的菠萝,我还以为是什么远古浮游生物= =
翻转过来以后可以看到是b1cx
然后得出b1cxneedmoneyandgirlfirend
然后知道了hint继续用内存取证看看有什么东西
搜索下图片什么的,jpg png txt都试试,然后
volatility -f 123.raw – profile=WinXPSP2x86 filescan|grep png
在这里插入图片描述
找到桌面有张菜的vegetable图片,提取出来
在这里插入图片描述
应该是被修改过宽高,这里用linux是打不开的,会提示crc校验错误,可以用windows打开(windows忽略crc校验);但是还是放不进steg里,所以还是要写脚本爆破png正常的高度。
放上脚本(根据网上的脚本修改的)python脚本

# -*- coding: utf-8 -*-
import binascii
import struct
 
#\x49\x48\x44\x52\x00\x00\x01\x1F\x00\x00\x01\xA4\x08\x06\x00\x00\x00
 
crc32key = 0xB80A1736
for i in range(0, 65535):
    height = struct.pack('>i', i)
    data = '\x49\x48\x44\x52\x00\x00\x01\x1F' + height + '\x08\x06\x00\x00\x00'
 
    crc32result = binascii.crc32(data) & 0xffffffff
 
    if crc32result == crc32key:
        print''.join(map(lambda c: "%02X" % ord(c), height))

第三届红帽杯线上初赛Misc题之Advertising for Marriage_第11张图片
成功得出了0000000D然后用winhex修改第二行内码中的高(众所周知png图片第二行是宽高)
第三届红帽杯线上初赛Misc题之Advertising for Marriage_第12张图片??这谁看的清…
然后。。。。。
hhhh这里要感谢荷兰猪 凌晨四五点用她的生命在尝试看清那个flag,成功从flag中看出了小人和葫芦(没错第一个就是个大葫芦不是英文字母)所以不可能是正确flag。
我也试着用python脚本去除马赛克,然后结果如下…
看我菜的两眼发光!
第三届红帽杯线上初赛Misc题之Advertising for Marriage_第13张图片
让我感受到了生命的美好和暴打出题人的必要性hhhh

然后想到了lsb隐写,用steg来打开
第三届红帽杯线上初赛Misc题之Advertising for Marriage_第14张图片然后我还把每个0和1自由组合点了好久,6种模式也点了好久,没有在文本里找到flag,果然是菜蒙蔽了我的双眼
然后百度了好多png的lsb隐写终于找到
第三届红帽杯线上初赛Misc题之Advertising for Marriage_第15张图片然后用cloacked-pixel测试了下(此时比赛已经结束一小时,累计32小时没睡的我还是不甘心)附上上图这个网址(点击超链接)
有png的隐写知识
https://github.com/livz/cloacked-pixel
这个是文章里推荐的脚本,类型和这个差不多,刚好都需要密钥,hint总不可能没用吧!
下载过来的脚本里有使用方法第三届红帽杯线上初赛Misc题之Advertising for Marriage_第16张图片第三届红帽杯线上初赛Misc题之Advertising for Marriage_第17张图片然后会报错,需要安装matplptlib这个绘图库
这个是详细介绍安装画图模块的
https://www.cnblogs.com/-1307/p/6529269.html
这里吐槽一句,python3应该是自带这个库,但这脚本是用python2写的= =
然后由于我是在linux里安装最后报错权限不足,老样子命令前面加sudo就好了,像这样。
第三届红帽杯线上初赛Misc题之Advertising for Marriage_第18张图片又是熟悉的3kb/s,无语凝噎
在这里插入图片描述
终于下好了,运行又发现在这里插入图片描述还要安装这个库…继续
https://blog.csdn.net/superrunner_wujin/article/details/65945452
这个网站完美解决,其实也就一条命令sudo apt-get install python-tk 解决
再次运行成功
在这里插入图片描述出来了1.txt
打开后里面是一段base64(末尾两个=)
第三届红帽杯线上初赛Misc题之Advertising for Marriage_第19张图片拿出我好用的计算器解base64(当然在线解码也可以啦,不过要考虑到以后可能断网比赛的情况,每种密码的脚本或者本地工具最好也能备一份)
第三届红帽杯线上初赛Misc题之Advertising for Marriage_第20张图片
可以看到输出有提示是维吉尼亚解码,然后不会写脚本…我好菜,于是百度个在线网站,推荐中文网站,因为打开速度快…
然后密钥应该还是那个hint(毕竟没别的了啊)
发现
第三届红帽杯线上初赛Misc题之Advertising for Marriage_第21张图片
那就把密钥b1cxneedmoneyandgirlfirend中的1去掉吧
得到
第三届红帽杯线上初赛Misc题之Advertising for Marriage_第22张图片flagisd7f1417bfafbf62587e0
嗯哼,flag出来了。
总结:misc果然是玄学,百度大法好(・∀・(・∀・(・∀・*)
下次比赛再接再厉吧!果然肝的还是不够= =

你可能感兴趣的:(ctf,misc,第三届红帽杯线上赛,内存取证,lsb隐写)