2021年10月广东强网杯,CRYPTO的RSA AND BASE?

2023-11-05 14:20

本文主要是介绍2021年10月广东强网杯,CRYPTO的RSA AND BASE?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2021年10月广东强网杯,CRYPTO的RSA AND BASE?

下载附件,是一个txt文件,打开,发现RSA密文和类似base32的变码表,也符合题目暗示:
在这里插入图片描述

.
.
RSA题目照例先用CTF-RSA-TOOL工具跑一下,发现跑得出来:
在这里插入图片描述
.
.
这应该是一层的flag,而且看起来像base32的四个等号,联想题目和TXT文件中后面的BASE码,可以猜出是BASE32变码的加密,而且还有4位未知:
在这里插入图片描述
.
.
.
(这里积累第一个经验)
首先通过和密文以及传统base32的码表对比可以发现缺了2 T Y Z四个字母,这四个字母共有24种排列组合,可以用下面代码求出排列组合:

list1=['2','T','Z','Y']
len1=len(list1)
list2=[]
w=""
for i in list1:for j in list1:if j!=i:for k in list1:if k!=j and k!=i:for l in list1:if l !=k and l !=j and l !=i:w=i+j+k+llist2.append(w)
print(list2)
print(len(list2))

.
结果:
在这里插入图片描述
.
.
(这里积累第二个经验)
然后就是获取BASE32的编码实现来替换码表了,由于我在网上找不到base32python编码实现,而且我也不会GO语言,没法直接替换封装函数码表,所以我用了我广州羊城杯BabySmc技巧,通过下标对应来转为传统的base32密文。

下标对应法,这就要了解base32加密解密的本质了。
base32加密是5*88*5,获取的58位数对应着0~32内的范围,而base32的基本字符表ABCDEFGHIJKLMNOPQRSTUVWXYZ234567不过是0~32范围内对应的映射下标而已。

解密的时候也是用每个加密字符在0 ~32范围的数来拆分解密,关键就是这个解密时的5位数是怎么找的呢?是通过base32.index('加密字符')来找对应的0 ~ 32的下标。

所以加密字符表单的作用只是用来根据下标来映射5位数的0~32的范围而已,本质是0 ~64的下标。

那么我们就可以通过一一对应的方法来把题目中新的加密表单的下标来对应原生的base32加密下标了,因为base32在线解密工具只能通过base32.index('加密字符')来找0 ~ 32的下标。

脚本如下,注意抽出'='来,并且在最后要把'='加上去,因为base32解密必须是8的倍数。

import base64
#key1="GHI45FQRSCX****UVWJK67DELMNOPAB3"	#少了2TYZ
key1="GHI45FQRSCX"		#变形表单1
key2="UVWJK67DELMNOPAB3"	#变形表单2
base32="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"	#传统表单
key3="TCMDIEOH2MJFBLKHT2J7BLYZ2WUE5NYR2HNG"	#变形密文list1=['2TZY', '2TYZ', '2ZTY', '2ZYT', '2YTZ', '2YZT', 'T2ZY', 'T2YZ', 'TZ2Y', 'TZY2', 'TY2Z', 'TYZ2', 'Z2TY', 'Z2YT', 'ZT2Y', 'ZTY2', 'ZY2T', 'ZYT2', 'Y2TZ', 'Y2ZT', 'YT2Z', 'YTZ2', 'YZ2T', 'YZT2']
secret=""for i in list1:key4=key1+i+key2		#最终变形表单#print(key4)for m in key3:	g=key4.index(m)secret+=base32[g]secret+='===='print(secret)print(base64.b32decode(secret))secret=""

结果:
在这里插入图片描述
.
.
.
总结:

1:
(这里积累第一个经验)
首先通过和密文以及传统base32的码表对比可以发现缺了2 T Y Z四个字母,这四个字母共有24种排列组合,可以用下面代码求出排列组合

list1=['2','T','Z','Y']
len1=len(list1)
list2=[]
w=""
for i in list1:for j in list1:if j!=i:for k in list1:if k!=j and k!=i:for l in list1:if l !=k and l !=j and l !=i:w=i+j+k+llist2.append(w)
print(list2)
print(len(list2))

2:
(这里积累第二个经验)
然后就是获取BASE32的编码实现来替换码表了,由于我在网上找不到base32python编码实现,而且我也不会GO语言,没法直接替换封装函数码表,所以我用了我广州羊城杯BabySmc技巧,通过下标对应来转为传统的base32密文。
.
下标对应法,这就要了解base32加密解密的本质了。
base32加密是5*88*5,获取的58位数对应着0~32内的范围,而base32的基本字符表ABCDEFGHIJKLMNOPQRSTUVWXYZ234567不过是0~32范围内对应的映射下标而已。
.
解密的时候也是用每个加密字符在0 ~32范围的数来拆分解密,关键就是这个解密时的5位数是怎么找的呢?是通过base32.index('加密字符')来找对应的0 ~ 32的下标。
.
所以加密字符表单的作用只是用来根据下标来映射5位数的0~32的范围而已,本质是0 ~64的下标。
.
那么我们就可以通过一一对应的方法来把题目中新的加密表单的下标来对应原生的base32加密下标了,因为base32在线解密工具只能通过base32.index('加密字符')来找0 ~ 32的下标。
.
脚本如下,注意抽出'='来,并且在最后要把'='加上去,因为base32解密必须是8的倍数。

解毕!敬礼!

这篇关于2021年10月广东强网杯,CRYPTO的RSA AND BASE?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/350427

相关文章

研究人员在RSA大会上演示利用恶意JPEG图片入侵企业内网

安全研究人员Marcus Murray在正在旧金山举行的RSA大会上公布了一种利用恶意JPEG图片入侵企业网络内部Windows服务器的新方法。  攻击流程及漏洞分析 最近,安全专家兼渗透测试员Marcus Murray发现了一种利用恶意JPEG图片来攻击Windows服务器的新方法,利用该方法还可以在目标网络中进行特权提升。几天前,在旧金山举行的RSA大会上,该Marcus现场展示了攻击流程,

GPU 计算 CMPS224 2021 学习笔记 02

并行类型 (1)任务并行 (2)数据并行 CPU & GPU CPU和GPU拥有相互独立的内存空间,需要在两者之间相互传输数据。 (1)分配GPU内存 (2)将CPU上的数据复制到GPU上 (3)在GPU上对数据进行计算操作 (4)将计算结果从GPU复制到CPU上 (5)释放GPU内存 CUDA内存管理API (1)分配内存 cudaErro

2021-8-14 react笔记-2 创建组件 基本用法

1、目录解析 public中的index.html为入口文件 src目录中文件很乱,先整理文件夹。 新建components 放组件 新建assets放资源   ->/images      ->/css 把乱的文件放进去  修改App.js 根组件和index.js入口文件中的引入路径 2、新建组件 在components文件夹中新建[Name].js文件 //组件名首字母大写

2021-08-14 react笔记-1 安装、环境搭建、创建项目

1、环境 1、安装nodejs 2.安装react脚手架工具 //  cnpm install -g create-react-app 全局安装 2、创建项目 create-react-app [项目名称] 3、运行项目 npm strat  //cd到项目文件夹    进入这个页面  代表运行成功  4、打包 npm run build

docker学习系列(四)制作基础的base项目镜像--jdk+tomcat

前面已经完成了docker的安装以及使用,现在我们要将自己的javaweb项目与docker结合 1.1准备jdk+tomcat软件 ​​我下载了apache-tomcat-7.0.68.tar.gz和jdk-7u79-linux-x64.tar.gz,存储于Linux机器的本地目录/usr/ect/wt/下(利用xshell上传)。利用linux命令 tar -zxvf apache-tom

[SWPUCTF 2021 新生赛]web方向(一到六题) 解题思路,实操解析,解题软件使用,解题方法教程

题目来源 NSSCTF | 在线CTF平台因为热爱,所以长远!NSSCTF平台秉承着开放、自由、共享的精神,欢迎每一个CTFer使用。https://www.nssctf.cn/problem   [SWPUCTF 2021 新生赛]gift_F12 这个题目简单打开后是一个网页  我们一般按F12或者是右键查看源代码。接着我们点击ctrl+f后快速查找,根据题目给的格式我们搜索c

Base64编码 及 在HTML中用Base编码直接显示图片或嵌入其他文件类型

1.为什么要用到BASE64编码的图片信息      Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一。Base64 主要不是加密,它主要的用途是把一些二进制数转成普通字符用于网络传输。由于一些二进制字符在传输协议中属于控制字符,不能直接传送需要转换一下。最常见的用途是作为电子邮件或WebService附件的传输编码.  2.base64编码定义    目前的internet

apk中签名文件探究(*.SF, *.MF,*.RSA)

文章来源: 作者:嘟嘟小灰 链接:https://www.jianshu.com/p/e07da93acf98 来源:简书 1、取一个apk,然后进行不同签名,生成1.apk、2.apk,并提取META-INF里面的文件进行比对 def calc_sha1(data):sha1obj = hashlib.sha1()if not isinstance(data, (bytear

【面试个人成长】2021年过半,社招和校招的经验之谈

点击上方蓝色字体,选择“设为星标” 回复”资源“获取更多资源 长话短说。 今天有点晚,因为一些事情耽误了,文章发出来有些晚。 周末的时候和一个知识星球的读者1对1指导了一些应届生的学习路径和简历准备。 因为马上就要秋招了,有些公司的提前批已经启动。2021年已经过半了,各位。时间真是太快了。 正好周末抽了一点时间看之前买的关于面试的电子书,针对校招和社招的面试准备和需要注意的点在啰嗦几句。 校

【硬刚大数据之面试篇】2021年从零到大数据专家面试篇之Spark篇

欢迎关注博客主页:https://blog.csdn.net/u013411339 欢迎点赞、收藏、留言 ,欢迎留言交流! 本文由【王知无】原创,首发于 CSDN博客! 本文首发CSDN论坛,未经过官方和本人允许,严禁转载! 本文是对《【硬刚大数据之学习路线篇】2021年从零到大数据专家的学习指南(全面升级版)》的面试部分补充。 硬刚大数据系列文章链接: 2021年从零到大数据专家的