WriteUp
- 功夫秘籍
- Paint&Scan
涨姿势
- 64格
- A记录
- 有趣的文件
- deeeeeeaaaaaadbeeeeeeeeeef-200
功夫秘籍
解题思路
rar(或者说图片)底部发现key,base64和栅栏
WriteUp
首先把rar仍HxD里面,发现其实是张png图,而且底部还有一个key
先把后缀改回png,得到了上面的第一张图片,然后把key用base64解码
这看着像栅栏密码,解一下试试
发现一个疑似flag,直接提交不行,原来只要提交大括号里面的就ok了
Paint&Scan
解题思路
坐标都有了,直接画图
WriteUp
from PIL import Image, ImageDraw
import sys
images = Image.new('RGB',(280,280),'#FFFFFF')
imagesDraw = ImageDraw.Draw(images,'RGB')
re = open('Paint&Scan.txt','r')
for n in re.readlines():
n = n[1:len(n)-2]
k = n.split(',')
k[0] = int(k[0])
k[1] = int(k[1])
imagesDraw.point(tuple(k),'#000000')
images.save('out.png')
得到的二维码
64格
解题思路
其实是把自己给绕进去了,64进制非得拆成两个8进制。。
WriteUp
把gif解压出来后放到HxD里面发现缺少头部,补全就可以看到完整的gif
这里说说是怎么绕进去的吧,当时这64格首先想到的是国际象棋,国际象棋从下往上,从左往右分别是1-8和A-H,然后在这里我脑子里就冒出了两个8进制的想法,8 x 8等于64嘛,有了这个先入为主的想法后就在错误的路上越走越远了。。
接下来是正解,先把gif分解成一帧一帧,记录下对应小黄人的位置
打开浏览器,搜索64进制可以看到这两张图
把刚才记录的小黄人的位置在六十四卦幻方配数图里面一一对应,取得相应的数字,然后把相应的数字在第二张图里取得对应的符号,最终得到:
'Q1RGe2FiY19kZWZfZ30'
这个时候可以拿去解base64了,末尾记得补全 = 号
涨姿势点
哈哈,奇怪的先入为主
A记录
解题思路
解密数据,Wireshark
WriteUp
cap文件先用aircrack看看
可以知道是WPA加密的,ESSID为0719,那么尝试爆破
像这种简单密码随便找个字典应该都有,爆破顺利进行
得到密码后用airdecap-ng解密数据
解密后得到shipin-dec.cap,用Wireshark查看即可
涨姿势点
aircrack-ng , airdecap-ng 以及Wireshark的组合使用,尤其是之前未使用过的airdecap-ng。
同时也对抓包,解包,分析的过程有比较系统的理解,即:aircrack-ng抓包,分析出加密方式和ESSID,并且爆破密码,然后由airdecap-ng进行解包,最后由相应的分析工具如Wireshark进行数据分析
有趣的文件
解题思路
弄清是什么文件的数据就没问题了
WriteUp
很明显的,前面的7位是偏移,后面的是数据。那么先把数据放到HxD里面再动手
re = open('raw.txt','r')
wr = open('output.txt','w')
for n in re.readlines():
wr.write(n[8::])
然后猜测是什么文件,这里又犯了先入为主的错误,一开始就认定是缺少文件头,然后就将各种格式的文件头往上套,结果,当然是没结果
正确做法应该是网上搜索特征值
可以发现在7-zip相关论坛有相关的帖子,那么可以猜测这是7-zip压缩文件。
最简单的验证方法,自己用7z压缩几个文件,看看文件头是否一样
源文件
test_1
test_2
从对比可以发现,这确实是7-zip文件,但是缺少了 37 7A 然后每4个数据中前2位和后2位对调位置
那么只要把位置再对调回来就可以了
re = open('output.txt','r')
wr = open('7z.txt','w')
for n in re.readlines():
s = ''
f = 0
while f <= 35:
line = []
line.extend(n[f+2:f+4:])
line.extend(n[f:f+2])
for k in line:
s += k
s += ' '
f += 5
wr.write(s+'\n')
生成7z文件后得到一张图片
HxD中可以发现一个key,base64解码即可
涨姿势点
其实这道题应该可以解出来的,只不过又是先入为主导致在错误的路上越走越远。。
deeeeeeaaaaaadbeeeeeeeeeef-200
解题思路
分辨率
WriteUp
按照惯例Binwalk 和 HxD先查看,然而都没有发现特殊信息,就是很正常的一张图片
那么猜测是图片本身的信息被修改了,在用HxD仔细查看可以发现如下信息
这说明图片是有iPhone5拍摄的,那么图片会不会被裁剪过呢?先查查iPhone5的摄像头信息
可以发现iPhone5的最高分辨率是3264x2448,对比一下图片的分辨率信息可以发现图片的分辨率为3264x1681
综上可以判断图片被“裁剪”过,将分辨率改回来即可得到原尺寸的图片
涨姿势点
1. 图片分辨率数据的位置
2. 改分辨率数据造成图片伪裁剪达到隐藏数据的目的