CTF入门学习笔记——Crypto密码(古典密码)

文章目录

CTF入门学习笔记------Crypto密码(古典密码)

🚀🚀这篇笔记是我对自己初步学习CTF的一个小总结,主要涉及了Crypto板块的古典密码,这部分内容比较简单,利用一些工具加上观察分析一般都能解决,但是古典密码一般会和编码结合起来一起考察,所以此篇笔记主要起到一个分析总结的作用。

凯撒密码

🚀🚀凯撒密码算是古典密码里面非常有名的密码了,相传凯撒大帝曾经使用使用这种密码与下属沟通,所以命名为凯撒密码。其核心逻辑就是将英文字母进行规律替换,在当时那个时代无疑是一种好的加密方式,但是现在看来他是极易被破解的。我们可以也使用词频分析来分析破解(http://quipqiup.com

🚀🚀接下来我们来看一道例题:

看我回旋踢

🚀🚀题目:BUUCTF在线评测 (buuoj.cn)

🚀🚀我们下载附件,得到一个文本文件,如下所示:

synt{5pq1004q-86n5-46q8-o720-oro5on0417r1}

🚀🚀我们观察一下,很像我的的flag,但是字母有些不同,经过分析synt,得到这就是移位13的flag,所以我们使用在线工具,将位移设置成13,得到结果:

flag{5cd1004d-86a5-46d8-b720-beb5ba0417e1}


摩斯密码

🚀🚀摩斯密码我们大家也熟悉,就是我们的电报。他的核心特点就是有两种不同的元素(不一定是.-,还可能是01,AB之类的)和间隔(空格或者/),当我们看到上面特征时,就可以考虑摩斯密码了。

摩斯

🚀🚀题目:BUUCTF在线评测 (buuoj.cn)

🚀🚀打开附件得到一串点横,然后有空格隔开,大概率为摩斯密码。

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

🚀🚀解码结果如下所示:

ILOVEYOU


维吉尼亚密码

🚀🚀维吉尼亚密码 (又译维热纳尔密码)是使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式。可以用来防止词频攻击。

🚀🚀接下来我们看一道题目,来加强一下认知:

Vigenère

🚀🚀题目:[AFCTF 2018]Vigenère | NSSCTF

🚀🚀我们可以看到附件中有这样一串字母以及代码,明显就是我们需要的flag:

Zy daf sjle Wafyyo drvnvdrtv gh dif Crtl nrqfy boe zqm trtwjy kf gnnqr blhawas, ntm bhr gogojt ntm xalsgfn kf gnnqr fgnsleef.

luig vy cxwpf{Jnxwobuqg_O_Cogiqi!}

c 复制代码
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main()
{
	freopen("flag.txt","r",stdin);
	freopen("flag_encode.txt","w",stdout);
	char key[] = /*SADLY SAYING! Key is eaten by Monster!*/;
	int len = strlen(key);
	char ch;
	int index = 0;
	while((ch = getchar()) != EOF){
		if(ch>='a'&&ch<='z'){
			putchar((ch-'a'+key[index%len]-'a')%26+'a');
			++index;
		}else if(ch>='A'&&ch<='Z'){
			putchar((ch-'A'+key[index%len]-'a')%26+'A');
			++index;
		}else{
			putchar(ch);
		}
	}
	return 0;

🚀🚀分析代码可知是维吉尼亚密码,如果我们知道密钥,也就好解决了,但是目前没有给我们,所以我们采用暴力破解的办法(Vigenere Solver | guballa.de),最终能得到结果:

flag is afctf{Whooooooo_U_Gotcha!}

🚀🚀这便是我们需要的flag。


栅栏密码

🚀🚀栅栏密码就是把要加密的明文分成N个一组,然后把每组的第一位、第二位...分别提取出来拼接在一起。解密的话,就逆操作即可。

篱笆墙的影子

🚀🚀题目:BUUCTF在线评测 (buuoj.cn)

🚀🚀打开附件,得到如下信息:

felhaagv{ewtehtehfilnakgw}

🚀🚀我们简单分析一下前面8个字母,发现两个一组能拼出flag,所以应该是两个字母一组,可以自己分析,也可以利用工具](https://www.qqxiuzi.cn/bianma/zhalanmima.php)分析,结果如下所示。

flag{wethinkwehavetheflag}


栅栏密码

🚀🚀栅栏密码就是把要加密的明文分成N个一组,然后把每组的第一位、第二位...分别提取出来拼接在一起。解密的话,就逆操作即可。

篱笆墙的影子

🚀🚀题目:BUUCTF在线评测 (buuoj.cn)

🚀🚀打开附件,得到如下信息:

felhaagv{ewtehtehfilnakgw}

🚀🚀我们简单分析一下前面8个字母,发现两个一组能拼出flag,所以应该是两个字母一组,可以自己分析,也可以利用工具](https://www.qqxiuzi.cn/bianma/zhalanmima.php)分析,结果如下所示。

flag{wethinkwehavetheflag}


猪圈密码

🚀🚀猪圈密码(Pigpen cipher,亦称朱高密码、共济会密码)是一种以格子为基础的简单替代式密码。即使使用符号,也不会影[密码分析,亦可用在其它替代式的方法。

待补充

🚀🚀CTF中的古典密码远远不止这些,不够现在一般都是现代密码偏多。我会在接下来的学习中不断补充,同时也希望我能一直坚持下去。

相关推荐
心 一9 小时前
Web安全基石:深入理解与防御越权问题
网络·安全·web安全
kaixin_啊啊9 小时前
openEuler系统远程管理方案:cpolar实现安全高效运维
运维·安全
现代科技改变命运9 小时前
泛型的学习
学习
智驱力人工智能9 小时前
深度学习在离岗检测中的应用
人工智能·深度学习·安全·视觉检测·离岗检测
Adorable老犀牛10 小时前
阿里云-基于通义灵码实现高效 AI 编码 | 8 | 上手实操:LeetCode学习宝典,通义灵码赋能算法高效突破
学习·算法·leetcode
RA生态工作室11 小时前
瑞萨RA家族新成员RA4C1,符合DLMS SUITE2表计安全规范、超低功耗、支持段码显示,专为智能表计应用开发
安全
ZZHow102411 小时前
sqlmap常用命令
web安全·网络安全
LFly_ice11 小时前
学习React-10-useTransition
前端·学习·react.js
知识分享小能手11 小时前
React学习教程,从入门到精通,React 构造函数(Constructor)完整语法知识点与案例详解(16)
前端·javascript·学习·react.js·架构·前端框架·vue
shellvon11 小时前
从抓包到攻防:解锁API安全设计的秘密
后端·安全