zkaq-CTF靶场-Misc+OSINT

zkaq-CTF靶场-Misc+OSINT

1.杂项1:图片隐写

打开后是个图片:ctf-1.jpg

image

下载下来使用kali分析一下,使用 strings命令查看下

1
strings ctf-1.jpg

在结果最后处看到一段Unicode编码内容:

1
key{z-nsdiua}

image

复制出来保存为 1.html使用浏览器打开后发现flag

image

2.杂项2:密文在这里,看看你是否能解开

提示: 重复敲击两次,密码是6位数

描述: M6UUSlt6rxWO328Kez8xXCMd,这是一段RC4加密,但是我总是解不开呢,这时有一个声音在你耳边响起,rtygcvb,ujmko,ujmko,他代表什么意思呢?

RC4有密码,仔细观察,rtygcvbujmko在键盘上是这样的

image

密码可能是:zvvzvv,使用在线解码网站解密得到

http://tool.chacuo.net/cryptrc4

image

随波逐流是:zvvzvvzvvzvv

image

3.杂项3:一段特殊的ascii密文

提示: 为什么我总觉的是ascii

描述: 你的老板给了你一段数字,告诉你这是最高情报。作为侦查员我们要解密出来
83,121,110,116,71,115,121,110,116,136,135,120,135,108,110,126,115,112,63,61,63,62,108,67,63,69,108,76,76,76,76,138,90,113,66,71,112,110,66,62,62,67,112,112,66,111,112,67,113,63,110,114,69,66,65,110,111,111,113,68,61,63,112,69,68,68,68

观察一下前4位:83,121,110,116,这几个数对应的ASCII分别是:print(chr(121))

121==y

110==>n

116==>t

再看flag字符串分别对应的为:print(ord(‘f’))

l==>108

a==>97

g==>103

可以发现 121-108=13、110-97=13、116-103=13

那么 83-13=70,70==>F,找到了规律,这里编写一个脚本处理这一组数据:

1
2
3
4
5
a = [83,121,110,116,71,115,121,110,116,136,135,120,135,108,110,126,115,112,63,61,63,62,108,67,63,69,108,76,76,76,76,138,90,113,66,71,112,110,66,62,62,67,112,112,66,111,112,67,113,63,110,114,69,66,65,110,111,111,113,68,61,63,112,69,68,68,68]
str = ""
for i in a:
str += chr(i-13)
print(str)

得到了:

Flag:flag{zkz_aqfc2021_628_????}Md5:ca5116cc5bc6d2ae854abbd702c8777

MD5只给了部分的密文,那就是使用md5碰撞,写一个碰撞脚本。

但是后面的MD5值似乎不对,只有31位,应该是32位才对,这里改一下题目,a数组最后加一个数字113变成83,121,110,116,71,115,121,110,116,136,135,120,135,108,110,126,115,112,63,61,63,62,108,67,63,69,108,76,76,76,76,138,90,113,66,71,112,110,66,62,62,67,112,112,66,111,112,67,113,63,110,114,69,66,65,110,111,111,113,68,61,63,112,69,68,68,68,113,这样转换后变成:

Flag:flag{zkz_aqfc2021_628_????}Md5:ca5116cc5bc6d2ae854abbd702c8777d

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import hashlib

flag_md5 = 'ca5116cc5bc6d2ae854abbd702c8777d'
strs = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#$%&()*+,-./:;<=>?@[\]^_`{|}~ "
//定义一个包含所有可能字符的字符串,用于生成候选的四字符组合。使用四层嵌套循环,遍历所有可能的四字符组合。
for a in strs:
for b in strs:
for c in strs:
for d in strs:
md5 = hashlib.md5()//创建一个新的 MD5 哈希对象,用于计算当前候选字符串的哈希值。
flag = 'flag{zkz_aqfc2021_628_' +str(a)+str(b)+str(c)+str(d)+'}'//将候选字符串编码为字节,并更新到 MD5 哈希对象中
md5.update(flag.encode())//计算当前候选字符串的 MD5 哈希值,并与目标哈希值进行比较。
if md5.hexdigest() == flag_md5:
print(flag)

最后得出结果:flag{zkz_aqfc2021_628_zxcv}

4.杂项4:一个加密的xlsx表格

提示: 不要只想着破密码 flag格式:flag{xxxx}

描述: 点击传送门下载文件,找到flag

下载下来是个 Excel文件。打开的时候需要密码。

使用 strings工具查看一下文件内容即可找到flag

strings ctf_106_2.xlsx | grep flag

image

5.杂项5:刚刚截获德军的密电

提示: 古典密码学中的内容 flag格式:flagxxxxxx

描述: 刚刚截获了德军的密电,密文很重要,决定着战争的走向。
密电:
FA XX DD AG DD XA FF FF AX DX

提示是古典加密,是个ADFGVX加密

image

使用密码对照表解密:

image

得到了:flagabxxmo

6.杂项6:简单加密

7.杂项7:社会主义核心价值观

8.杂项8:奇怪的短信

9.杂项9:SOS的求救信息

10.杂项10:Base

11.杂项11:这是我最喜欢的女明星

12.杂项12:打由诗

13.杂项13:佛说

14.杂项14:奇怪的Base加密

15.杂项15:跳舞小人

16.杂项16:神秘图片

17.杂项17:可达鸭

18.杂项18:一组神秘的图片

19.杂项19:神奇的压缩包加密

20.杂项20:损坏的png

21.简简单单一张图片(考点:LSB隐写+ROT13解密)

22.嘘~听,是什么声音?(考点:音频DTMF + 九键拼音解密)

23.niu niang分析(wifi流量分析+解密,协议分析)

24.easy_Forensics(考点:内存取证 + 维吉尼亚解密)

25.ez_Misc(零宽字符隐写,APNG分析)

26.ezBMP(图片隐写,stegsolve/CypberChef使用)

27.这是一个不简单的音频(音频二进制隐写)

28.ezEvidence(内存取证,veracrypt解密,twin-hex解密)

29.OSINT - 摄影出片

30.ez_misc2(流量分析,RSA,base解密,棋盘密码)

31.我有一个朋友… (AI攻防,提示词注入,AI sg)

32.OSINT - 摄影出片

33.hello discord(discord机器人部署,利用discord做注入)

34.misc1-签到(随言随语编码)

35.黑客儿传奇:两小时(OCaml编程)

参考地址:

https://bbs.zkaq.cn/t/5477.html