Bugku Crypto 部分题目简单题解

抄错的字符

题目描述:

老师让小明抄写一段话,结果粗心的小明把部分数字抄成了字母,还因为强迫症把所有字母都换成大写。你能帮小明恢复并解开答案吗:

QWIHBLGZZXJSXZNVBZW

观察疑似base64解码,尝试使用cyberchef解码

CyberChef

乱码,无法解出。根据题目提示得知,部分数字抄成了字母,因此要不断猜测尝试

看了大佬的wp得知

QW1h base64解码为 Ama

BL92 base64解码为 n_v

ZXJ5 base64解码为 ery

X2Nv base64解码为 _co

b2w= base64解码为 ol

得到flag为:

flag{Aman_very_cool}

crypto题脑洞过大,多想多做总是好的

/.-

题目描述:

..-./.-../.-/--./----.--/-../...--/..-./-.-./-.../..-./.----/--.../..-./----./...--/----./----./...../-----/....-/-----.-

为摩斯密码,使用在线工具解码

摩斯密码翻译器/摩尔斯电码表 - 在线工具 (buyaocha.com)

得到flag

FLAG%u7bD3FCBF17F9399504%u7d

将%u7b换为{,将%u7d换为}

FLAG{D3FCBF17F9399504}

提交显示flag有误

使用在线工具在线英文字母大小写转换器工具-英文标题大小写_蛙蛙工具 (iamwawa.cn)将大写转换为小写后

得到flag

flag{d3fcbf17f9399504}

成功提交

聪明的小羊

题目描述:

一只小羊翻过了2个栅栏 fa{fe13f590lg6d46d0d0}

根据提示得知是栅栏密码

使用在线工具CTF在线工具-在线栅栏密码加密|在线栅栏密码解密|栅栏密码算法|Railfence Cipher (hiencode.com)

栅栏数为2

得到flag

或者使用

栅栏加密/解密 - Bugku CTF

进行枚举解密,找出flag

ok

题目描述为:Ook.

下载附件并打开

复制文本文档内容

使用在线工具解密

Ook! Programming Language - Esoteric Code Decoder, Online Translator (dcode.fr)

在框内粘贴内容,点击执行EXEUTE

可见左侧运行得出了flag

之前使用的Brainfuck/Ook! Obfuscation/Encoding [splitbrain.org]

无法打开,换一个在线工具就行。

[+-<>]


BrainFuck密码用> < + – . , [ ]八种符号来替换C语言的各种语法和命令

使用在线工具

brainfuck interpreter (sange.fi)

粘贴内容后,点击execute

即可得到flag

或者

CTF在线工具-在线Brainfuck加密|在线Brainfuck解密|Brainfuck|Brainfuck原理|Brainfuck算法 (hiencode.com)

解密得到flag

把猪困在猪圈里

猜测应该为猪圈密码

下载并打开附件后,文本文档内是base64编码

应该是图片,使用在线工具BASE64转图片 - 站长工具 - 极速数据 (jisuapi.com)

将base64编码转化为图片

也可以用CyberChef将base64转为图片

得到猪圈密码后

使用在线工具猪圈密码解密-ME2在线工具解密

解密后得到密文thisispigpassword

使用flag{}包裹后,即为flag

你喜欢下棋吗

下载附件并打开

flag文件夹有密码保护

查看解压密码

根据提示,猜测为棋盘密码

棋盘密码在线加密解密 - 千千秀字 (qqxiuzi.cn)

解密出压缩包的密码

打开文本文档,内容如下

复制内容后,博多电码解码

Baudot Code, Baudot-Murray Code (online tool) | Boxentriq

BAUD0TC0DE即为解码内容

根据提示,密码全为小写

在线英文字母大小写转换器工具-英文标题大小写_蛙蛙工具 (iamwawa.cn)

转换后,使用bugku{}包裹后即为flag

小山丘的秘密

下载解压,打开附件后

一张下棋的图片,一个附件

应该为希尔密码

希尔(Hill Cipher)加密/解密 - Bugku CTF

粘贴bugku{}里面的内容

调节模式为A=1,点击矩阵,按照棋盘数字依次输入

运行后得到解码内容

EN-气泡

打开附件

BubbleBubble加密算法

在线工具

CTF在线工具-在线BubbleBabble编码|Bubble编码|BubbleBabble解码|BubbleBabble编码原理|BubbleBabble编码算法 (hiencode.com)

第一次解码

第二次解码

第三次解码

得到flag

你以为是md5吗

下载打开附件后

为一串编码bci177a7a9c7udf69c248647b4dfc6fd84o

md5密文中只有a-f和0-9,把没用的删除

得到bc177a7a9c7df69c248647b4dfc6fd84

使用在线工具md5在线解密破解,md5解密加密 (cmd5.com)进行解码

使用flag{}包裹后进行提交

Math&English

下载.rar附件,并解压,得到一个附件

将各题计算出来

得到21 33 1 22 3 44 54 5 1 35 54 3 35 41 52 13

对照网上找到的密码表

逐字对照写出

或者编写脚本运行

#字母表
table_dict={'A':1,'B':11,'C':12,'D':13,'E':2,'F':21,'G':22,
            'H':23,'I':3,'J':31,'K':32,'L':33,'M':34,'N':35,
            'O':4,'P':41,'Q':42,'R':43,'S':44,'T':45,'U':5,
            'V':51,'W':52,'X':53,'Y':54,'Z':55
           }
reverse_table_dict={k:v for v,k in table_dict.items()}

#密文列表
c=[21,33,1,22,3,44,54,5,1,35,54,3,35,41,52,13]

flag=''
for i in range(len(c)):
    #解密出明文
    flag+=reverse_table_dict[c[i]]
print('bugku{'+flag[6:].lower()+'}')

得到flag

easy_hash

下载打开附件

使用记事本打开.py文件

源码可以看出,是把flag的每一个字符都经过了hash

用记事本打开output文件

观察文本内容,每一行都是加密后的字符

使用md5解密|md5在线解密 - 全球唯一8位小写+数字全收录的解密网站 (ttmd5.com)

逐行解码,得到flag


或者使用大佬编写的脚本

import hashlib
import string

md5_list = {}
for c in string.printable:
    m = hashlib.md5(c.encode())
    md5_list[str(m.hexdigest())] = c

with open('output', 'r') as file :
    for line in file:
        line = line.split('\n')[0]
        if line in md5_list:
            print(md5_list[line], end='')

运行得到fl

MaybeEasyRSA

下载后,用记事本打开.py文件

运行大佬的脚本后,能够得到flag

import gmpy2
from sympy import nextprime
from Crypto.Util.number import *
n=1058756604181685917958185571746711428601045466594619627088399455470892502310139608978164573773765910533535849969889860275644658086339362201840191861497991951344100284004205747279828567835277683
c=643011921358774538378881505518732362708757638007688649119354348647468190640688857686213431516881297805187671774564672497176686191162897918672339254715366498963369868410476737543157157149810569
 
n_10=gmpy2.iroot(n,10)[0]
print(n_10+1)
for r in range(n_10,n_10+4000):
    p1 = r**5 + r**4 - r**3 + r**2 - r + 2024
    q1 = r**5 - r**4 + r**3 - r**2 + r + 2024
    p =nextprime(p1)
    q =nextprime(q1)
    if p*q==n:
        print(p,q,r- n_10)
        break
print('done')
 
def rsa(p,q,e,c):
    d=pow(e,-1,(p-1)*(q-1))
    m=pow(c,d,p*q)
    print(bytes.fromhex(hex(m)[2:]))
    return m
m=rsa(p,q,65537,c)

运行

但是具体原理不知道

注意:可能会报错No module named 'sympy'。没有找到sympy库

解决方法:打开python所在文件夹

在文件夹上打开终端(输入cmd)

输入指令pip install sympy

下载sympy库

必须退出python模式,在cmd打开python模式,就在这个模式下安装,这是不允许的

下载好sympy库后,再次运行脚本即可

  • 21
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值