持续创作,加速成长!这是我参加「掘金日新方案 · 10 月更文应战」的第25天,点击检查活动概况

引文

之前复现了CTFSHOW新人杯的WEB方向部分标题,今天就复现一下MISC为主的标题,可能有些读者不太明白MISC方向是什么意思,简略来说便是”杂项”,包含:隐写,压缩包处理,流量剖析,进犯取证等但不限于这些,下面给带给大家我做这些题时分的思路。

misc1 哇库哇库

提示:暗码纯大小写字母

图片.png

下载附件得到以上内容,压缩包暗码在注释中(哇库哇库(小写)),得到解压暗码:

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″得到图片:

图片.png

misc2 显卡坏了

图片.png

下载附件得到上面图片,模糊看到红色的字符串,猜想是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:

图片.png

misc3 简略暗码             

附件是一个加密的word文件,由于标题没告诉咱们暗码信息,置疑是一个压缩包伪加密,关于伪加密的信息能够参阅:

blog.csdn.net/xiaozhaidad…

这儿咱们按照修正方式将对应的09改为00

图片.png

可是word里面只有一张图片:

图片.png

天、黄、荒,三个字周围分别用红笔标注了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))

图片.png

发现压缩包里有许多这种古怪的txt文件,有做题经验的人就会猜到是CRC爆炸,由于每个文件字节很小,所以咱们能够进行爆炸来解决。这儿放一个项目地址,能够用到这个来做:

github.com/theonlypwne…

用法如下:

py -3 crc32.py reverse 0x123456

之后标题差不多就完成了。

osint1 天上的路

类似于一道社工标题,给咱们一个图片寻觅拍摄地址:

图片.png

提取图里的重要信息,发现摩托、彩虹路,百度查找了一下发现神女湖驿站比较契合,是标题答案。

osint2 都能够黑

小菜鸡从外地玩耍回来想在家里看看电影,并且对深挖电影细节非常着迷,这是小菜鸡看到的电影截图,你能帮小菜鸡挖掘一些电影细节嘛?

flag格局:ctfshow{主角地点团队姓名_主角团队登上的邮轮姓名}

图片.png

一开始的时分我发现船的姓名,但查找后没有什么发现,百度识图一下找到匹配的图片,出自电影:《我是谁》,所以咱们寻觅百度百科,找到主角地点的团队姓名: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等部分的标题,收成还是挺大的,有爱好的小伙伴能够去官网尝试做一下,如果喜爱本文无妨一键三连支持一下。