Lemon's blog

2019安恒七月月赛——MISC

Record my learning process of CTF.

字数统计: 783阅读时长: 2 min
2019/07/16 Share

前言:作为一个小白,感觉安恒的题是真的难,但也要努力复现出来,也可以多学很多东西。

真正的CTFer

在这里插入图片描述
一张图片,还是之前的老思路,winehx查看,binwalk分离等等,但是都没有线索,再仔细观察图片,发现应该是高度被修改了,下面应该还隐藏有图片
在这里插入图片描述
查看一下被修改过后的高度
在这里插入图片描述
这里也不知道图片原高度为多少,就往大的方向整
在这里插入图片描述
我这里直接将05改为了0C,结果过大了在这里插入图片描述
下方有空白,改成0A没有空白了,然后再观察图片,ctrl+左键放大图片
在这里插入图片描述
得出flag,但这没有结束,大师傅告诉我这道题涉及png中CRC检验错误问题,让我拖进Stegsolve就知道有什么问题了,按照大师傅的说法去做,果然打不开
在这里插入图片描述
百度查找,发现了一篇大佬的博客
在这里插入图片描述
这也就是为何提示说png数据有问题的原因了,需要写一个爆破高度的脚本来得出原图的高度,才可以在Stegsolve中打开。
这里搬运大师傅的脚本,目前自己写不出来,只会修改参数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# -*- coding: utf-8 -*-
import binascii
import struct

#\x49\x48\x44\x52\x00\x00\x01\xF4\x00\x00\x01\xA4\x08\x06\x00\x00\x00

crc32key = 0x6F03AD71
for i in range(0, 65535):
height = struct.pack('>i', i)
#CRC: CBD6DF8A
data = '\x49\x48\x44\x52\x00\x00\x05\x1C' + height + '\x08\x06\x00\x00\x00'
crc32result = binascii.crc32(data) & 0xffffffff
# print crc32result
if crc32result == crc32key:
print ''.join(map(lambda c: "%02X" % ord(c), height))

因为我的环境是py3,而大师傅的脚本是py2,直接在线运行即可
在这里插入图片描述
爆出了原图高度,进行修改,Stegsolve打开,即可看出flag在这里插入图片描述

做题感悟:以前做修改宽高的MISC题中,没有想到过这种CRC检验错误的问题,这次做题是真的涨知识。另附上大佬的博客[CTF隐写]png中CRC检验错误的分析

解不开的秘密

在这里插入图片描述
一个加密的word文档,一个十六进制的文件,先从文件入手,HEX->ASCII
在这里插入图片描述
发现是base64,解密
在这里插入图片描述

这是啥。。。,完全没思路,不过还是注意到RealVNC,百度查查,REAL VNC是一款远程控制工具软件。观察到文件中有Password,如果猜的不错,这个密码破解后应该就是word的密码了。
VNC密码破解详解
果然找到了,思路清晰了,只要我们把这个给破解了就可以得出密码了
因为上面博客中的工具实在找不到,就换一种新工具
vncpwd
找到对应目录,输入命令即可得出密码
在这里插入图片描述
打开word
在这里插入图片描述
在这里插入图片描述
回车的标志,把图片拖下去
在这里插入图片描述
这里面肯定隐藏有flag,打开word的隐藏文字,但是不行,那就直接复制出来看看
在这里插入图片描述
即可得出flag

做题感悟:这道题其实不难,但如果没有耐心就看到那个文件就不想继续下去了,果然是涉及各种各样的加密解密,这次又了解了VNC,通过做这两道题,收获很大,继续努力

CATALOG
  1. 1. 真正的CTFer
  2. 2. 解不开的秘密