持续创作,加速成长!这是我参加「掘金日新方案 · 10 月更文应战」的第25天,点击检查活动概况
引文
之前复现了CTFSHOW新人杯的WEB方向部分标题,今天就复现一下MISC为主的标题,可能有些读者不太明白MISC方向是什么意思,简略来说便是”杂项”,包含:隐写,压缩包处理,流量剖析,进犯取证等但不限于这些,下面给带给大家我做这些题时分的思路。
misc1 哇库哇库
提示:暗码纯大小写字母
下载附件得到以上内容,压缩包暗码在注释中(哇库哇库(小写)),得到解压暗码:
WAKUwaku
hint的内容如下:
wakuwaku
→
ukawukaw
猜想是回转的意思,咱们将第三个文件进行内容回转:
with open('乖女儿', 'rb') as f:
s = f.read()
t = [x // 16 + 16 * (x % 16) for x in s]
with open('乖女儿.png', 'wb') as f:
f.write(bytes(t))
f = open('乖女儿.png', 'rb').read()
res = open('乖女儿.png', 'wb')
res.write(f[::-1])
是PNG的文件尾,所以咱们增加文件头:89504E47,得到一张图片。
咱们再看hint2:
"最近女鹅吃了太多花生,脸都变宽了,所以给她在祖安用 海克斯 科技瘦脸瘦了200,没想到会变成这样"——劳埃德▪福杰
暗示咱们修正宽高,宽度被更改(减了200),所以咱们修正宽高数据,将”00 00 01 42″ 复原至 “00 00 03 42″得到图片:
misc2 显卡坏了
下载附件得到上面图片,模糊看到红色的字符串,猜想是flag,可是需要咱们进行图片修正。简略剖析后发现每十个像素为一行,我看他人WP能够用ps进行手动拼接,但官方供给了脚本,咱们经过脚原本做这一道标题:
import os
from PIL import Image
from PIL import ImageDraw
img=Image.open('flag.png')
outImg=Image.new('RGB',(1500*128,10))
str_strlist = img.load()
for y in range(128):
for x in range(1500):
for z in range(10):
outImg.putpixel((y*1500+x,z),str_strlist[x,y*10+z])
outImg.save('temp.png')
img=Image.open('temp.png')
str_strlist = img.load()
outImg=Image.new('RGB',(1600,1200))
for x in range(1500*128):
for y in range(10):
outImg.putpixel((x%1600,int(x/1600)*10+y),str_strlist[x,y])
outImg.save('solve.png')
脚本的思路是将整张图做成10像素高的一长条,然后按照1600像素宽再拼回去。最终会得到flag:
misc3 简略暗码
附件是一个加密的word文件,由于标题没告诉咱们暗码信息,置疑是一个压缩包伪加密,关于伪加密的信息能够参阅:
blog.csdn.net/xiaozhaidad…
这儿咱们按照修正方式将对应的09改为00。
可是word里面只有一张图片:
天、黄、荒,三个字周围分别用红笔标注了0,3,7暗示了用天地玄黄宇宙洪荒来表示0-7,估测可能在提示咱们八进制。可是除了这个也没有什么东西了,置疑上面这个图片里面有东西,所以咱们将其拖出来剖析:发现尾巴上有附加信息,发现了半字节逆序的504b0304(zip头)。
咱们将其逆序回来,网上找到了一个脚本:
with open('image1.png','rb') as fi,open('aaa.zip','wb') as fo:
b1 = fi.read()[::-1]
bitr = []
for x in b1:
bitr.append(((x>>4)&0xf)|((x<<4)&0xf0))
fo.write(bytes(bitr))
发现压缩包里有许多这种古怪的txt文件,有做题经验的人就会猜到是CRC爆炸,由于每个文件字节很小,所以咱们能够进行爆炸来解决。这儿放一个项目地址,能够用到这个来做:
github.com/theonlypwne…
用法如下:
py -3 crc32.py reverse 0x123456
之后标题差不多就完成了。
osint1 天上的路
类似于一道社工标题,给咱们一个图片寻觅拍摄地址:
提取图里的重要信息,发现摩托、彩虹路,百度查找了一下发现神女湖驿站比较契合,是标题答案。
osint2 都能够黑
小菜鸡从外地玩耍回来想在家里看看电影,并且对深挖电影细节非常着迷,这是小菜鸡看到的电影截图,你能帮小菜鸡挖掘一些电影细节嘛?
flag格局:ctfshow{主角地点团队姓名_主角团队登上的邮轮姓名}
一开始的时分我发现船的姓名,但查找后没有什么发现,百度识图一下找到匹配的图片,出自电影:《我是谁》,所以咱们寻觅百度百科,找到主角地点的团队姓名:clay,船的姓名便是图片里的船的姓名。
crypto1 easy_base
代码:
=0XezFWZfNXafRjNlNXYit3dvh2cmR3Y
通常=是在base最终的,而这个在最前面,置疑被倒序了,用脚本正过来:
import base64
str1 = "=0XezFWZfNXafRjNlNXYit3dvh2cmR3Y"
print(base64.b64decode(str1[::-1]))
crypto2 天知地知
十分困难要到了妹子手机号,却是加密的,怎么办,兄弟们很急,在线等!传闻妹子是佛山的 加密后的手机号: (+86)981935301754
电话号码9开头很古怪。由于我国都是1开头的,电话号码位数为12位,10-1=9,所以被减数为13位,猜想为:
被减数 = 1000000000000
减数 = 981935301754
差 = 18064698246
感觉这一道题很古怪,没有提示咱们需要做减法,脑洞挺大的。
结语
简略做了一下CTFSHOW新人杯的MISC等部分的标题,收成还是挺大的,有爱好的小伙伴能够去官网尝试做一下,如果喜爱本文无妨一键三连支持一下。