CTFshow——DJBCTF MISC(2021年大吉杯)

只会做MISC的小菜鸡来写一下WP,分享一下解题过程(都是大师傅萌带dd见的世面)
狸题就狸谱,看都没看,后来发现看了也看不懂
在这里插入图片描述

十八般兵器

感谢@i_kei师傅供题
刀、枪、剑、戟、斧、钺、钩、叉、鞭、锏、锤、戈、镋、棍、槊、棒、矛、耙
hint1:JPHS
hint2:用Notepad++打开试试?
hint3:前十种兵器对应10进制,后八种对应8进制
hint4:压缩包密码在图片头里(话说这个hint应该上错题了吧)

下载附件得到rar,添加一下rar后缀打开,需要密码,备注栏写着2021牛年大吉,尝试当做密码解压,解压成功。
解压得到18兵器图
在这里插入图片描述根据hint1可以知道这个是JPHS隐写,这里要用JPHS05来查看,以棒为例,打开图片后点击seek,然后选择保存地址
在这里插入图片描述这里出题人阴了一手,但是细心还是能发现的。

将18个兵器后面藏的数字一次写下来,并且按照题目给的顺序排列。再加上提示说前10个是10进制,后8个是8进制,可以得到两组数字:

1361 4399 9223 1635 2581 7639 7978 5870 0963 935 30440 53720 46055 62766 10613 34635 37242 30575
两组分别合并 得到
136143999223163525817639797858700963935
3044053720460556276610613346353724230575

分别转16进制转文本得到
flag{CTFshow_10_
bA_Ban_b1ng_Q1}
合起来flag{CTFshow_10_bA_Ban_b1ng_Q1}

请问大吉杯的签到是在这里签吗

flag为全部小写字母,没有空格
@感谢cheyenne师傅供题

这道题简单到离谱,但是想复杂了导致中午才做起
下载附件,得到一张二维码,扫码得到

请问DJB CTF比赛的签到处在什么地方

尝试foremost分解,发现分解出压缩包,里面还有一个二维码
如此套娃,一共分解出3张二维码,加上第一张一共4张,后三张内容分别是

扫描二维码关注公众号,回复: 12270668 查看本文章

2:还要往前走……是不是在这个路口转弯呢?
3:好像没有岔路了,一直往前走试试看
4:咦,这是死胡同,是不是哪里走错路了

通过分析可知,第二张二维码提示我们停下来找别的方法。用万能(bushi)的stegsolve查看一下通道,发现有LSB隐写,但是无法扫码
由于是LSB隐写,加上stegsolve可以随机颜色的特性,可以很轻易的发现:
在这里插入图片描述
这明显是猪圈密码
在这里插入图片描述
对照解码得到flag:
flag{dajiadoaidjb}

牛年大吉

题目下载 蓝奏云下载地址:https://wws.lanzous.com/i1Ac0jybrvc 百度云下载地址: https://pan.baidu.com/s/14EXw7U4w0Am0oP_xRXfbqQ 提取码:ns2k
感谢i_kei师傅供题
hint:不要格式化哟,看看引导扇区是不是丢东西了

这道题几乎都是非预期解,但是很多人都卡在了密码那块,其实就是因为提示的位置错了,第一题的hint4应该是这道题的hint。

下载附件,得到一个压缩包,解压得到一个vhd磁盘
直接扔进winhex取证得到!lag.7z和一张图片
(其实出题人本意是叫大家修好引导扇区)

这里我拿爆破软件爆出来密码是00,但是解压发现密码错误,结合hint2,解压密码在图片头里,看看图片头呢

并没有发现什么,最后才知道密码竟然是png文件头:89504E47
我直接好家伙。
解压得到flag

flag{CTFshow_The_Year_of_the_Ox}

拼图v2.0
没啥好说的,动态flag也抄不到,手撸一个小时20分钟(虽然有不止5个人因为忘记续环境导致环境过期哈哈哈哈哈哈哈哈哈哈哈)
最后的截图我只截了这个
在这里插入图片描述
flag{339b8654-e00a-44a8-95dd-76e736-e16c6a}

碑寺六十四卦

这是从一处寺庙遗址中得到的碑文拓片,你能从中发现什么吗? https://ctfshow.lanzous.com/iSFN4kn5jna
感谢@cheyenne师傅供题
hint1:为什么碑文上空白的地方,拓片上却是黑黑一片呢?
hint2:如果说每个方块对应一个字符,可是替换表在哪里?

我只能说,这道题脑洞,好大大大大,和bugku的贝氏六十四卦一样大!
首先得到一张卦图,这里我在网上找了原图发现出题人将图片反了色,但是当时还没意识到什么。直到查看grey bits发现
在这里插入图片描述
但是并没有发现什么
在这里插入图片描述
难道路走错了?
反复推敲提示,猜测可能是需要将颜色反色再查看
在这里插入图片描述
保存此通道,再查看最低位,发现PNG文件头

在这里插入图片描述
赶紧save bin下来看看

去掉开头4位
在这里插入图片描述
发现图片是这样的
在这里插入图片描述
看着眼疼,用PS放大看
在这里插入图片描述
诶?我寻思着这和卦不是对应的吗,然后卦上有数字,我就照着数字抄了下来

5 37 26 32 8 44
11 30 53 27 39 34
51 3 52 46 18 33
46 40 7 56 40

然后想着是base64,去对照一下
在这里插入图片描述
果不其然,从左往右从上往下解得:
FlagIsLe1bnizD0uShuoH4o
所以flag是flag{Le1bnizD0uShuoH4o}

这种方法其实是最慢最笨的方法,还有一种很快的方法但是我大意了弄反了顺序就没找到。

拿第一个为例

如果将白看成0,黑看成1.从上往下可以发现是101000,如果对照卦图知道了这一位是5,很容易发现如果将101000反过来当做000101就是5,将前面的也这样做发现从下往上读的二进制转换成10进制正好就是我们读出来的数字。所以就很容易得到所有的数字,最后得到flag。

AA86

在一台旧电脑上(大约在16位操作系统还能跑的年代)发现了这个文件,挖掘它的秘密
感谢@ThTsOd师傅供题

附件去官网拿吧
首先保存附件
根据题目描述,16位能跑的年代、一台旧电脑,可以推断要去找一台虚拟机来测试。
搜索引擎稍微搜一下可以发现对应的是DOS系统,上google搜关键字"AA86 DOS"可以发现第2个链接打开后就看到我们题的那种类型了。
在这里插入图片描述尤其这句话
在这里插入图片描述
继续搜索发现,DOS系统中可以执行.bat .com
这里使用MSDOS来尝试
虚拟机安装一个MSDOS7.1,并且将我们得到的附件分别改成.bat和.com放入MSDOS中(怎么放自行百度)
分别运行可以发现.com就是我们要找的flag
在这里插入图片描述
最后得到flag{https://utf-8.jp/public/sas/index.html}

访问一下flag中的网址,好家伙,太冷门了吧,师傅是怎么找到的

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210124101643756.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyODgwNzE5,size_16,color_FFFFFF,t_70
色图生成器

欢迎使用色图生成器
已获取flag,正在为您生成色图……
色图生成完毕,准备传输
正在传输色图……
ERROR! 检测到屏蔽系统,传输被中断
准备为色图打码
正在生成马赛克……
打码完成,准备添加冗余数据……
添加完成,正在打包……
打包完成,准备传输……
传输完成,请点击下方链接下载您的色图
感谢@cheyenne师傅供题
hint1:颜色很重要,但github更重要
hint2:第一步图片很重要,txt不重要
hint3:看一看马赛克部分的RGB值,有没有想到什么呢

下载附件,拿到一个
color.txt和setu.png
根据提示应该先看马赛克的RGB值,查看使用脚本来看一下

from PIL import Image
im = Image.open(‘setu.png’)
pix = im.load()
width = im.size[0]
height = im.size[1]
demo=open(‘rgb1.txt’,‘wb+’)
for y in range(height):
for x in range(width):
r, g, b = pix[x, y]
rgb=r,g,b
demo.write(str(rgb)+"\n")

用notepad++打开,找到第一次出现“马赛克”的地方
在这里插入图片描述
看起来像是ASCII,转ASCII发现82对应R、97对应a、114对应r、33对应!
综合来看,是Rar! 说明出题人将Rar文件隐藏到了图片中,经过计算可以得到“马赛克”的范围
high=(80,420) wide=(50,995)
然后想办法提取出来,可以发现,RGB中必定有一个是0,所以可以(R+G+B)/2的方式来提取。

from PIL import Image
im=Image.open(‘setu.png’)
fh=open(‘1.txt’,‘w’)
i=0
for h in range(80,420,20):
for w in range(50,995,5):
color=im.getpixel((w,h))
t=(color[0]+color[1]+color[2])/2
print t
i=i+1
fh.close()

这样就可以得到之前说的rar了
打开rar
在这里插入图片描述右边暂时还看不懂,解压png之后查看文件尾,发现末尾有PK头foremost分解得到加密的压缩包

在这里插入图片描述根据hint1和之前png的名字 可以到github上面搜Cloakify,是一种加密
在这里插入图片描述发现正好可以解释压缩包里面的单词了
将压缩包里面的单词添加到txt里,然后去解密

在这里插入图片描述可以得到压缩包密码D3arD4La0P1e45eD4iDa1Wo

解压得到pyc文件 在线的网站反编译发现编译不完整,这里在kali中使用
uncompyle6
具体指令是

uncompyle6 setushengchengqi.pyc > test.py

得到py文件
然后因为才大一没有怎么学python,看了正则发现就是匹配之前图片的flag{D???},但是需要本地爆破,需要在后面写一个解密脚本。这里我找了一位大师傅帮忙写了一下,因为我实在不会写。在这里感谢一下南方师傅

import re
import hashlib
list = [‘139’, ‘102’, ‘162’, ‘24’, ‘85’, ‘57’, ‘160’, ‘37’, ‘239’, ‘200’, ‘154’, ‘30’]
for a in range(48,123):
for b in range(48,123):
for c in range(48,123):
for d in range(48,123):
flag = ‘flag{D’ + chr(a) + chr(b) + chr© + chr(d) + ‘}’
if re.fullmatch(’^flag{[A-Z][0-9a-zA-Z]{4}}$’, flag):
m = hashlib.md5()
m.update(flag.encode(‘ascii’))
m = m.hexdigest()
j = 0
for i in range(0,24,2):
p = int(list[j])
if int(m[i:i+2], 16) - p > -5 and int(m[i:i+2], 16) - p < 5:
j = j + 1
continue
elif i == 22:
print(flag)
break
else:
break

原理:
有四个大色块 RGB每个都是加密的 所以有4*3=12的加密数据
分别对应RGB值。
在这里插入图片描述

得到flag{D4n1U}

对排版不是很感兴趣,所以排版比较混乱,望谅解。

猜你喜欢

转载自blog.csdn.net/qq_42880719/article/details/113068933