ctfshow CRYPTO

密码学签到

}wohs.ftc{galf

倒序输出就是flag了

crypto2

题目是一长串的符号
在这里插入图片描述
这个是jsfuck 、可以看这个地址

直接在控制台粘贴回车
在这里插入图片描述

crypto3

在这里插入图片描述
是乱码哎,但是感觉不太对,里面有一些颜文字,应该是颜文字加密,需要抓个包看看正确的相应报文

同样是控制台 粘贴 回车就出来了

crypto4

p=447685307 q=2037 e=17
提交flag{d}即可

这里用到的工具是RSA-Tool2

注意e是十六进制的
在这里插入图片描述
输入好之后,点击求D即可

crypto5

p=447685307 q=2037 e=17 c=704796792
提交flag{m}

先用工具计算其他值
在这里插入图片描述
n=911934970359
d=53616899001

解密步骤:m= c^d mod n
使用工具big integer calculate
在这里插入图片描述

crypto6

密钥为 加密方式 名称,区分大小写
U2FsdGVkX19mGsGlfI3nciNVpWZZRqZO2PYjJ1ZQuRqoiknyHSWeQv8ol0uRZP94
MqeD2xz+

这个是Rabbit加密,密钥应该就是Rabbit

在线解密工具地址
在这里插入图片描述

U2FsdGVkX1开头的可能是rabbit,AES,DES

crypto7

在这里插入图片描述
这个就很常见了,Ook!在线解密
在这里插入图片描述

crypto8

在这里插入图片描述
这个是跟上面Ook!是在一起的

brainfuck编码 在线解密

在这里插入图片描述

crypto9

在这里插入图片描述
是一个加密后的压缩包,但是这个名字有点眼熟

算了先暴力破解出这个压缩包的密码
在这里插入图片描述
得到密码是4132

在这里插入图片描述

得到一个.dat文件,这时候想到了文件的名字,是一个对称密码,在线解密
在这里插入图片描述
得到flag

crypto10

在这里插入图片描述

Quoted-printable 可译为“可打印字符引用编码”、“使用可打印字符的编码”,我们收邮件,查看信件原始信息,经常会看到这种类型的编码!
在这里插入图片描述

在线解密地址:http://web.chacuo.net/charsetquotedprintable
在这里插入图片描述
嗯?????这flag??????
在这里插入图片描述
绝了

crypto11

密文 a8db1d82db78ed452ba0882fb9554fc

32位,盲猜md5 somd5在线解密
在这里插入图片描述

crypto0

gmbh{ifmmp_dug}

有括号哎,应该是凯撒密码吧,试一试
在这里插入图片描述

flag{hello_ctf}

crypto12

uozt{Zgyzhv_xlwv_uiln_xguhsld}

感觉是栅栏密码或者移位,试了多次发现出不来,翻了翻古代密码的其他,有个埃特巴什码
在这里插入图片描述

crypto13

看这个名字,感觉应该是base来回嵌套了,这文件这么大
啊来回解了四五次还很长,看来要用脚本了

import base64

s=''
with open('base.txt', 'r', encoding='UTF-8') as f:
    s=''.join(f.readlines()).encode('utf-8')
src=s    
while True:
    try:
        src=s 
        s=base64.b16decode(s)
        str(s,'utf-8')
        continue
    except:
        pass
    try:
        src=s 
        s=base64.b32decode(s)
        str(s,'utf-8')
        continue
    except:
        pass
    try:
        src=s 
        s=base64.b64decode(s)
        str(s,'utf-8')
        continue
    except:
        pass
    break
with open('result.txt','w', encoding='utf-8') as file:
    file.write(str(src,'utf-8'))
print("Decryption complete!")

把脚本和base.txt放在同一目录下,运行后,result.txt中即为flag
在这里插入图片描述

crypto14

00110011 00110011 00100000 00110100 00110101 00100000 00110101 00110000 00100000 00110010 01100110 00100000 00110011 00110011 00100000 00110101 00110110 00100000 00110100 01100101 00100000 00110100 00110110 00100000 00110100 00110110 00100000 00110110 01100100 00100000 00110100 01100101 00100000 00110100 00110101 00100000 00110100 00110001 00100000 00110110 01100101 00100000 00110110 01100011 00100000 00110100 00111000 00100000 00110100 00110100 00100000 00110011 00110101 00100000 00110110 00110100 00100000 00110100 00110011 00100000 00110100 01100100 00100000 00110110 01100100 00100000 00110101 00110110 00100000 00110100 00111000 00100000 00110100 00110100 00100000 00110011 00110101 00100000 00110110 00110001 00100000 00110110 00110100 00100000 00110011 00111001 00100000 00110111 00110101 00100000 00110100 00110111 00100000 00110000 01100001

这个是二进制,先转为16进制得到3EP/3VNFFmNEAnlHD5dCMmVHD5ad9uG

这个有点像base64,但是解不出来……

尝试了其他的,还是没思路

现在来分析一下base64的编码表
在这里插入图片描述

flag经过base64编码后是ZmxhZw==

现在把前四位对比一下 Zmxh和3EP/,他们在base64的编码表中相差30,所以,这一串也都是相差30个之后的结果

找到了羽师傅的脚本

 #author 羽
s= '3EP/3VNFFmNEAnlHD5dCMmVHD5ad9uG'
t = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
l=""
for i in s:
    l += t[(t.index(i)-30)%64]

if len(l)%4!=0:
    l=l+"="*(4-(len(l)%4))
print(l)

运行一下就得到了base64编码后的flag
在这里插入图片描述
再去解码就得到了flag

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值