Bugku Crypto习题整理

Bugku crypto习题整理

这些题目来自于Bugku,感谢Youzen_ing提供的密码学在线加解密网站汇总:https://blog.csdn.net/youzen_ing/article/details/73075180
过程可能写得很简单,请见谅。

滴答~滴


该题显然是摩斯密码,在摩斯密码网站在线解密下就出来结果,也可以尝试写脚本。

python脚本:https://github.com/FrancisQiu/pw_bugku_crypto/blob/py/1.py

聪明的小羊


观察给的init,发现KEY单词单个字母交替出现,又有栅栏提醒,因此是栅栏密码,在栅栏密码在线解密网站跑一下就出来flag了。

解密网站:https://www.qqxiuzi.cn/bianma/zhalanmima.php
python爆破脚本:https://github.com/FrancisQiu/pw_bugku_crypto/blob/py/2.py

ok


okk语言,一门奇葩的语言。百度一下在线解密。

解密网站:https://www.splitbrain.org/services/ook

这不是摩斯密码


题目说了不是肯定就不是摩斯密码,这种是brainfuck语言写的flag。

解密网站:https://www.splitbrain.org/services/ook

easy_crypto


之前写过了的,具体过程请看:https://blog.csdn.net/qq_40737798/article/details/86608239

python脚本:https://github.com/FrancisQiu/pw/blob/easy_crypto/easy_crypto.py

简单加密


仔细观察这段密文,发现结尾的地方和base64的末尾处密文形式相同,根据ASCII码表的顺序,发现AA与“==”相隔4个位置,因此猜测这是2层加密,一层凯撒密码一层base64。根据凯撒密码的特点,写个脚本跑一下出来flag。

Python脚本:https://github.com/FrancisQiu/pw_bugku_crypto/blob/py/6.py

散乱的密文


根据题目意思,给出的密文信息以及提示,有两个猜测。第一个猜测“2 1 6 5 3 4”是分组数量,但是密文个数与分组不符合;第二个猜测“2 1 6 5 3 4”是密文分组的顺序,密文长度恰好可以模6,即“l”对应组号为2的组,“f”对应组号为1的组。。。。。。根据位置模6得到的余数确定组号,再通过提示的“2 1 6 5 3 4”,将各组按照组号串联在一起输出。根据第二个猜测写个python脚本跑出一串新的密文,显然这是栅栏密码,因为发现flag四个字母具有一定位置规律。尝试爆破,得到flag。

python脚本:https://github.com/FrancisQiu/pw_bugku_crypto/blob/py/7.py
python爆破脚本:https://github.com/FrancisQiu/pw_bugku_crypto/blob/py/2.py

凯撒部长的奖励


根据题目标题,显然是凯撒密码。但是这段凯撒密码却很长,因此只可能是字母的变化,“_”、“{”、“}”都不变。
写个脚本爆破得到flag。
Bugku Crypto习题整理_第1张图片

python脚本:https://github.com/FrancisQiu/pw_bugku_crypto/blob/py/8.py

一段base64


本题目提供的base64码有点长,开头做的时候无从下手,因此查找了两篇write up。一篇以顺便安利了一下convertor工具;另一篇用python脚本解题。

convertor解题:https://blog.csdn.net/pdsu161530247/article/details/74640746
python脚本解题:http://www.cnblogs.com/WangAoBo/p/7207874.html

.!?


本题目一眼看上去,是不是和OK那道题很像?这确实是okk语言,只是符号换了。

解密网站:https://www.splitbrain.org/services/ook

+[]-

Bugku Crypto习题整理_第2张图片
本题目一眼看上去,是不是和这不是摩斯密码那道题很像?同样地,只是符号换了的brainfuck语言写的flag。

解密网站:https://www.splitbrain.org/services/ook

奇怪的密码


本题第一眼直觉:肯定与ASCII码有关。查ASCII码表,发现前面4个字母与“flag”的间隔是个等差数列:1、2、3、4,因此猜测这是个类似于凯撒密码的密文,但是这段密文移动位置是成等差数列的。写个python脚本跑一下,其中的欧元符号显然应该换成“{”

python脚本:https://github.com/FrancisQiu/pw_bugku_crypto/blob/py/12.py

托马斯.杰斐逊


本题考查杰斐逊转轮加密器,转轮位置为密钥,按照密钥位置排好的转轮转到密文指定的位置,之后就能得到明文。本题可以手动复制粘贴,也可以写个通用的python脚本跑一下得到flag。
Bugku Crypto习题整理_第3张图片

python脚本:https://github.com/FrancisQiu/pw_bugku_crypto/blob/py/13.py

zip伪加密


本题提供了个zip压缩包,它说伪加密,如果不明白zip伪加密,请看:https://blog.csdn.net/kajweb/article/details/76474476
本题是全方位标记被修改了:
Bugku Crypto习题整理_第4张图片
修改了此处“09 00”为“00 00”,保存之后再打开压缩包,就不提示需要密码了。

告诉你个秘密


本题只给了这些代码,不过观察发现在0-9、A-F范围内,因此这是一段hex,打开winhex,在编辑里选择剪贴板粘贴的粘贴至新文件,选择“ASCII hex”,于是得到一段字符串。
Bugku Crypto习题整理_第5张图片
字符串没有任何特点,于是从base64等编码开始一个个试,发现base64得到了“r5yG lp9I BjM tFhB T6uh y7iJ QsZ bhM ”。这时候到了开脑洞的时候了,看看键盘就知道了:TONGYUAN。

这不是md5


根据题目意思,这不是MD5,因此肯定不是MD5啦。观察特点,发现是十六进制范围内,因此这段字符串是一段hex,根据上一题,通过winhex工具直接得到flag。

贝斯家族


根据题目意思,贝斯=“base”,因此在base族编码内一个个试,base91编码解码得到flag。

解码网站:http://ctf.ssleye.com/

富强民主


这是一种叫做核心价值观的编码:https://github.com/sym233/core-values-encoder
根据ctf在线工具网站提供的价值观编码解码工具能直接得到flag。

解码网站:http://ctf.ssleye.com/

python(N1CTF)

Bugku Crypto习题整理_第6张图片
本题提供了一个加密过程的python脚本以及加密信息的python文件。这是一个对称加密的过程,属于Feistel 密码结构。解密的关键点就是将加密函数的子密钥相反序列就行。

    def decrypt(self, ciphertext):
        res = ''
        for i in range(len(ciphertext) / 16):
            block = ciphertext[i * 16:(i + 1) * 16]
            L = block[:8]
            R = block[8:]
            for round_cnt in range(32):
                L, R = R, (round_add(L, self.Kn[31 - round_cnt]))  # 子密钥相反序列修改
            L, R = R, L
            res += L + R
        return res

进制转换


题目直白的告诉你:你需要做的就是进制转换。写个python脚本跑一下出来flag。

python脚本:https://github.com/FrancisQiu/pw_bugku_crypto/blob/py/20.py

affine


affine的意思为:仿射变换。此处提供了公式:y=17x-8,根据提供的y值:szzyfimhyzd,根据数学公式:y=(17x-8)mod 26,从x=a开始尝试,一直直到x=z。所有的字母进行运算都是其ASCII码进行运算。
编写python脚本暴力破解,直接得到结果。

python脚本:https://github.com/FrancisQiu/pw_bugku_crypto/blob/py/21.py

Crack it


本题提供了一个shadow文件,为linux内保存登录用户名与密码所用的文件。通过John这个工具直接暴力破解得到flag。
Bugku Crypto习题整理_第7张图片

rsa


题目给的内容,首先尝试分解N:www.factordb.com
发现解不了,观察e,发现e很大,于是尝试rsa指数攻击。通过RsaCtfTools获取p、q。
Bugku Crypto习题整理_第8张图片
得到p、q之后,再写个rsa脚本跑一下得到内容。因为内容为十进制大数,因此可以转化成hex之后贴到winhex获取string内容。如果发现python安装gmpy2失败,请尝试管理员权限运行cmd,执行命令:python -m pip install --upgrade pip。之后再安装gmpy2的beta2.1.0beta1版本。(我的是python3.6)

python脚本:https://github.com/FrancisQiu/pw_bugku_crypto/blob/py/23.py

来自宇宙的信号


本题给的密文为标准银河字母内容,因此根据字母表对照一下就出来结果了。

你可能感兴趣的:(CTFwriteup,Bugku,crypto,密码学,CTF)