BugKu-杂项(Misc)的部分Writeup(持续更新)

第一次写博客,有不好的地方,麻烦大佬指正,我用了些时间把BugKu里的Misc的解题思路和套路整理了一下,发出来分享
各位小可爱们,右边有目录可以快速跳转哦

1.签到题

给了一张二维码,扫描关注就得到了flag
在这里插入图片描述

2.这是一张单纯的图片

题目给了一张图片,下载下来,然后用Winhex打开,发现末尾处有一段Unicode编码

key{you are right}

在这里插入图片描述
然后打开一个在线解码的网站解码就可以得到flag在这里插入图片描述

这里放出解码的网址:https://tool.chinaz.com/tools/unicode.aspx
附件下载地址

3.隐写

把题目给的rar下载下来,解压后得到一张图片,先用了Winhex打开,发现没什么提示,然后又放到kali里面用binwalk检测,没有隐藏文件,最后想到了修改图片的高度

修改图片的高度和宽度,binwalk分析一下发现什么也没有藏,那就可能是图片被改“短”了(一般改成和宽度一样,把高去用八进制转换成十六进制,然后去winhex里面找到相同的十六进制,替换成想要的高的十六进制,改宽的原理相同)

先右键查看一下文件的高和宽
在这里插入图片描述
发现宽是500,然后拿去网站转化为16进制在这里插入图片描述
16进制为01f4,到winhex里面去搜索01f4
在这里插入图片描述
我们把高01A4改成和宽一样的01F4,然后保存退出,重新打开图片,就可以看到flag了

附件下载地址

4.telnet

下载zip,解压出来一个数据包,用wireshark打开
筛选telnet协议,然后直接右键追踪TCP流,就可以直接看到flag了

附件下载地址

5.眼见非实(ISCCCTF)

下载文件,名字是zip,不管他,直接丢到winhex里面看在这里插入图片描述
发现还真的是zip文件,错怪他了,修改后缀为zip,打开之后发现里面有个docx文件,解压出来打开在这里插入图片描述
打开报错,联想题目,眼见非实,丢到winhex里面去看
在这里插入图片描述
发现也是一个zip文件,修改后缀为zip打开,能解压出来一个文件夹,flag在\眼见非实\word\document.xml文件下,问我怎么知道的?一个一个试出来的

附件下载地址

6.啊哒

下载zip文件,能解压出来一个表情包,不多说,直接丢到winhex里面查看在这里插入图片描述
发现末尾有flag.txt字样,猜测是个压缩包,改后缀后打开压缩包,发现有flag被加密了,一开始猜测是伪加密,但测试后,发现不是,那就只能去找密码了,找了半天没找到,最后抱着试一试的态度,点开了图片的详细属性,发现密码就在里面.....
在这里插入图片描述
不难看出是一个16进制,直接16进制转文本,得出密码在这里插入图片描述
输入密码解压,得到flag

在线解密网站:在线16进制转文本
附件下载地址

7.又一张图片,还单纯吗

下载下来,丢到winhex里面无果之后,在linux里面使用命令binwalk查找隐藏文件,发现很多隐藏文件

可以用binwalk -e 图片路径 或者 formost 图片路径 的方法把里面的东西分离出来
不知道是不是我操作问题,我用binwalk分离不出来,所以就用了fomost

在这里插入图片描述
分离出来之后,会在当前目录下生成一个文件夹,在里面能看到flag

附件下载地址

8.猜

下载图片,是个半人脸的照片,丢到winhex和linux里面一顿操作,什么都没有发现o(╥﹏╥)o,然后重新看了看题目,感觉是靠这半张脸去猜明星,直接用百度搜图或者谷歌搜图在这里插入图片描述
发现是刘亦菲,按照题目要求格式提交即可

附件下载地址

9.宽带信息泄露

下载下来发现是个bin文件,丢到winhex里面看了一番,无果后百度了一下bin文件用什么软件可以打开,结果发现

.bin 是个万能的后缀,就是说啊,许多软件的作者如果写数据文件的时候(跟我一样)起名困难,很可能不知道该把自己的软件存出来的文件叫做什么格式,于是啊,既然是二进制存储的,不如就叫 .bin 吧。
所以,当你看到一个 .bin 格式的文件时,一方面可以先在心里默默咒骂一下软件作者,另外一方面,可以视图通过 magic number 猜测这是个什么文件。unix 下的 file 程序就是专门通过文件头部信息跟 magic number 来猜测文件格式的。猜到之后,就可以试试通过具体的格式是否能够找到对应的软件了。

我有什么好说的呢.......
联想题目,应该是路由器的配置文件,用routerpassview软件打开,题目要求提交用户名,所以搜索字段为username
在这里插入图片描述
把username所对应的val提交即可

routerpassview这个软件,火绒会报毒,如果要保险起见,可以去虚拟机运行ヾ(◍°∇°◍)ノ゙
附件下载地址

10.隐写2

下载图片下来,发现这个图片有点猖狂呀!不管他,改盘他还得盘他
用binwalk可以看到有隐藏文件,可以用 binwalk -e 图片路径 分离出来在这里插入图片描述
可以分理处一个flag.rar,和提示.jpg,说解压密码为3位数,直接用ARCHPR破解在这里插入图片描述
成功爆破出密码,密码为:871
解压出3.jpg,用winhex打开,在末尾发现flag,flag被base64加密了,解密即为正确flag

这里给出解密网站:在线base64加密解密
附件下载地址

11.多种方法解决

下载得到一个exe文件,发现运行不了在这里插入图片描述
所以就用Winhex打开,发现格式就是base64转图片的格式
在这里插入图片描述
所以就放到网站里面去转成图片在这里插入图片描述
得到了一个二维码,扫描即可

这里放出转换的网址:base64在线转图片
附件下载地址

12.闪的好快

给了一个gif图,可以用网站把他们分离开来
在这里插入图片描述
菜鸡的我只能一个一个扫了,扫完可以得到flag

这题有点麻烦,就把flag给出来SYC{F1aSh_so_f4sT}
这里给出图片分离的网站gif分离
附件下载

13.come_game

打开zip解压出来一个exe文件,双击打开,发现是一个自己以前玩过的游戏在这里插入图片描述

以前就把我玩吐了,这次又尝试了上百条命,没过关......

玩了几条命后,发现没用,就退出游戏了
回到游戏文件夹,发现游戏创建了两个文件在这里插入图片描述
有个叫save的,猜测里面是关卡数
在这里插入图片描述
把4改成5,重新进游戏,发现还真的是关卡数,得到flag
在这里插入图片描述

附件下载地址

14.白哥的鸽子

下载下来得到一个名叫jpg的文件,先不管他,直接用winhex打开,拉到最后,发现了一串奇怪的字符串
在这里插入图片描述
看这样子,猜测是栅栏密码,就去解密网站解密
在这里插入图片描述
提交发现是错误的,去掉两个@@之后提交

附件下载

15.linux

解压得到一个名叫flag的文件
这道题有多重做法,这里说两种

第一种做法

用cat命令,直接输入cat flag会冒出一大串的字符,拉倒最底下,能发现flag在这里插入图片描述

第二种做法

用strings命令,输入strings flag,能查找flag这个文件里面的所有字符串,同样的,在最后可以发现flag在这里插入图片描述

附件下载

16.隐写3

下载下来得到一张叫dabai的png图片,右键看了属性,发现宽跟高很不匹配,猜测是被改“短”了,所以用winhex打开

图片被改“短”了(一般改成和宽度一样,把高去用进制转换成十六进制,然后去winhex里面找到相同的十六进制,替换成想要的高的十六进制,改宽的原理相同)

做法大致和第3题相同,想知道做法的,跳回去看看就行了,做出来的结果如下图
在这里插入图片描述

附件下载

17.做个游戏(08067CTF)

下载下来发现是个jar文件,玩了一把

注意打开这个文件需要有java的环境

在这里插入图片描述
发现他居然嘲讽我,不可饶恕,必须得盘他
右键用Notepad++打开在这里插入图片描述
第一眼就看到了PK头,直接修改后缀为zip,解压出来三个文件夹

因为zip算法的创始人的名字缩写是PK,所以看到PK就基本可以断定是zip文件了

在这里插入图片描述
flag在cn\bjsxt\plane\PlaneGameFrame.class文件下,因为PlaneGameFram翻译过来是游戏框架的意思,所以用Notepad++打开搜索字符串flag就可以得到flag在这里插入图片描述
这里要注意的是,flag是base64位加密过的,要提交解密后的flag才能得分

base64解密网站

18.想蹭网先解开密码

下载下来得到了一个数据包,再看了看题目的提示在这里插入图片描述
知道了是破解wifi密码,先用软件或者python生成一个11位数的字典
在这里插入图片描述
在kali里面用aircrack-ng -w pass.txt wifi.cap这条命令就可以开始爆破了
在这里插入图片描述在这里插入图片描述
破出来密码为13910407686,按题目要求格式提交即为flag

附件下载

19.Linux2

把题目下载下载,是个文件,放到kali里面用binwalk扫描一下,发现很多隐藏的文件
在这里插入图片描述

用bindwalk -e brave把隐藏的东西分离出来,或者用formost分离出来

进入分离出来的文件夹,找一下,就可以找到flag,flag在_brave.extracted\ext-root\o8\huas.txt文件下
在这里插入图片描述
做法二
根据题目的提示,可以直接用grep命令查找字符串"KEY"在这里插入图片描述

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户

提交即可

附件下载,提取码:s7jy

20.账号被盗了

这道题,我去的时候,网页已经404了........在这里插入图片描述
想知道做法的话,可以去看别人的writeup

21.细心的大象

下载下来是一张图片,结合题目,细心,猜测是右键看图片的详细信息
在这里插入图片描述
果不其然在备注那里有一串疑似base64编码的东西,解密之后是一串疑似密码的字符串
在这里插入图片描述
然后去kali里面用binwalk查看有没有隐藏文件,发现有一个rar的文件然后把他们分离出来
在这里插入图片描述
打开发现是一个加密了的压缩包,那密码肯定就是我们刚刚解密出来的字符串了,解压出来之后,是一张什么提示都没有的图片,猜测是图片被改短了
我们把01A4改成和宽一下的01F4就可以看到flag了
在这里插入图片描述

附件下载

22.爆照(08067CTF)

把图片下载下来,发现是一个动漫图片(手动滑稽)缘什么空的,挺不错的,推荐看看(doge)
不多说了,直接开始做题,我看着题目,一开始还以为是ms08067呢,想了想发现不可能,把他放到kali里面用binwalk查看一下有没有隐藏的文件,发现有东西,把它们分离出来在这里插入图片描述
能分离出来一个zip压缩包,打开发现就一些文件和一个gif动图,叫我慢慢排序在这里插入图片描述
解压出来,用file命令查看了一下,都是jpg文件在这里插入图片描述
那就一个一个改后缀成jpg咯,然后一张一张图片查看,发现88.jpg包含一个二维码
在这里插入图片描述
扫描能得到bilibili,提交发现是错的,猜测是不完全,看了全部图片的详细信息后,发现888图片有备注在这里插入图片描述
拿去base64解码,能得到silisili
然后用binwalk一个一个找,会发现8888的图片有藏一个压缩包
在这里插入图片描述
把他们分离出来,能分离出来一个二维码,扫描能得到panama,其他的图片一切正常, 猜测这三个就是flag的组成,然后结合之前的提示,叫我慢慢排序,多试几次就可以得到flag为flag{bilibili_silisili_panama},提交即可

附件下载

23.猫片(安恒)

下载下来是一个名字叫png的图片,根据以往的经验,改png后缀直接打开在这里插入图片描述
用binwalk分析之后无果,遂用stegsolve打开,并且根据题目给的提示LSB BGR NTFS,设置图片属性
在这里插入图片描述
在这里插入图片描述
把Red Green Blue三项设为0,不显示他们三种颜色,Alpha不用设置,因为它代表了透明度,如果设置为0了,那么图片就看不到了
能看到是一个png的文件,按Save Bin把它保存为png文件,然后把FFFE删去,保留PNG头
打开图片发现是半截二维码
在这里插入图片描述

然后修改图片的高度,关于方法我前面第三题有讲,这里就不再赘述在这里插入图片描述
修改好之后扫描可以得到一个百度网盘下载地址
在这里插入图片描述
下载下来之后,发现怎么样都找不到真的flag,去翻了翻大佬的博客,发现要用NtfsStreamsEditor2这个工具打开才可以看到文件,但是我怎么样都看不到,在此只能搬运这位大佬的博客

在这里插入图片描述
去pyc反编译网站把这个反编译一下可以得到
在这里插入图片描述

写一个解密脚本解决

注意两点 :

encode()只是演示一下ciphertext的由来,也就是演示了如果flag='*******' 加密的过程,让你明白加密过程 然后现在给你一个真的flag的ciohertext 求解flag,解密的脚本一定是按照加密脚本 反过来写 也就是按加密脚本从下往上走。一层层解密。

这里给出解密的脚本

import base64
ciphertext = [
 '96', '65', '93', '123', '91', '97', '22', '93', '70', '102', '94', '132', '46', '112', '64', '97', '88', '80', '82', '137', '90', '109', '99', '112']
def decode():
    flag = ''
    ciphertext.reverse()
    for i in range(len(ciphertext)):
        if i % 2 == 0:
            s = int(ciphertext[i]) - 10
        else:
            s = int(ciphertext[i]) + 10
        s = chr(i^s)
        flag = flag + s
    print(flag)
decode()

在这里插入图片描述

最后得出 flag{Y@e_Cl3veR_C1Ever!}

24.多彩

这玩意儿,要知道口红色号,并且脑洞很大,遂放弃了

25.旋转跳跃

下载题目文件得到一个mp3文件,然后有个提示说key:syclovergeek
可以使用MP3stege来解密MP3文件,进入到MP3stege文件目录下,运行以下命令即可

Decode.exe -X -P syclovergeek sycgeek-mp3.mp3

运行结束后会在文件夹下创建
在这里插入图片描述
打开即可得到FLAG
在这里插入图片描述

26.普通的二维码

下载解压出来是一张二维码图片,扫描可得到
在这里插入图片描述
老规矩,走一套流程,右键属性>winhex>然后binwalk
右键看完没有任何信息,然后用winhex打开
在这里插入图片描述
最后那里有一串奇怪的字符串,仔细查看后发现最高只有7,并没有到8,猜测是八进制,去网站八进制转成字符串,发现三个一组的时候可以转出f,猜测是三个一组转换
在这里插入图片描述
把它们放到一个文件里面,但注意要把@xjseck!删去,然后可以写一个脚本来转换(注意本脚本为Python3.x版本才可运行)

f = open('flag.txt')
temp = []
while True:
    k = f.read(3)
    if k:
        temp.append(k)
    else:
        break

f.close()
for i in temp:
    num = '0o' + i
    num = int(num, base=0)
    num = chr(num)
    print(num, end='')

转换出来的结果如下图所示
在这里插入图片描述

27.乌云邀请码

下载解压得到
在这里插入图片描述
使用winhex和binwalk无果后,用stegsolve打开
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
很明显的低位隐写有东西,明显的lsb隐写,设置之后可以得到flag
在这里插入图片描述

28.神秘的文件

下载得到一个压缩包,解压出来是为两个文件,一个压缩包,一个图片
在这里插入图片描述
打开flag.zip发现,里面文件有加密,并且也有一张名为logo.png的图片
在这里插入图片描述
很明显的明文攻击了,我们使用ARCHPR明文攻击破解

我尝试了好久的时间,怎么都爆破不出来,去百度翻了翻,可能是我版本的问题,所以我就用别人爆出来的密码解压

密码为:q1w2e3r4

解压出来有一个docx的文档,打开得到一张滑稽图片
在这里插入图片描述
ctrl+a全选后复制出来得到了一个假的flag
在这里插入图片描述
然后用binwalk能看到有很多的文件
在这里插入图片描述
把它改成zip后缀后直接打开,在docProps目录下有一个flag.txt打开里面是一串base64加密
在这里插入图片描述
拿去解密可以得到flag
在这里插入图片描述

29.论剑

下载可得到一张图片
在这里插入图片描述
用winhex打开,看到中间有一串二进制在这里插入图片描述
把它8个一组转换为16进制,然后在转换成ascii码,可以得到mynameiskey!!!hhh,肯定有用的

然后我注意到图片的宽高很不平等,猜测是宽高被修改过,遂可以修复一下

不知道怎么修复的小伙伴,可以看看第三题,我那里有讲过

在这里插入图片描述
得到一张图片,但是有一些地方被挡住了,我们应该还有一些线索没有找到,回到winhex,发现紧跟在二进制后面有一串我们比较熟悉的十六进制
在这里插入图片描述
翻了翻记录文件头的小笔记,发现这个头跟7z的文件头很像,所以就修复了一下,修复之后用binwalk看了一下,不出所料,出现了7-zip文件
在这里插入图片描述
我们用dd分离出来
在这里插入图片描述
得到一个压缩包,但是被加密了,解密的密码就是我们之前解出来的那个字符串
在这里插入图片描述
解压出来可以得到一张和题目一样的图片,同样修改一下它的宽高,可以得到如下图片
在这里插入图片描述
然后结合之前的那张图片可以得到Not flag{666c61677B6D795F6E616D655F482121487D}
中间的那串字符是一串bash16加密,解密即可得到flag

Base16编码使用16个ASCII可打印字符(数字0-9和字母A-F)对任意字节数据进行编码。
Base16先获取输入字符串每个字节的二进制值(不足8比特在高位补0),然后将其串联进来
再按照4比特一组进行切分,将每组二进制数分别转换成十进制
然后在下面找到对应的编码串接起来就是Base16编码。
编码 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
字符 0 1 2 3 4 5 6 7 8 9 A B C D E F

在这里插入图片描述

30.图穷匕见

下载下来得到一张图片,用winhex打开,搜索文件尾ffd9可以看到跟在文件尾后面有很多的字符串
在这里插入图片描述
把他们保存下载,然后用16进制转成ascii码,就有思路了
在这里插入图片描述
这一看就知道是坐标,以下有两种做法

第一种、可以用python写个脚本把它画出来,这里我就直接借用一下大佬的脚本了

import  matplotlib.pyplot  as plt
i=0
fig=plt.figure()
with open("text.txt") as f:
	for data in f.readlines():
		data=data.strip()
		data=eval(data)
		plt.scatter(data[0],data[1],c="255",marker=".")
		i=i+1
		print("\r\n[+] Has dealed",i,"lines") 
plt.show()	

最后可以得到一张二维码但是特别慢

第二种、在linux里面用gnuplot工具

在这里插入图片描述
这里需要注意的是,gnuplot一定要把括号换成空,把逗号换成空格才可以识别画图
扫描即可得到flag

31.convert

下载文件得到一长串的二进制字符串
在这里插入图片描述

把它们直接转换为16进制,这里我就写了个python来转换为16进制

f1=open("flag.txt","r")
print(hex(int(str(f1.read()),2)))
f1.close()

在这里插入图片描述
把他们复制到winhex里面
在这里插入图片描述
我们可以发现,他是一个rar文件,把后缀改为rar然后可以解压出来一张图片,图片的详细信息里面有一串base64加密
在这里插入图片描述
解密即可得到flag

32.听首音乐

下载可以得到一个音频文件,题目没有任何提示,我们把它放进Audacity分析一下
在这里插入图片描述
上面那段音频,有短有长有空格,很容易让人联想到摩斯密码,把它们按照顺序一个一个打出来可以得到如下密码:

..... -... -.-. ----. ..--- ..... -.... ....- ----. -.-. -... ----- .---- ---.. ---.. ..-. ..... ..--- . -.... .---- --... -.. --... ----- ----. ..--- ----. .---- ----. .---- -.-.

然后去一个莫斯密码解密的网站解密即可得到flag

在这里插入图片描述

33.好多数组

下载下来得到一堆的数独,自己解出来也没啥用,也没啥思路,这里解直接借用一位大佬的wrtieup了,因为他写的比较详细,链接如下:乔悟空
zip没有后缀,winhex打开,发现确实是zip,修改后缀,解压得到一堆图片,内容是数独
在这里插入图片描述

非常壮观,出题人也是费劲了,这个就是二维码分成了25部分,把有数字的涂黑,拼到一起就能组成一个二维码,思路是看来的,但是怎么才能快速完成这一系列的工作呢,怎么能快速获取黑点呢,全点一遍有点呆吧……

每一个有九行,如果能选某一行的像素点遍历,估计就可以实现了,go,
(n years later……🙄)

他终于来了,全网独家脚本,哈哈哈哈哈哈,可能没人和我这么闲吧哈哈哈哈
我们知道,每个数独有九行,我们要得到的是有哪几行填充了数字,我的思路就是扫描每一格中间的像素,如果是黑色,那就是填充了数字,白色反之
此时文件结构是这样的:

## 此脚本用于从数独图片获取密码,有值为1,无值为0
import os
import cv2
import numpy as np
from PIL import Image

black = (0,0,0) ## 黑色RGB
white = (255,255,255) ## 白色RGB

## 获取给定路径图片的结果数组
def getBin(picPath):
    image = cv2.imread(picPath)
    height = image.shape[0]  ## 图片宽度
    wide = image.shape[1]  ## 图片高度
    formWide = (wide-6)/9  ## 每一格宽度
    res = [] ## 结果数组
    tem = '' ## 暂存数组
    for i in range(9):
        for j in range(wide-6):
            px = image[int(i*(formWide-1)+(formWide/2)), j+3]
            if (px == white).all() and (j+3)%formWide > (formWide*3/4) and (j+3)/formWide > len(tem):
                tem += '0'
            if (px == black).all() and (j+3) % formWide > (formWide/4) and (j+3) % formWide < (3*formWide/4) and (j+3)/formWide > len(tem):
                tem += '1'
        res.append(tem)
        tem = ''
    return res

## 获取整合25张图片,获取最终结果
def getRes():
    tem = [] ## 临时存储返回值
    res = [] ## 存储结果数组
    for i in range(5):
        for j in range(5):
            picPath = 'zip/' + str(i*5+j+1) + '.png' ## 构造文件名
            tem = getBin(picPath)
            if len(res)==0:
                res = tem
            else:
                if len(res)==(i+1)*9:
                    for x in range(len(tem)):
                        res[(i*9)+x] += tem[x]
                else:
                    for x in range(len(tem)):
                        res.append(tem[x])
    return res

resList = getRes()
resImg = Image.new('RGB',(45,45))
## 绘制图片
for x in range(45):
    for y in range(45):
        if resList[x][y] == '0':
            resImg.putpixel((x,y),white)
        else:
            resImg.putpixel((x,y),black)
resImg.save('res.png')

脚本获取的图片还是有一些偏差,因为题目给的图片不规范(不管我的事🥱),我微调脚本之后,得到下图,QR Search竟然扫不出来,但是腾讯QQ可以,我只能说一句马老板🐂🍺哈哈哈哈哈,扫码结果:Vm0xd1NtUXlWa1pPVldoVFlUSlNjRlJVVGtOamJGWnlWMjFHVlUxV1ZqTldNakZIWVcxS1IxTnNhRmhoTVZweVdWUkdXbVZHWkhOWGJGcHBWa1paZWxaclpEUmhNVXBYVW14V2FHVnFRVGs9
base64解码七次后结果:flag{y0ud1any1s1}

34.PEN_AND_APPLE

下载得到一个mp4文件,然后这是一个NTFS的隐写,但我做不出来hhhh,这道题先留着,等我之后会了我再来补上,对不起啦(>人<;)

35.color

下载下来得到一组图片,用StegSolve依次打开查看,可以发现一些英文字母
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
连起来可以组成一句话:Make me tall,意思就是让他变高,那我们可以把他们放到winhex里面去修改他们的高度
在这里插入图片描述
之后可以看到有黑白块在图片的底部
在这里插入图片描述
把他们以颜色转换为二进制,白色转为0,黑色转为1,我们可以拿到七串字符串
在这里插入图片描述
发现横向解密解密不出来,所以就尝试了一下纵向解密,发现当纵向排列的时候,1100110能解出来为f
那我们可以写一个脚本来解密

f1 = '11111111010111101111'
f2 = '11111011111110111111'
f3 = '00001100101010110001'
f4 = '01001010010000001101'
f5 = '11010011011101010111'
f6 = '10011011011010110110'
f7 = '00111001101101111101'
 
flag = ''
 
for i in range(0,20):
    f = f1[i]+f2[i]+f3[i]+f4[i]+f5[i]+f6[i]+f7[i]
    flag += chr(int(f,2))
 
print flag

运行即可得到flag
在这里插入图片描述

36.怀疑人生

下载下来是一个名为zip的文件,把它改后缀为zip打开,能解压出来三个文件在这里插入图片描述

线索一、cfg1.zip

发现zip文件有加密,尝试了一下,发现不是伪加密,看了看题目,并没有给什么提示,所以就直接用字典暴力破解了,我用的字典是archpr自带的字典
在这里插入图片描述
得到解压密码后,解压可以得到一串base64的字符串
在这里插入图片描述
把它拿去解密后,可以得到一串16进制
在这里插入图片描述
再拿去解密,可以得到一个在这里插入图片描述

线索二、ctf2.jpg

用winhex打开,可以发现最后面有一个zip的文件
在这里插入图片描述
把图片后缀改为zip,打开发现需要密码,输入上一个密码发现不行,爆破软件说不是一个加密过的zip,猜测是伪加密,丢进winhex查看,的确是伪加密,把红框里面的01改为00即可
在这里插入图片描述
解压出来是一串我看不懂的东西
在这里插入图片描述
百度查了一下,发现是ook加密,解密可得到第二段的flag(这里的字符串是ook省略没写,可以看出来是ook加密)
在这里插入图片描述

线索三、ctf3.jpg

是一张图片,看起来像一张二维码,但我又觉得不是,看起来太奇怪了,想着怎么修复这张二维码,但是一点办法,一点头绪都没有,就抱着试一试的心态,拿出QQ,扫描二维码,神器的就来了
在这里插入图片描述
wc,它居然扫出来了,不得不说,QQ还是nb的

最后把他们三段拼接起来就是flag了
flag{hackermisc12580}

37.红绿灯

下载下来得到一个GIF的图片,然后用分离工具把他们全部分离出来,能分离出来1168张图片
在这里插入图片描述

观察一下,发现黄灯闪的是最少的,每一个黄灯之前都有8个灯在亮,所以可以联想到二进制
我们可以推测红色和绿色对应二进制0和1,黄色作为分隔,那么久只有两种结果
01100110或10011001,这两种都拿去转换为ASCII码,发现01100110对应为f
在这里插入图片描述
就可以确定绿灯对应0,红灯对应1,把他们全部转换一遍,可以手动转换,也可以写一个python的脚本
这里我就直接搬运这位大佬的脚本了

# -*- coding: cp936 -*-
from PIL import Image
 
savepath='D:\\gif\\'
im=Image.open('D:\\Traffic_Light.gif')
try:
#tell是帧数,而seek是取当前帧数的图片。
  im.save(savepath+'light{0}.png'.format(im.tell()))
  while True:
    im.seek(im.tell()+1)
    im.save(savepath+'light{0}.png'.format(im.tell()))
except:
  pass
 
flag=""
for i in range(1168):
  image=Image.open(savepath+'light'+str(i)+'.png')
  #print image.getpixel((115,55))#输出颜色值
  #print image.getpixel((115,145))
  if image.getpixel((115,55))==251:
    flag+=str(1)
  elif image.getpixel((115,145))==186:
    flag+=str(0)
flag= hex(int(flag,2))[2:-1].decode('hex')#二进制转字符串
print flag

然后即可得到flag
在这里插入图片描述

38.不简单的压缩包

下载下来得到一个加密过的zip文件,里面有一个加密过的swf文件,然而并不知道密码,放进winhex里面去看看
在这里插入图片描述
可以发现最后面有个压缩包,把它手动分离出来,发现分离出来的还是有加密,我以为是伪加密,试了一下,好家伙,直接报错了
在这里插入图片描述
然后去看了看题干,发现并没有什么提示,那就直接爆破呗,爆破出来显示密码是0
在这里插入图片描述
用这个密码解压可以得到一个文档,里面写着一串日文,拿去翻译可以得到提示
在这里插入图片描述
emmmm,这是要爆破死我=-=,没办法咯,那就直接爆破,一下子就爆破出来了,密码是50个a
在这里插入图片描述
用这个密码解压可以得到一个小游戏,可能是我比较菜,玩不通关,然后就去百度怎么破解swf的文件,让我找到了一个工具
在这里插入图片描述
把游戏放进去,可以看到游戏的源码,然后找了一下,在脚本里面能看到一串奇怪的字符串
在这里插入图片描述
把它转为字符串就可以得到flag了
在这里插入图片描述
提交的时候记得把?!符号去掉哦

39.一枝独秀

下载下来得到一个压缩包,然后解压出来是一个jpg文件,但是并打不开,然后用winhex分析,发现它是一个zip文件
在这里插入图片描述
把它后缀改为zip就可以打开了需要注意的是,文件上面有一段没用的文件头需要删除
在这里插入图片描述
删除之后打开,说需要密码,然后就直接爆破密码
在这里插入图片描述
爆破出来密码是12345678,不知道为什么我的爆破不了
在这里插入图片描述
然后解压出来可以看到很多的花的图片,观察了一下,发现就这张图片的大小和别的图片不一样
在这里插入图片描述
发现了一个很像二维码,但又不是二维码的东西
在这里插入图片描述
做到这里我就不会了,就去翻了翻大佬们的博客,发现需要JPHS这个工具
打开工具-open JPEG-打开刚才标记的81号

在这里插入图片描述

Seek–发现需要密码,于是继续观察81号
在这里插入图片描述
右键查看属性得到了主题flowers,可能是密码,填上试试,发现对了,把文件保存下载
然后用winhex打开,能看出来这是一个zip文件
在这里插入图片描述
改zip后缀解压出来能得到一个文档,里面有些文字
在这里插入图片描述
下面那个加密很常见了,是与佛论禅加密,解密一下能得到
在这里插入图片描述
然后再根据题目的提示,拿去栅栏密码解密
在这里插入图片描述
能得到一个HINT,这个明显是一个base64的加密,再拿去解密就能得到flag了
在这里插入图片描述

posted @ 2020-11-10 10:53  北の泉  阅读(634)  评论(0编辑  收藏  举报