攻防世界

1.base64

在这里插入图片描述
打开附件,用base64,得出flag

2.Caesra

在这里插入图片描述
打开附件
在这里插入图片描述
很明显是凯撒密码,但是由于不知道位移是多少(也有可能是我猜看不出来),一个一个式,当位移为12时得出flag

3.Morse

在这里插入图片描述
打开附件,只有0和1猜想为摩斯密码,把1改为-,把0改为.
在这里插入图片描述
用摩斯密码解密后,根据题目提示改为小写,得出flag

4.幂数加密

在这里插入图片描述
打开附件,一堆数字
题目说是8位大写的字母,刚好有7个0把数字分为8段,每段数字相加就是26字母的序号
在这里插入图片描述
得出flag

5.Railfence

在这里插入图片描述
根据题目提示,是栅栏密码,且栏数为5
在这里插入图片描述
但正常的栅栏密码解不出来,于是用W型(变异性)栅栏密码解码,得出flag
解码网站

6.不仅仅是morse

在这里插入图片描述
打开附件,是摩斯密码
在这里插入图片描述
用摩斯密码解密后得到如下,题目提示是一种食物,那就是培根密码,解码得到flag
在这里插入图片描述
培根解码网站

7.混合编码

在这里插入图片描述
打开附件,先用base64解码,得到下图
在这里插入图片描述
再用Unicode解码(网站)得到另一个base64解码
在这里插入图片描述
解得如下,这些得到的数字都是大于等于97小于等于119,对照ASCII转换得到flag(转换网站,需要自己对照

8.easy_RSA

在这里插入图片描述
打开附件,如下图
在这里插入图片描述
这里可以用脚步跑,也可以用工具破解
脚本
工具,工具下载和使用
嗯······因为不会用工具,所以我是脚本跑出来的

9.easychallenge

在这里插入图片描述
这题我们可以直接利用python在线反编译软件,也可以在安装uncompyle进行反编译,软件可以自己找,我来说一下安装uncompyle的步骤

win+R打开cmd
命令:pip install uncompyle
等安装后,输入命令:uncompyle6 ‘pyc文件路径’
如下图

在这里插入图片描述
根据返回得到的代码写解密脚本

import base64

def decode1(ans):
	s = ''
	for i in ans:
		x  = i^36
		x  = x - 36
		s += chr(x)
	return s
	
def decode2(ans):
	s = ''
	for i in ans:
		x  = ord(i) - 25
		x  = x ^ 36
		s += chr(x)
	return s

def decode3(ans):
        return base64.b32decode(ans, casefold =False, map01= None)
        
number ="UC7KOWVXWVNKNIC2XCXKHKK2W5NLBKNOUOSK3LNNVWW3E==="
number = decode2(decode1(decode3(number)))
print(number)

运行得到flag

10.转轮机加密

在这里插入图片描述
打开附件如下

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

查看别人的wp后知道这个这么做出来
密钥的数字代表所需要操作的行数,<2,N>就是要讲第二行的转轮N作为开头
即:

KPBELNACZDTRXMJQOYHGVSFUWI //第二行原来是这样
然后把第二的N(包括后面的字母)放到前面,把N前面的字母放到后面
NOZUTWDCVRJLXKISEFAPMYGHBQ //改变后,并且把这一行作为新数组的第一行

以此类推,得到如下

NACZDTRXMJQOYHGVSFUWIKPBEL
FHTEQGYXPLOCKBDMAIZVRNSJUW
QGWTHSPYBXIZULVKMRAFDCEONJ
KCPMNZQWXYIHFRLABEUOTSGJVD
SXCDERFVBGTYHNUMKILOPJZQAW
EIURYTASBKJDFHGLVNCMXZPQOW
VUBMCQWAOIKZGJXPLTDSRFHENY
OSFEZWAXJGDLUBVIQHKYPNTCRM
QNOZUTWDCVRJLXKISEFAPMYGHB
OWTGVRSCZQKELMXYIHPUDNAJFB
FCUKTEBSXQYIZMJWAORPLNDVHG
NBVCXZQWERTPOIUYALSKDJFHGM
PNYCJBFZDRUSLOQXVETAMKGHIW

进过观察,倒数第9列为flag
也可以用脚步退出上面的数列:

import re
sss='''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 <
'''
m="NFQKSEVOQOFNP"
content=re.findall(r'< (.*?) <',sss,re.S)
iv=[2,3,7,5,13,12,9,1,8,10,4,11,6]
vvv=[]
ans=""
for i in range(13):
   index=content[iv[i]-1].index(m[i])
   vvv.append(index)
for i in range(0,26):
   flag=""
   for j in range(13):
       flag+=content[iv[j]-1][(vvv[j]+i)%26]
   print(flag)

注:最后得出来的就是答案,直接填上就对了,不用花括号括起来
还有两题不会,菜鸟终是菜鸟

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值