zkaq-CTF靶场-Misc+OSINT

zkaq-CTF靶场-Misc+OSINT
NgkcvsCCzkaq-CTF靶场-Misc+OSINT
1.杂项1:图片隐写
打开后是个图片:ctf-1.jpg
下载下来使用kali分析一下,使用
strings命令查看下
1 strings ctf-1.jpg在结果最后处看到一段Unicode编码内容:
1 key{z-nsdiua}
复制出来保存为
1.html使用浏览器打开后发现flag
2.杂项2:密文在这里,看看你是否能解开
提示: 重复敲击两次,密码是6位数
描述: M6UUSlt6rxWO328Kez8xXCMd,这是一段RC4加密,但是我总是解不开呢,这时有一个声音在你耳边响起,rtygcvb,ujmko,ujmko,他代表什么意思呢?
RC4有密码,仔细观察,
rtygcvb和ujmko在键盘上是这样的
密码可能是:zvvzvv,使用在线解码网站解密得到
http://tool.chacuo.net/cryptrc4
随波逐流是:zvvzvvzvvzvv
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:ca5116cc5bc6d2ae854abbd702c8777MD5只给了部分的密文,那就是使用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
5.杂项5:刚刚截获德军的密电
提示: 古典密码学中的内容 flag格式:flagxxxxxx
描述: 刚刚截获了德军的密电,密文很重要,决定着战争的走向。
密电:
FA XX DD AG DD XA FF FF AX DX
提示是古典加密,是个
ADFGVX加密
使用密码对照表解密:
得到了: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编程)
参考地址:





















