1 XCTF平台crypto新手练习区题目
https://adworld.xctf.org.cn/task/task_list?type=crypto&number=5&grade=0
1.1 base64
根据题目应该是base64编码;
打开附件后看到一串符合base64编码的字符串;
base64解码后得到flag~
1.2 Caesar
打开附件,可以观察格式符合flag的格式cyberpeace{xxx_xxx_xxx},根据题目,可以合理猜测这里用的是凯撒加密,根据第一位c变成了o,可得位移为12;
通过工具,解密得到flag~
1.3 Morse
根据题目以及附件可以判断该题是摩斯密码,将1替换为-,将0替换为.后,用工具解密即可;
根据题目格式说明最后均为小写字母,取得flag~
1.4 混合编码
首先看附件的内容猜测这是base64编码后的,先进行base64解码,发现是Unicode的&#;编码,解码后发现还是base64编码,再次进行解码后出现一串数字,可以推测是ascii码,根据ascii码对照表取得flag~
1.5 幂数加密
根据题目可知是幂数加密,又根据题目可知flag是8位大写字母,观察附件的数字串,根据幂数加密的原理,该题最大的数字是8,可知底数应该是1,观察发现有7个0,正好可以将之分成8份,,即88421/122/48/2244/4/142242/248/122,加起来后为23/5/12/12/4/15/14/5,对应26个字母即WELLDONE,取得flag~
1.6 Railfence
根据题目“栅栏里面5只小鸡”以及附件内容的格式可知,使用了栅栏密码且栏数为5,直接使用工具解密;
发现解密后不符合flag格式,看来不是传统型的栅栏密码;
使用W型的栅栏密码解密工具后取得flag~
1.7 easy RSA
已知P、Q和e三个参数,求解d;
使用工具,取得flag~
1.8 不仅仅是Morse
首先用摩斯密码先解一下;
可以看到后面有一串AB组成的字符,原理应该是二进制的方式加密,根据题目提示,是一种食物命名的加密,推测为培根加密;
将AB字符串用培根密码解密后取得flag~
1.9 Easychallenge
附件是.pyc二进制文件,下载后用反编译工具查看其源码;
可以注意到用了三次加密的方法对输入进行加密后和final进行比较,那么我们对final反向解密三次即可;
这是三次加密的代码,分析一波:首先encode1()函数对每个字符转换成ascii码后和36进行亦或操作,然后加上25后重新转为字符串;encode2()函数对每个字符转换成ascii码后先加上36再和36进行亦或操作后重新转换为字符串;encode3()函数就是简单的用base32加密;
针对每个加密步骤写对应的解密步骤后进行解密即可,运行取得flag~
1.10 Normal RSA
这里有两个文件,思路:pubkey.pem是公钥文件,我们从中可以获得公钥中的N参数,然后使用工具进行分解获得p和q两个参数,然后flag.enc是加密后的文件,用python写个程序进行破解,进而取得flag。
用openssl命令取得pubkey.pem文件中的N和e;
(Tips:这时N为十六进制,注意转成十进制。)
取得N后分解获得q和p;
用rsatool.py生成一个私钥后解密flag.enc取得flag即可~
1.11 转轮机加密
轮转密码。首先根据密钥重新排序:即第二行为原本第三行,第三行为原本第七行,以此类推,得到以下内容:
然后根据密文,将每一行的开头调整为对应的密文,得到以下:
没有找到flag;
重新按密钥进行排序,这次改为第一行对应第一个密钥即第二行,第二行对应第二个密钥即第三行,得到以下:
然后按照密文进行排序:
第一行按照密文排好后我们可以发现其中一行为“fireinthehole”,取得flag~
1.12 easy ECC
已知ECC的其他参数求公钥K;
直接使用工具求得公钥;
根据题目flag为x+y的值,取得flag~