【攻防世界】-Keyes_secret

⭕、知识点

键盘象形密码

一、题目

给了一串未知文本

二、解题

1、用脚本或网址进行字频分析

import collections

with open("keyes.txt", "r") as file:
    data = file.read()

fre_analysis = collections.Counter(data)

for i,e in sorted(fre_analysis.items()):
    print(i, e)

都发现文本中有一对花括号{},里面的内容应该是flag,所以可以推断这段文本是替代密码加密

2、尝试进行偏移量暴力搜索,网址:https://quipqiup.com

查看结果,搜索ctfflag,"iscc"等关键字眼没有发现匹配结果

3、根据题目提示,还有一种可能就是键盘密码

开始根据给出的字母在键盘上画图象,果然发现这些字母五六个一组刚好可以在键盘上画出某个字母的形状

验证猜想,直接针对花括号内的内容创建字典,再进行逐一替代

4、编写脚本

with open("keyes.txt", "r") as file:
    ciphertext = file.read()

mapping ={
    "RFVGYHN": "h",
    "TGBNMJUY": "o",
    "NBVCXSWERF": "p", #...
    "TGBNMJU": "u",
    "IUYHNBV": "s", #or 5
    "TRFVB": "c",
    "QWERTY": "-",
    "QAZSCE": "k",
    "WSXCDE": "e", #...
    "WSXCFE": "d", #...
    "EFVT": "y",
    "YHNMKJ": "b",
    "GRDXCVB": "a", #...
    "MNBVCDRTGHU": "r", #...
    "WSXCV": "l",
    "CVGRED": "g", # 。。和d很像
    "WSX": "i",
    "TRFVG": "f",
    "EFVGYWDCFT": "w",
    "ZAQWDVFR": "n", #猜的
    "TYUIOJM": "t",
    "XSWEFTYHN": "m",
    "RGNYGC": "x",
    "EFVGY": "v", # 慢,
    "QAZXCDEWV": "q"


}

for words in mapping.keys():
    ciphertext = ciphertext.replace(words, mapping[words])
print(ciphertext)

注意

1.这里把整个文本都解密了出来,如果只解密flag部分其实不用这么多
2.这里用小写字母进行替代是为了方便与未解密字符进行区分,因为解题过程中是每找到一个再添加到字典里
3.有些字母在键盘里画出来是倒着的,而且有些并不是那么形象,并不好猜。像代码中后面跟着 #... 的键值对都是我标记出来比较抽象的。
4.有些字母的加密文本存在重合,比如"EFVGYWDCFT"代表"W"但是其首部的"EFVGY"字段又可以翻译成"v",所以在编写脚本进行替代时,尽量先对较长的密码块进行替换(本代码中就把"EFVGY"键值对放在了"EFVGYWDCFT"键值对后面),以免造成混乱。

输出结果:

hello,in-computer-security,-capture-the-flag-(ctf),-a-type-of-cryptosport,-is-a-computer-security-competition.-ctf-contests-are-usually-deslGREDned-to-serve-as-an-educational-exercise-to-give-participants-experience-in-securing-a-machine,-as-well-as-conducting-and-reacting-to-the-sort-of-attacks-found-in-the-real-world-(i.e.,-bug-bounty-programs-in-professional-settings).-here-are-your-flag{iscc-keyboard-cipher}-reverse-engineering,-network-sniffing,-protocol-analysis,-system-administration,-programming,-and-cryptanalysis-are-all-skills-which-have-been-required-by-prior-ctf-contests-at-def-con.

翻译:

你好,在计算机安全领域,夺旗赛(CTF)是一种“加密运动”类型的计算机安全竞赛。CTF 通常被设计成一种教育性练习,旨在让参与者获得保护系统安全的经验,并学习如何发起、应对现实世界中的各类攻击(例如,专业环境中的漏洞赏金计划)。

这里是你的 flag:{iscc-keyboard-cipher}。

逆向工程、网络嗅探、协议分析、系统管理、编程和密码分析,都是以往在 DEF CON 的 CTF 比赛中曾被要求掌握的技能。

三、答案

小写只是方便解题,最后的答案还是要还原回大写

FLAG{ISCC-KEBOARD-CIPER}

四、总结

为替代密码的解密通过新的解题思路

posted @ 2025-04-15 19:08  wyuu101  阅读(145)  评论(0)    收藏  举报