base64:

根据题目base64可知编码方式,下载附件发现是一个txt文件,把内容用工具解码就彳亍了,即可得到flag,

flag:

cyberpeace{Welcome_to_new_World!}

Caesar:

1.下载附件,打开txt文件发现如下内容,

oknqdbqmoq{kag_tmhq_xqmdzqp_omqemd_qzodkbfuaz}

2.根据题目为“凯撒密码”,即为字母偏移,因为知道flag格式为cyberpeace{},所以o要对应c,所以计算差值为12,尝试解密和加密,发现偏移12时加密可得flag,

flag:

cyberpeace{you_have_learned_caesar_encryption}

Morse:

1.下载附件,如下内容,不难发现是莫尔斯密码,在线工具搞一波即可得到flag,

11 111 010 000 0 1010 111 100 0 00 000 000 111 00 10 1 0 010 0 000 1 00 10 110

2.

flag:

cyberpeace{morsecodeissointeresting}

Railfence:

1.下载附件,打开可知是栅栏密码,

ccehgyaefnpeoobe{lcirg}epriec_ora_g

2.根据题目知道为普通栅栏密码分五组,flag开头得知分为
ccehgyaefnpeoobe{lcirg}epriec_ora_g
前五个为cyber将其解析:
最后将其汇集

flag:

cyberpeace{railfence_cipher_gogogo}

补充:

栅栏密码原理:
普通栅栏密码:
1 2 3 4 5 6(明文) # key=3 进行栅栏加密
1 2 3
4 5 6
结果为 1 4 2 5 3 6
WWW的变种栅栏密码
1 2 3 4 5 6 # key=3 Rail-fence Cipher
1 . . . 5 .  
. 2 . 4 . 6   
. . 3 . . .    
结果为 1 5 2 4 6 3

参考:
https://www.pianshen.com/article/7124782038/

https://blog.csdn.net/qq_43504939/article/details/98473847

不仅仅是Morse:

1.下载附件,发现是一串点和杠,尝试摩尔斯密码,

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

工具连接:

http://www.txttool.com/WenBen_morse.asp

2.根据回显可知存在另一种decode,可知培根密码加密,将AB字符串进行培根密码解密,

密码工具:

https://tool.bugku.com/peigen/

3.按照格式构造flag即可,

flag:

cyberpeace{attackanddefenceworldisinteresting}

混合编码:

1.下载附件,内容如下,

JiM3NjsmIzEyMjsmIzY5OyYjMTIwOyYjNzk7JiM4MzsmIzU2OyYjMTIwOyYjNzc7JiM2ODsmIzY5OyYjMTE4OyYjNzc7JiM4NDsmIzY1OyYjNTI7JiM3NjsmIzEyMjsmIzEwNzsmIzUzOyYjNzY7JiMxMjI7JiM2OTsmIzEyMDsmIzc3OyYjODM7JiM1NjsmIzEyMDsmIzc3OyYjNjg7JiMxMDc7JiMxMTg7JiM3NzsmIzg0OyYjNjU7JiMxMjA7JiM3NjsmIzEyMjsmIzY5OyYjMTIwOyYjNzg7JiMxMDU7JiM1NjsmIzEyMDsmIzc3OyYjODQ7JiM2OTsmIzExODsmIzc5OyYjODQ7JiM5OTsmIzExODsmIzc3OyYjODQ7JiM2OTsmIzUwOyYjNzY7JiMxMjI7JiM2OTsmIzEyMDsmIzc4OyYjMTA1OyYjNTY7JiM1MzsmIzc4OyYjMTIxOyYjNTY7JiM1MzsmIzc5OyYjODM7JiM1NjsmIzEyMDsmIzc3OyYjNjg7JiM5OTsmIzExODsmIzc5OyYjODQ7JiM5OTsmIzExODsmIzc3OyYjODQ7JiM2OTsmIzExOTsmIzc2OyYjMTIyOyYjNjk7JiMxMTk7JiM3NzsmIzY3OyYjNTY7JiMxMjA7JiM3NzsmIzY4OyYjNjU7JiMxMTg7JiM3NzsmIzg0OyYjNjU7JiMxMjA7JiM3NjsmIzEyMjsmIzY5OyYjMTE5OyYjNzc7JiMxMDU7JiM1NjsmIzEyMDsmIzc3OyYjNjg7JiM2OTsmIzExODsmIzc3OyYjODQ7JiM2OTsmIzExOTsmIzc2OyYjMTIyOyYjMTA3OyYjNTM7JiM3NjsmIzEyMjsmIzY5OyYjMTE5OyYjNzc7JiM4MzsmIzU2OyYjMTIwOyYjNzc7JiM4NDsmIzEwNzsmIzExODsmIzc3OyYjODQ7JiM2OTsmIzEyMDsmIzc2OyYjMTIyOyYjNjk7JiMxMjA7JiM3ODsmIzY3OyYjNTY7JiMxMjA7JiM3NzsmIzY4OyYjMTAzOyYjMTE4OyYjNzc7JiM4NDsmIzY1OyYjMTE5Ow==

2.发现填补符号=,进行base64解密,得到unicode码,

LzExOS8xMDEvMTA4Lzk5LzExMS8xMDkvMTAxLzExNi8xMTEvOTcvMTE2LzExNi85Ny85OS8xMDcvOTcvMTEwLzEwMC8xMDAvMTAxLzEwMi8xMDEvMTEwLzk5LzEwMS8xMTkvMTExLzExNC8xMDgvMTAw

3.将Unicode转换为ASCII码后得到如下结果:

LzExOS8xMDEvMTA4Lzk5LzExMS8xMDkvMTAxLzExNi8xMTEvOTcvMTE2LzExNi85Ny85OS8xMDcvOTcvMTEwLzEwMC8xMDAvMTAxLzEwMi8xMDEvMTEwLzk5LzEwMS8xMTkvMTExLzExNC8xMDgvMTAw

4.再次进行base64解码,得到:

/119/101/108/99/111/109/101/116/111/97/116/116/97/99/107/97/110/100/100/101/102/101/110/99/101/119/111/114/108/100

5.对照ascii可得到flag,

welcometoattackanddefenceworld

flag:

cyberpeace{welcometoattackanddefenceworld}

参考:

https://blog.csdn.net/kjcxmx/article/details/105898310

幂数加密:

1.下载附件,内容如下,

8842101220480224404014224202480122

2. 查wp大法,云影密码,脚本如下:

#!/user/bin/env python
# -*-coding:utf-8 -*- a = open(r'crypto11.txt','r')
ciphertext = a.read() s = ciphertext.split('0') flag = ''
for i in range(len(s)):
list = []
for j in s[i]:
list.append(j)
b = 0
for k in list:
b += int(k)
# 字母ascii值与字母顺序相差为96
flag += chr(b+96)
print('flag is ',flag)

flag:

cyberpeace{WELLDONE} 

补充:

二进制数除了0和1的表示方法外,在由二进制转换成十进制的时候,还可以表示成2的N次方的形式。例如:
15=20+21+22+23
并且我们发现,任意的十进制数都可以用2n或2n+2^m+……的形式表示出来,可以表示的单元数由使用的max n来决定。
可表示的单元数=2^(n+1)-1
二进制幂数加密法就是应用这个原理,由于英文字母只有26个字母,由公式可知,只要2的0、1、2、3、4次幂就可以表示31个单元。通过用二进制幂数表示字母序号数来加密。例如
明文: d o n o t p u l l a l l y o u r e g g s i n o n e b a s k e t
字母序号:4 15 14 15 20 16 21 12 12 1 12 12 25 15 21 18 5 7 7 19 9 14 15 14 5 2 1 19 11 5 20
由于4=2^2 所以D加密过之后是2;15=20+21+22+23所以O加密后是0123。同理得到上述明文的加密后的密文
密文:2 0123/123 0123 24/4 024 23 23/0 23 23/034 0123 024 14/02 012 012 014/03 123 /0123 123 02/1 0 014 013 02 24
其中空格表示字母的间隔,/表示单词的间隔。
字母加密结果对照
A 1-------0
B 2-------1
C 3------01
D 4------2
E 5------02
F 6------12
G 7------012
H 8------3
I 9------03
J 10-----13
K 11-----013
L 12-----23
M 13----023
N 14----123
O 15----0123
P 16----4
Q 17----04
R 18----14
S 19-----014
T 20-----24
U 21-----024
V 22-----124
W 23-----0124
X 24-----34
Y 25-----034
Z 26-----134

easy_RSA:

1.下载附件,题干如下:

在一次RSA密钥对生成中,假设p=473398607161,q=4511491,e=17 求解出d

2.搜大佬脚本,

def exgcd(a, n):
if n == 0:
return 1, 0
else:
x, y = exgcd(n, a % n)
x, y = y, x - (a // n) * y
return x, y def getReverse(a, n):
re, y = exgcd(a, n)
while (re < 0):
re += n
return re if __name__ == "__main__":
p = 473398607161
q = 4511491
e = 17
d = getReverse(e, (p - 1) * (q - 1))
print('d = ' + str(d))

flag:

cyberpeace{125631357777427553}

补充:

RSA计算过程:
1.任选两个不相等的质数p和q
2.计算密钥的长度n=pq
3.计算n的欧拉函数φ(n):
φ(n) = (p-1)(q-1)
4.随机选择一个整数e,也就是公钥当中用来加密的那个数字
条件是1< e < φ(n),且e与φ(n) 互质。
5.计算e对于φ(n)的模反元素d,也就是密钥当中用来解密的那个数字
(ed) mod (φ(n)) = 1
至此,(n,e),(n,d)就是密钥对。其中(n,e)为公钥,(n,d)为私钥

easychallenge:

!!!

1.下载附件,发现是一个.pyc文件,

补充:pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,运行加载的速度会有所提高;另一反面,把py文件编译为pyc文件,从而可以实现部分的源码隐藏,保证了python做商业化软件时的安全性

2.用在线反编译工具得到如下代码,

import base64

def encode1(ans):
s = ''
for i in ans:
x = ord(i) ^ 36
x = x + 25
s += chr(x) return s def encode2(ans):
s = ''
for i in ans:
x = ord(i) + 36
x = x ^ 36
s += chr(x) return s def encode3(ans):
return base64.b32encode(ans) flag = ' '
print 'Please Input your flag:'
flag = raw_input()
final = 'UC7KOWVXWVNKNIC2XCXKHKK2W5NLBKNOUOSK3LNNVWW3E==='
if encode3(encode2(encode1(flag))) == final:
print 'correct'
else:
print 'wrong'

3.根据代码写出解密脚本,得到flag,

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:

cyberpeace{interestinghhhhh}

参考:

https://www.cnblogs.com/zhengna/p/13477114.html

攻防世界 - Crypto(一)的更多相关文章

  1. CTF -攻防世界-crypto新手区(5~11)

    easy_RSA 首先如果你没有密码学基础是得去恶补一下的 然后步骤是先算出欧拉函数 之后提交注意是cyberpeace{********}这样的 ,博主以为是flag{}耽误了很长时间  明明没算错 ...

  2. 攻防世界-Crypto高手进阶区部分Writeup

    1.flag_in_your_hand && flag_in_your_hand1 下载,解压后 打开index文件,直接点击get flag错误,输入其他点击也同样 打开js文件,在 ...

  3. 攻防世界CRYPTO新手练习

    0x01 base64 直接base64 Decode 得到flag cyberpeace{Welcome_to_new_World!} 0x02 Caesar key为12 的恺撒密码,解密德fla ...

  4. CTF -攻防世界-crypto新手区(1~4)

    题目已经提示用base64直接解密就行 base64解密网址 http://tool.oschina.net/encrypt?type=3 题目提示是凯撒密码 http://www.zjslove.c ...

  5. Xctf攻防世界—crypto—Normal_RSA

    下载压缩包后打开,看到两个文件flag.enc和pubkey.pem,根据文件名我们知道应该是密文及公钥 这里我们使用一款工具进行解密 工具链接:https://github.com/3summer/ ...

  6. RSA脚本环境配置-攻防世界-OldDriver

    [Crypto] 题目链接 [RSA算法解密] 审题分析 首先拿到一个压缩包,解压得到文件enc.txt. 先不用去管其他,第一眼enc马上联想到 RSA解密.接着往下看 [{"c" ...

  7. CTF--web 攻防世界web题 robots backup

    攻防世界web题 robots https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=0&id=506 ...

  8. CTF--web 攻防世界web题 get_post

    攻防世界web题 get_post https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=0&id=5 ...

  9. 攻防世界 web进阶练习 NewsCenter

    攻防世界 web进阶练习 NewsCenter   题目是NewsCenter,没有提示信息.打开题目,有一处搜索框,搜索新闻.考虑xss或sql注入,随便输入一个abc,没有任何搜索结果,页面也没有 ...

随机推荐

  1. The Linux Scheduler: a Decade of Wasted Cores

    The Linux Scheduler: a Decade of Wasted Cores 这是一篇介绍Linux调度问题的文章,源自这篇文章.文章中涉及到的一些问题可能已经得到解决,但可以学习一下本 ...

  2. 第一篇:docker 简单入门(一)

    本篇目录 写在最前面的话 docker概念介绍 镜像的概念.容器的概念 docker的安装介绍 写在最前面的话 由于此类文章博客园鉴定为简单文章,所以已经移到csdn[https://blog.csd ...

  3. 算法(Java实现)—— 分治算法

    分治算法 分治算法的设计模式 基本思想 把复杂问题分解成若干互相独立容易求解的子问题 经典问题 二分搜索 大整数乘法 棋盘覆盖 合并排序 快速排序 线性时间选择 最接近点对问题 循环赛日程表 汉诺塔 ...

  4. Mac电脑完美解决 BasicIPv6ValidationError 问题,通过命令行更改ip设置

    在更改mac电脑ip网络时,提示BasicIPv6ValidationError.

  5. glances linux资源使用监控

    安装 yum install glances -y 界面 介绍 命令选项 -b:显示网络连接速度 Byte/ 秒 -B @IP|host :绑定服务器端 IP 地址或者主机名称 -c @IP|host ...

  6. js下 Day14、面向对象案例

    一.软键盘拖拽 效果图: ![img](file:////Users/sairitsutakara/Library/Group%20Containers/UBF8T346G9.Office/Tempo ...

  7. 网络编程-python实现-UDP(1.1.2)

    @ 目录 1.UDP是什么 2.代码实现 1.UDP是什么 Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol).UDP ...

  8. Kubernetes K8S之Helm部署、使用与示例

    Kubernetes K8S之Helm部署.使用.常见操作与示例 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master CentOS7.7 2 ...

  9. 常见的JS手写函数汇总(代码注释、持续更新)

    最近在复习面试中常见的JS手写函数,顺便进行代码注释和总结,方便自己回顾也加深记,内容也会陆陆续续进行补充和改善. 一.手写深拷贝 <script> const obj1 = { name ...

  10. 文件共享NFS&&autofs

    文件传输工具 NFS服务 ftp vsftpd Samba linux和Windows之间进行文件共享 专用于linux和linux之间的专门的文件共享服务 (NFS服务),network,files ...