ctf(3)-攻防世界crypro新手练习区

base64

下载附件后得到一个字符串,如其名为base64加密,可以通过下面的php代码解密:

<?php
$a=base64_decode('Y3liZXJwZWFjZXtXZWxjb21lX3RvX25ld19Xb3JsZCF9');
echo $a;
?>

得到flag,easy!

Caesar

凯撒密码:明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。

下载附件同样得到一个字符串,通过名字可以知道为凯撒加密,flag的开头第一个字母通常为c,与字符串第一个字母相差12位,因此在位移那里输入12,解密得到flag。

Morse

摩斯密码:摩尔斯电码由两种基本信号组成:短促的点信号“·”,读“滴”;保持一定时间的长信号“—”,读“嗒”。间隔时间:滴=1t,嗒=3t,滴嗒间=1t,字符间=3t,单词间=7t。

下载附件,得到只有01的字符串,将1变为-,0变为.,摩斯码解密即可。在这里插入图片描述

幂数加密

这里不采用幂数加密,而采用01248密码。
01248密码:有了1,2,4,8这四个简单的数字,你可以以加法表示出0-9任何一个数字,例如0=28,7=124,9=18。这样,再用1-26来表示A-Z或a-z,就可以用作密码了。为了不至于混乱,引入了第五个数字0,来用作间隔。

以0为间隔分割字符串,这里举一个例子122,122可以表示5,也可以表示14,但是不能表示32,因为32超出了26,其他的以此类推。

Railfence

先来了解一下基本知识:
传统型栅栏密码:把要加密的明文分成N个一组,然后把每组的第1个字符组合,每组第2个字符组合…每组的第N(最后一个分组可能不足N个)个字符组合,最后把他们全部连接起来就是密文。

假如有一个字符串:123456789
取字符串长度的因数进行分组,假如key=3(每行有3个)
1 2 3  \\分组情况,每三个数字一组,分为三组
4 5 6
7 8 9
然后每一组依次取一个数字组成一个新字符串:147258369 \\加密完成的字符串

W型栅栏密码:明文由上至下顺序写上,当到达最低部时,再回头向上,一直重复直至整篇明文写完为止。

例如:'WEAREDISCOVEREDFLEEATONCE',key=3(每个上下有三个)
W . . . E . . . C . . . R . . . L . . . T . . . E
. E . R . D . S . O . E . E . F . E . A . O . C .
. . A . . . I . . . V . . . D . . . E . . . N . .
按行读取后的密文:
WECRLTEERDSOEEFEAOCAIVDEN

W型的加密密钥就不只能是字符串长度的因子,小于其长度的任何一个数都可能是其key值,所以第一步也是确定密钥。

这个题目用传统的栅栏密码得不到答案,因此考虑W型变种,key=5时得到flag。

不仅仅是Morse

下载附件后得到一串摩斯电码,解密后得到部分明文和另一串密文,部分明文为MAYBEHAVEANOTHERDECODEHHHH可见没什么用,另一串密文只含大写的AB,网上搜发现是培根密码,下面介绍一下这种密码:
培根密码本质上是用二进制数设计的,没有用通常的0和1来表示,而是采用a和b。

A/a aaaaa H/h aabbb O/o abbba V/v babab
B/b aaaab I/i abaaa P/p abbbb W/w babba
C/c aaaba J/j abaab Q/q baaaa X/x babbb
D/d aaabb K/k ababa R/r baaab Y/y bbaaa
E/e aabaa L/l ababb S/s baaba Z/z bbaab
F/f aabab M/m abbaa T/t baabb 
G/g aabba N/n abbab U/u babaa

加密者需使用两种不同字体,分别代表A和B。准备好一篇包含相同AB字数的假信息后,按照密文格式化假信息,即依密文中每个字母是A还是B分别套用两种字体。
解密时,将上述方法倒转。所有字体一转回A,字体二转回B,以后再按上表拼回字母。

例、明文:now is a good t.........
    n      o      w     i     s     a      g     o     o     d     t
   abbaa abbab babaa abaaa baaab aaaaa aabba abbab abbab aaabb baaba
密文:BOWED ASTER PINED JOKED THEIR BLACK HASTE ARRAY INSET CHEST SLING

   加密规则:(1)a-m -> a ,也就是说 a ——m 的所有字母都能替换成 a。

                 n-z  -> b ,也就是说 n ——z 的所有字母都能替换成 b。

            (2)a-m <- a ,也就是说 a 可以替换 a——m 中的任何一个字母。

                 n-z  <- a ,也就是说 b 可以替换 n——z  中的任何一个字母。

Ps:密文中的单词都是根据加密规则随便拼凑出来的,为了使加密更隐蔽,一般拼凑出来的单词可连成通顺的一句话。

用培根密码解密即可。

混合编码

base64解码->Unicode解码->base64解码->对照ASCII表->flag

easy_RSA

下面着重介绍一下RSA加密算法:
在这里插入图片描述
这里我们使用了RSA tool2工具。使用教程见:

https://blog.csdn.net/weixin_30332705/article/details/99589092

或者直接计算:
d=[k(p-1)(q-1)+1]/e。

Normal_RSA

略,以后再补

轮转机加密

先来了解一下轮转机加密原理:
1、首先我们根据密钥来进行重新排列轮子
2、密钥的数字就代表第几个轮子,如2,3,7,5…代表将原来的第二行作为新的第一行,原来的第三行作为新的第二行以此类推。
3、排好后根据密文,进行行内排列,如 KPBELNACZDTRXMJQOYHGVSFUWI 进行重新排列后,找到N所在位置,然后重新拼接 ‘NACZDTRXMJQOYHGVSFUWI’+‘KPBEL’。
4、对所有行排好后按照列取。

再来看这题,文本文件如下:

1:  < ZWAXJGDLUBVIQHKYPNTCRMOSFE <
2:  < KPBELNACZDTRXMJQOYHGVSFUWI <
3:  < BDMAIZVRNSJUWFHTEQGYXPLOCK <
4:  < RPLNDVHGFCUKTEBSXQYIZMJWAO <
5:  < IHFRLABEUOTSGJVDKCPMNZQWXY <
6:  < AMKGHIWPNYCJBFZDRUSLOQXVET <
7:  < GWTHSPYBXIZULVKMRAFDCEONJQ <
8:  < NOZUTWDCVRJLXKISEFAPMYGHBQ <
9:  < XPLTDSRFHENYVUBMCQWAOIKZGJ <
10: < UDNAJFBOWTGVRSCZQKELMXYIHP <
11: < MNBVCXZQWERTPOIUYALSKDJFHG <
12: < LVNCMXZPQOWEIURYTASBKJDFHG <
13: < JZQAWSXCDERFVBGTYHNUMKILOP <

密钥为:2,3,7,5,13,12,9,1,8,10,4,11,6
密文为:NFQKSEVOQOFNP

先根据密钥重新排列轮子
在这里插入图片描述
再根据密文进行行内排列
在这里插入图片描述
最后按列取值,只有第18列有译义fire in the hole,即为flag。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值